user_impersonation 范围 - 为什么?

问题描述 投票:0回答:1

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

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

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

微软好像用的是第二种方式。不幸的是,我没有找到任何关于这种授权方式的信息。是否有一些好的资源可供阅读? 直到现在,正如我所说,我阅读的所有资源都说您应该将权限作为范围包括在内。

azure oauth-2.0 azure-active-directory authorization
1个回答
5
投票

Azure Portal 中大部分服务的API 权限,可以看User_Impersonation delegated permission。这是因为 user_impersonation 权限足以代表签名用户访问该特定服务 API

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

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

© www.soinside.com 2019 - 2024. All rights reserved.