如何在 Azure AD 的 OpenID Connect 元数据发现端点中包含给定应用程序的自定义范围?
How do I include custom scopes for a given Application in Azure AD's OpenID Connect Metadata discovery endpoint?
我在 Azure 应用服务中托管了一个 REST API,它定义了自定义范围,用于将 API 中特定操作的访问权限限制在某些用户组中。但是,当访问 Azure's OpenID Connect Metadata discovery endpoint 时,我无法找到一种方法来查看 API(或在 Azure 中注册的任何 API 消费者)的自定义范围。如何使我的自定义范围显示在发现端点元数据中?
这是我正在使用的端点:
显然,此版本的端点涉及整个租户,因此它对其中特定 API 的范围不可见是有道理的。
但是,当使用指定 ClientID 的这种变体时,我希望有效负载上的数据与特定应用程序有关:
事实并非如此:此端点中显示的所有范围也是 AAD 始终 return 用于其他所有内容的标准范围:
"scopes_supported": [
"openid",
"profile",
"email",
"offline_access"
],
我预计会发生以下一种或两种情况:
- return 为所有应用程序定义的所有范围的组合的主要端点
- return 特定应用程序范围的应用程序参数化端点
如果没有我的自定义范围,目前无法让客户端在使用 OpenIDConnect 连接类型时选择范围,因为应用程序无法知道在初始调用后向 AAD 请求哪些范围,这是据我了解,关于元数据端点的要点之一。
我在 Microsoft.Identity.Web
存储库中提出了这个问题,并从 Microsoft Identity PM 那里得到了回复,指出设计目前不支持在元数据终结点中公开自定义范围。
更多信息在这里:
我将停止在我的方案中使用发现端点,因为如果其中的范围与我的 API 范围不匹配,它将变得无用。
我在 Azure 应用服务中托管了一个 REST API,它定义了自定义范围,用于将 API 中特定操作的访问权限限制在某些用户组中。但是,当访问 Azure's OpenID Connect Metadata discovery endpoint 时,我无法找到一种方法来查看 API(或在 Azure 中注册的任何 API 消费者)的自定义范围。如何使我的自定义范围显示在发现端点元数据中?
这是我正在使用的端点:
显然,此版本的端点涉及整个租户,因此它对其中特定 API 的范围不可见是有道理的。
但是,当使用指定 ClientID 的这种变体时,我希望有效负载上的数据与特定应用程序有关:
事实并非如此:此端点中显示的所有范围也是 AAD 始终 return 用于其他所有内容的标准范围:
"scopes_supported": [
"openid",
"profile",
"email",
"offline_access"
],
我预计会发生以下一种或两种情况:
- return 为所有应用程序定义的所有范围的组合的主要端点
- return 特定应用程序范围的应用程序参数化端点
如果没有我的自定义范围,目前无法让客户端在使用 OpenIDConnect 连接类型时选择范围,因为应用程序无法知道在初始调用后向 AAD 请求哪些范围,这是据我了解,关于元数据端点的要点之一。
我在 Microsoft.Identity.Web
存储库中提出了这个问题,并从 Microsoft Identity PM 那里得到了回复,指出设计目前不支持在元数据终结点中公开自定义范围。
更多信息在这里:
我将停止在我的方案中使用发现端点,因为如果其中的范围与我的 API 范围不匹配,它将变得无用。