OAuth2 中的授权是针对 资源 而言的,典型应用场景:一个第三方的应用需要获取这个资源,通过 OAuth 的方式让用户同意这个应用从 资源服务器 调用资源,这个过程称之为授权。
那么资源服务(器)本身作为一个应用,假设涉及到管理功能,那么必然有用户(系统运维、运营人员等)的,这些用户可能也包含不同的角色,也需要授权。
这两种授权有什么区别?
1
samersions 2020-08-07 10:27:33 +08:00
个人理解:
假设“资源服务器”是一个“图片存储服务器”,“第三方应用”是“图片编辑器” 第一种:“图片存储服务器”通过 OAuth 给“图片编辑器”授权使用“图片” 第二种: 可以是:“图片存储服务器”通过 OAuth 给“图片存储服务器的管理面板”授权使用“管理用户” 但一般是,“图片存储服务器”(作为 Client )通过 OAuth 对用户身份进行认证(验证层此时作为资源服务器授权“图片存储服务器”使用“用户名、邮箱”)。授权由“图片存储服务器”自行完成,不走 OAuth 。 |
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 的形式。 |