通常,在阅读有关 OAuth2 的信息时,您会发现应在范围内定义权限以准确说明所需的信息。我最近研究了 Microsoft 如何在他们的 Azure 门户中做到这一点。事实证明,访问门户时我获得的唯一范围是“user_impersonation”。这是为什么?我的猜测是,如果将所有权限都包含在范围内,令牌会太大吗?
更一般地说,在我看来,至少有两种方法可以处理 OAuth2 中的授权:
微软好像用的是第二种方式。不幸的是,我没有找到任何关于这种授权方式的信息。是否有一些好的资源可供阅读? 直到现在,正如我所说,我阅读的所有资源都说您应该将权限作为范围包括在内。
Azure Portal 中大部分服务的API 权限,可以看User_Impersonation delegated permission。这是因为 user_impersonation 权限足以代表签名用户访问该特定服务 API
对于 Microsoft Graph 等其他服务,您可以看到许多其他权限,例如 user.read, user.readwrite 等,
在 OAuth 流程中生成访问令牌时,您可以添加具有为应用程序注册添加的权限的范围。将使用这些权限生成令牌。