【问题标题】:Add custom claim in Azure ADB2C through Graph Api通过 Graph Api 在 Azure ADB2C 中添加自定义声明
【发布时间】:2019-01-08 02:02:54
【问题描述】:

我想为某些特定用户的令牌添加自定义声明,这些用户由管理员通过图形 API 管理。

基本场景如下:

用户已注册我的应用程序。最初,所有用户对资源的访问都是有限的。作为管理员,我将通过添加特定声明来更新一些用户,以便我的应用程序将授权用户使用特定资源。

在我的理解中,有几种方法可以在令牌中包含声明(扩展属性)。

  1. 通过 azure 门户创建用户属性,并在注册策略中使用它来收集用户的价值。就我而言,自定义属性将仅由管理员应用,因此我不会让用户管理此声明。所以这对我来说不是一个好方法,而且对我来说也没有意义,因为我会在许多用户已经注册后添加新属性,因此无法收集这些信息。

  2. 另一种方式是通过Graph Api添加扩展属性。为此,我需要创建一个新应用程序(通过应用程序注册)并通过图形 api 将扩展属性注册到该应用程序。然后通过在该应用程序中添加新创建的扩展属性来更新用户(通过图形 api)。最后,我希望这个扩展属性会出现在我的令牌中,但没有机会。它在门户、令牌中不可见,而仅在图形 api 响应中可见。

  3. 我不会创建自定义策略,因为不建议非专家使用。

我在第二种解决方案中缺少什么?

【问题讨论】:

    标签: azure azure-ad-b2c azure-ad-graph-api


    【解决方案1】:

    我不同意@Abhishek Agrawal,我使用带有B2C 扩展应用程序的图形创建了自定义属性,不要删除 并为某些用户添加了一些价值,之后我运行用户流程,登录并且自定义属性不会出现在令牌中

    【讨论】:

      【解决方案2】:

      扩展属性未显示在来自用户流的令牌中的原因是用户流使用不同的扩展应用程序。

      自定义属性是在应用程序上创建的(称为extension app)。在用户流中,AAD B2C 会自动创建该应用程序(命名为 B2C extension app, do not delete)。

      当您创建“新应用”时,该应用不会在用户流程中注册。

      您的解决方案是使用B2C extension app 创建属性。或者在门户中创建属性。然后使用图形 api 为用户修补这些新属性。

      请参阅使用custom attributes in AAD Graph in AAD B2C tenant 的文档。 请参阅此question 以获取有关自定义 /extension 属性的更多参考。

      【讨论】:

        【解决方案3】:

        在您的第二个解决方案中,您应该考虑扩展行为和限制。由于在MSDN 中提到,您的问题可能与属性类型有关。图形 API 和 ADB2C 期望扩展字段可以为空。我不知道你是否是这种情况,但我希望这会有所帮助。

        另外StackOverflow已经有问答题了

        【讨论】:

          猜你喜欢
          • 2015-10-27
          • 1970-01-01
          • 2019-11-10
          • 2022-11-30
          • 2023-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-05
          相关资源
          最近更新 更多