如何在 Azure AD 的 OpenID Connect 元数据发现端点中包含给定应用程序的自定义范围?

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

我在 Azure 应用服务中托管了一个 REST API,它定义了自定义范围,用于将对 API 中的特定操作的访问限制为某些用户组。然而,当访问 Azure 的 OpenID Connect 元数据发现端点时,我无法找到一种方法来查看 API 的自定义范围(或在 Azure 中注册的任何 API 使用者)。如何使我的自定义范围显示在发现端点元数据中?

这是我正在使用的端点:

显然,此版本的端点涉及整个租户,因此它无法了解其中特定 API 范围的可见性是有道理的。

但是,当使用指定 ClientID 的此变体时,我希望有效负载上的数据与特定应用程序相关:

事实并非如此:此端点中显示的所有范围也是 AAD 始终为其他所有内容返回的标准范围:

"scopes_supported": [
  "openid",
  "profile",
  "email",
  "offline_access"
],

我预计会发生以下一种或两种情况:

  1. 返回为所有应用程序定义的所有范围的组合的主要端点
  2. 应用程序参数化端点返回该特定应用程序的范围

如果没有我的自定义范围,目前无法让客户端在使用 OpenIDConnect 连接类型时选择范围,因为应用程序无法知道在初始调用后向 AAD 请求哪些范围,这是主要的调用之一根据我的理解,有关元数据端点的要点。

azure-active-directory openid-connect scopes
2个回答
2
投票

我在

Microsoft.Identity.Web
存储库中提出了这个问题,并得到了 Microsoft Identity PM 的答复,其中指出设计目前不支持在元数据端点中公开自定义范围。

更多信息在这里:

我将停止在我的场景中使用发现端点,因为如果其中的范围与我的 API 范围不匹配,它就会变得毫无用处。


0
投票

在此为 Microsoft 开发的功能投票:https://github.com/AzureAD/microsoft-identity-web/issues/2803

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