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

2020-08-07 09:15:23 +08:00
 wangxiaoaer

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

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

这两种授权有什么区别?

1279 次点击
所在节点    问与答
2 条回复
samersions
2020-08-07 10:27:33 +08:00
个人理解:
假设“资源服务器”是一个“图片存储服务器”,“第三方应用”是“图片编辑器”
第一种:“图片存储服务器”通过 OAuth 给“图片编辑器”授权使用“图片”
第二种:
可以是:“图片存储服务器”通过 OAuth 给“图片存储服务器的管理面板”授权使用“管理用户”
但一般是,“图片存储服务器”(作为 Client )通过 OAuth 对用户身份进行认证(验证层此时作为资源服务器授权“图片存储服务器”使用“用户名、邮箱”)。授权由“图片存储服务器”自行完成,不走 OAuth 。
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 的形式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/696341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX