为Azure B2C添加3个或更多社会身份提供商

时间:2020-10-04 07:48:28

标签: azure azure-active-directory azure-ad-b2c

我希望允许用户通过Google,Facebook和Microsoft帐户及其本地帐户进行身份验证。通过将一个用户旅程添加到TrustFrameworkBase,将一个用户旅程添加到TrustFrameworkExtensions,我可以添加2个社会身份提供者。对于这两个旅程,UserJourney Id =“ SignUpOrSignIn”。因为它们具有相同的ID,所以不允许我为我的社交身份提供者添加另一个UserJourney。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以如下向the SignUpOrSignIn user journey添加多个社交身份提供者:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    <ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" />
    <ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" />
    <ClaimsProviderSelection TargetClaimsExchangeId="MicrosoftAccountExchange" />
    <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
  </ClaimsProviderSelections>
  <ClaimsExchanges>
    <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
  </ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
      <Value>objectId</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
    <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
    <ClaimsExchange Id="MicrosoftAccountExchange" TechnicalProfileReferenceId="MSA-OIDC" />
    <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
  </ClaimsExchanges>
</OrchestrationStep>

有关 Google-OAUTH 技术资料的信息,请参见here

有关 MSA-OIDC 技术资料的信息,请参见here