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

标签 azure-active-directory openid-connect scopes

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

这是我正在使用的端点:

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

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

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

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

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

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

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

最佳答案

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

更多信息请参见:

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

关于azure-active-directory - 如何在 Azure AD 的 OpenID Connect 元数据发现终结点中包含给定应用程序的自定义范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71767424/

相关文章:

python - 使用lepture/authlib获取refresh_token

OAuth-2.0/JWT-关于何时使用作用域与角色的指南

ruby-on-rails - 如何在Rails 4中将参数传递给has_many关联范围?

Azure Data Lake Storage Gen2 访问 token 生成 - “AADSTS65001 : The user or administrator has not consented to use the application with ID

Azure身份验证: Only allow users with MFA enabled

javascript - 使用 Open ID 与身份验证代码流连接 Azure AD

powershell - Clear-Variable 和将变量设置为 NULL 的区别

rest - 在 .NET 应用程序以外的其他应用程序中通过 REST api 访问 Onedrive For Business 文件?

azure - PowerShell 获取 Azure AD 应用程序证书信息

owin - OpenID Connect 中的公钥