我在 Azure 应用服务中托管了一个 REST API,它定义了自定义范围,用于将对 API 中的特定操作的访问限制为某些用户组。然而,当访问 Azure 的 OpenID Connect 元数据发现端点时,我无法找到一种方法来查看 API 的自定义范围(或在 Azure 中注册的任何 API 使用者)。如何使我的自定义范围显示在发现端点元数据中?
这是我正在使用的端点:
显然,此版本的端点涉及整个租户,因此它无法了解其中特定 API 范围的可见性是有道理的。
但是,当使用指定 ClientID 的此变体时,我希望有效负载上的数据与特定应用程序相关:
事实并非如此:此端点中显示的所有范围也是 AAD 始终为其他所有内容返回的标准范围:
"scopes_supported": [
"openid",
"profile",
"email",
"offline_access"
],
我预计会发生以下一种或两种情况:
如果没有我的自定义范围,目前无法让客户端在使用 OpenIDConnect 连接类型时选择范围,因为应用程序无法知道在初始调用后向 AAD 请求哪些范围,这是主要的调用之一根据我的理解,有关元数据端点的要点。
我在
Microsoft.Identity.Web
存储库中提出了这个问题,并得到了 Microsoft Identity PM 的答复,其中指出设计目前不支持在元数据端点中公开自定义范围。
更多信息在这里:
我将停止在我的场景中使用发现端点,因为如果其中的范围与我的 API 范围不匹配,它就会变得毫无用处。
在此为 Microsoft 开发的功能投票:https://github.com/AzureAD/microsoft-identity-web/issues/2803