首页 > 解决方案 > azure 中的自定义 OAuth 范围

问题描述

通读:https ://www.rfc-editor.org/rfc/rfc6749#section-3.3试图了解范围。根据规范,范围是在身份验证服务器中定义的,但不需要绑定到单个应用程序(我在推断)。当我使用 Azure 时,自定义范围似乎与应用注册(我的 API)相关联。是这种情况还是我错过了什么?有没有办法定义不绑定到应用程序(或多个应用程序)的范围。

例如,Directory.Read.All 范围,我可以想象在资源服务器后面托管的多个 API 实现图形中的所有目录服务(不是一个?)

范围对我来说是一个模糊的概念,所以如果我的问题没有意义,我深表歉意。

标签: azure-active-directory

解决方案


当我使用 Azure 时,自定义范围似乎与应用注册(我的 API)相关联。是这种情况还是我错过了什么?有没有办法定义不绑定到应用程序(或多个应用程序)的范围。

获取令牌时,必须指定scope值。正如您所想的,您的自定义范围实际上就是您公开受 Azure 保护的应用程序。通常它被用作后端应用程序。当您使用前端应用程序访问它时,您必须指定后端应用程序的范围。通常是:api://{back-end app client api}/scope name

在此处输入图像描述

Directory.Read.All 范围,我可以想象在资源服务器后面托管的多个 API 在图中实现所有目录服务(不是一个?)

不,这不像你想的那样。您应该将要访问的api放在范围内。例如,如果你想访问 MS graph api,你可以把https://graph.microsoft.com/.default. 如果要访问自定义 api,可以输入api://{back-end app client api}/scope name.

访问令牌是根据你要访问的api受众发放的,是唯一的!见:这里

在此处输入图像描述


推荐阅读