V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wangxiaoaer
V2EX  ›  问与答

OAuth2 中的授权跟普通应用中的授权是否是一个东西?

  •  
  •   wangxiaoaer · 2020-08-07 09:15:23 +08:00 · 1270 次点击
    这是一个创建于 1580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    OAuth2 中的授权是针对 资源 而言的,典型应用场景:一个第三方的应用需要获取这个资源,通过 OAuth 的方式让用户同意这个应用从 资源服务器 调用资源,这个过程称之为授权。

    那么资源服务(器)本身作为一个应用,假设涉及到管理功能,那么必然有用户(系统运维、运营人员等)的,这些用户可能也包含不同的角色,也需要授权。

    这两种授权有什么区别?

    2 条回复    2020-08-07 11:31:18 +08:00
    samersions
        1
    samersions  
       2020-08-07 10:27:33 +08:00
    个人理解:
    假设“资源服务器”是一个“图片存储服务器”,“第三方应用”是“图片编辑器”
    第一种:“图片存储服务器”通过 OAuth 给“图片编辑器”授权使用“图片”
    第二种:
    可以是:“图片存储服务器”通过 OAuth 给“图片存储服务器的管理面板”授权使用“管理用户”
    但一般是,“图片存储服务器”(作为 Client )通过 OAuth 对用户身份进行认证(验证层此时作为资源服务器授权“图片存储服务器”使用“用户名、邮箱”)。授权由“图片存储服务器”自行完成,不走 OAuth 。
    a728976009
        2
    a728976009  
       2020-08-07 11:31:18 +08:00
    从第三方授权的角度,比如你要获得微信服务器上的用户头像,就需要通过微信的 oauth server,此时你的第三方应用就是 client,微信的用户服务就是 resource server 。

    resource server 本身需要授权也是一样的,经典的场景就是你的服务本身维护一个 oauth server,前端作为 client 申请授权 token (通常用 pkce 模式),后端作为 resource server 验证 token 和权限。

    当然 resource server 本身的鉴权也可以采用其他非 oauth 的形式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:29 · PVG 03:29 · LAX 11:29 · JFK 14:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.