首页 > 解决方案 > 应用程序权限是 OAuth2 范围吗?

问题描述

为您自己的用户使用 OAuth2 范围以确定他们是否有权在您自己的 API 中执行操作是否有效?听起来范围更适合在身份验证提供者之间进行权限通信。

标签: oauth-2.0

解决方案


来自 OAuth2.0 规范 ( RFC6749 - Accessing Protected Resources

资源服务器必须验证访问令牌并确保它没有过期并且其范围涵盖了所请求的资源。

很明显,范围是资源服务器授权过程的一部分,但它们反映了“允许客户端(也称为“应用程序”)代表我做什么?”这个问题的答案。而不是“允许用户做什么?”。后者在或多或少复杂的策略中定义,而第一个在客户端注册期间定义,访问令牌可能包含也可能不包含请求的所有范围。范围是客户端、API 和授权服务器之间的合同。

话虽如此,在作用域中使用诸如角色之类的信息可能最终会出现在大量难以维护的作用域中。API 应该处理通用范围并获取更多详细信息,以便从外部系统确定用户的权限(例如获取用户的角色)。考虑改用 OpenID 和声明。声明是关于用户的属性,这意味着您的 API 可以对这些属性进行操作,而不是进行额外的调用。


推荐阅读