Azure Active Directory 和 JWT 中的自定义属性(安全性

use*_*290 5 azure jwt azure-active-directory

我正在集成一个 Web 应用程序,该应用程序在访问令牌中使用名为“权利”的自定义声明,该令牌具有 1 个或多个指定用户在应用程序内的权限的值,即用户、报告、管理员...用户被分配一个或多个更多这些价值观。当我构建它时,我查看了 Azure Active Directory 是否支持将此自定义声明添加到 JWT 中,所有证据都表明这是可能的。现在它已经构建完成,我正在尝试实际实现与 AAD 的集成。但它不起作用。我遇到的所有指令都没有真正起作用。生成时,该声明不存在于访问令牌中,并且我无法找到告诉 Azure 添加它的方法。

我添加了一个名为“权利”的自定义安全属性,将其添加到具有值的用户帐户中,为应用程序提供了我能找到的尽可能多的 API 权限,但是,当需要在“管理”下添加自定义属性作为声明时声称,它是不可见的。仅用户配置文件值可见。我所做的任何事情都不会改变值列表。它们仅包含“user.*”属性。

我达到这一点的步骤:

  1. 创建免费的 Azure AD 帐户并将其提升到 P2 许可证级别。
  2. 提升我的用户帐户以创建自定义安全属性定义。
  3. 创建自定义安全属性定义。
  4. 创建具有 8 个不同可能值可供选择的自定义安全属性。
  5. 在用户下,添加至少选择一个值的自定义安全属性。
  6. 返回到应用程序注册、api 权限下,添加允许访问所有可能相关的可能值的所有权限。
  7. 在清单下,将 accessTokenAcceptedVersion 更改为 2
  8. 在清单中添加了可选声明,添加了名为“entitlements”的自定义安全属性,源为“user”
  9. 尝试添加可选声明“权利”但不存在。添加输入到 Manifest 中的条目表明它不会添加到 JWT,因为它不是有效的声明。
  10. 我进入企业应用程序,单点登录,管理声明,单击添加声明,然后查找权利,但用户的配置文件区域中只有 user.* 属性。
  11. 输入权利的源属性只会显示一个带有文本“entitlements”的字符串

那么,是否有人成功添加了一个应用程序,该应用程序具有附加到用户配置文件的自定义属性,这些属性是可选择的并配置为使这些属性显示为 JWT 声明?你做了什么不同的事情?

use*_*290 1

我无法使用自定义安全属性添加权利,但是,通过在 Azure AD 中定义一组角色,然后将其中一个角色分配给 Azure 中注册应用程序的用户,我能够在JWT 是我的应用程序支持的 OAuth2 规范中支持的标准声明。我找不到插入 OAuth2 中标准但未列为可选或明确列出的声明的任何其他声明的方法。文档指出可以完成,但我无法获得工作结果。即使添加自定义静态声明对我来说也不起作用。