azure - user_impersonation 范围 - 为什么?

标签 azure oauth-2.0 azure-active-directory authorization

通常,在阅读 OAuth2 时,您可以找到应在范围中定义权限的信息,以准确说明所需内容。我最近研究了 Microsoft 如何在其 Azure 门户中做到这一点。事实证明,访问门户时我获得的唯一范围是“user_impersonation”。这是为什么?我的猜测是,如果它们包含所有权限作为范围, token 会太大?

更一般地说,在我看来,OAuth2 中至少有两种处理授权的方法:

  1. 将所有权限存储在 token 中 - 资源服务器仅查看 token 来决定公开哪些数据
  2. 在 token 中存储有限的信息(例如 userId) - 资源服务器必须在与 token 中提供的 userId 相关的某些数据库中查找权限。

看来微软正在使用第二种方法。不幸的是,我没有找到任何有关这种身份验证方式的信息。有一些好的资源可以阅读吗? 到目前为止,正如我所说,我读过的所有资源都表明您应该将权限作为范围包含在内。

最佳答案

对于Azure Portal中大部分服务的API权限,您可以看到User_Impersonation委托(delegate)权限。这是因为 user_impersonation 权限足以代表签名用户访问该特定服务 API

对于 Microsoft Graph 等其他服务,您可以看到许多其他权限,例如 user.read、 user.readwrite 等,

在 OAuth 流程中生成访问 token 时,您可以添加范围以及为应用程序注册添加的权限。将使用这些权限生成 token 。

关于azure - user_impersonation 范围 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71159332/

相关文章:

azure - Cosmos 数据库吞吐量

azure - 确保Windows Azure网站的高可用性

Azure 表存储逆关系

python - 如何使用 OAuth2 将 SQLAlchemy 连接到 Snowflake 数据库?

azure-active-directory - Azure AD - 使用个人帐户单点登录

c# - 如何使用 MongoDB API 删除 Azure CosmosDB 分区集合中的多个文档

python - 获取错误 : redirect_uri_mismatch The redirect URI in the request: http://localhost:8080/oauth2callback did not match a registered redirect URI

java - 如何在 spring oauth2 security 中登录 successHandler 后立即获取访问 token ?

azure - AAD guest 用户不得成为帐户所有者

azure - 状态代码 404 : The resource you are looking for has been removed, 已更名,或暂时不可用