1 year ago
#374812
kamilz
Difference between CombinedSignInAndSignUp with api.signuporsignin vs ClaimsProviderSelection with api.idpselections
I'm wondering if there is any difference between following sets of orchestration steps:
- CombinedSignInAndSignUp with api.signuporsignin
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" />
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSigninOnly-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="GoogleExchange" TechnicalProfileReferenceId="Google-OAuth2" />
<ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAuth2" />
</ClaimsExchanges>
</OrchestrationStep>
api.signuporsignin
is urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5
SelfAsserted-LocalAccountSigninOnly-Email
is configured with:
<Item Key="setting.showSignupLink">False</Item>
<Item Key="setting.forgotPasswordLinkLocation">none</Item>
so the intention is to sign in only.
This renders a sign in page where user can sign in directly with local account or select external idp provider to sign in with.
ClaimsProviderSelection
withapi.idpselection
<OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" />
<ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSigninOnly-Email" />
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAuth2" />
<ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAuth2" />
</ClaimsExchanges>
</OrchestrationStep>
api.idpselection
is urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1
This firstly render a page where user can select Local account, Google or Facebook. Then if user has selected Local account, Self asserted page to sign in is shown, and when he selected Google/Facebook, he is redirected to external idp.
Is there any difference between these two sets of orchestration steps besides slightly different user experience? From my tests it looks like in the end the result is the same - user is authenticated either via local account or external provider and I have access to the same claims in the next steps of my UserJourney.
I have already branded CombinedSignInAndSignUp with api.signuporsignin so now I'm wondering if it's safe to use this combination in different UserJourneys (ProfileUpdate, PasswordChange etc.). Samples often show ClaimsProviderSelection with api.idpselections for such UserJourneys but I do not see any difference and I wouldn't have to brand and change user experience for these UserJourneys.
azure-ad-b2c
azure-ad-b2c-custom-policy
aad-b2c
0 Answers
Your Answer