【问题标题】:How to disable storing of claims principal records in Azure B2C?如何禁用在 Azure B2C 中存储声明主体记录?
【发布时间】:2018-11-19 10:25:33
【问题描述】:

Azure B2C 存储有关登录的每个声明主体的信息。 我们不需要这些信息。 用户应该只是通过 B2C 从 IdP 传递到服务提供商。 如何禁用在 B2C 中存储用户信息?

【问题讨论】:

  • 不可能。您至少需要用户名/电子邮件、电话(用于 MFA)和密码。
  • 为什么不可能?用户在外部进行身份验证。为什么 B2C 需要存储有关用户的任何信息?

标签: azure-ad-b2c


【解决方案1】:

这是我找到的解决方案。 SignIn userjourney 中的基本策略

<UserJourney Id="SignIn">

包含调用技术配置文件AAD-UserWriteUsingAlternativeSecurityId

的编排步骤
    <OrchestrationStep Order="4" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="AAD-UserWriteUsingAlternativeSecurityId" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId" />
      </ClaimsExchanges>
    </OrchestrationStep>

此步骤在 Azure B2C 中创建用户注册。

如果此用户旅程在扩展策略中超载并且在此处跳过此步骤,则将不会创建用户。

另一个检查 ID 为 AAD-UserReadUsingAlternativeSecurityId-NoError

的用户注册的步骤
TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId-NoError"

也可以跳过。

无需这些步骤,外部身份提供者的身份验证过程就会完美无缺。

【讨论】:

  • 如果您不创建用户对象并且您正在使用刷新令牌,您可以将其交换为另一个 ID 或访问令牌吗?
  • 我不知道。这个问题应该由 Azure B2C 团队来回答。
【解决方案2】:

如果您使用外部身份提供程序,Azure AD B2C 不会存储任何内容。但如果您使用的是 Azure AD B2C 的身份提供程序,它将在其中存储声明。

希望信息有所帮助。

【讨论】:

  • 是的,它默认存储。 B2C 生成像 cpim_{guid}@{idp_domain} 这样的用户
  • 抱歉最后一条误传的评论,刚刚读到它存储了以下信息:我们支持的社交身份提供商集使用的默认范围是:Facebook:电子邮件 Google+:电子邮件 Microsoft 帐户:openid 电子邮件配置文件Amazon: profile LinkedIn: r_emailaddress, r_basicprofile 你可以把它当作,Azure AD B2C 将它作为主键保存在任何数据库中,并在为该主键调用其 Graph API 时使用它。 docs.microsoft.com/en-us/azure/active-directory-b2c/…你也可以参考这里的信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 2021-11-08
  • 2016-12-23
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多