oauth-2.0 - 应用程序权限是 OAuth2 范围吗?
问题描述
为您自己的用户使用 OAuth2 范围以确定他们是否有权在您自己的 API 中执行操作是否有效?听起来范围更适合在身份验证提供者之间进行权限通信。
解决方案
来自 OAuth2.0 规范 ( RFC6749 - Accessing Protected Resources
资源服务器必须验证访问令牌并确保它没有过期并且其范围涵盖了所请求的资源。
很明显,范围是资源服务器授权过程的一部分,但它们反映了“允许客户端(也称为“应用程序”)代表我做什么?”这个问题的答案。而不是“允许用户做什么?”。后者在或多或少复杂的策略中定义,而第一个在客户端注册期间定义,访问令牌可能包含也可能不包含请求的所有范围。范围是客户端、API 和授权服务器之间的合同。
话虽如此,在作用域中使用诸如角色之类的信息可能最终会出现在大量难以维护的作用域中。API 应该处理通用范围并获取更多详细信息,以便从外部系统确定用户的权限(例如获取用户的角色)。考虑改用 OpenID 和声明。声明是关于用户的属性,这意味着您的 API 可以对这些属性进行操作,而不是进行额外的调用。
推荐阅读
- sql - 使用一个 WHERE 子句更新多个表
- python - 我无法在使用 Python 3 的函数中结束我的 WHILE 循环
- javascript - 无法在 webpack 配置中使用导出的类
- r - R. 使用相关频率来设置绘图中的点大小
- python - 我正在开发一个从 python 中的 github webhook 获取有效负载的 web 服务器
- node.js - MongoDb:访问集合和控制台日志对象
- react-native - 似乎无法更改 React-Navigation DrawerNavigation 上的样式(文本颜色)
- javascript - 如何检查 URL 是否具有匹配的结尾作为 json 字符串
- php - WooCommerce 从订单项中获取产品变体属性名称和值
- raspberry-pi - Raspberry PI,无法使用 NTFS 分区硬盘复制、修改或写入 NAS 上的文件