ここで説明されているように、カスタム ポリシーを使用して、「通常の」AAD ディレクトリからのユーザーによる認証を許可するように Azure AD B2C をセットアップしましたhttps://docs.microsoft.com/en-us/azure/active-directory-b2c/active-ディレクトリ-b2c-setup-aad-custom . あるシナリオでは、ユーザーにサインアップ (AAD クレデンシャルを使用して認証し、AAD B2C ディレクトリに対応するオブジェクトを作成し、objectidentifier をクレームとしてアプリケーションに渡す) を行ってもらいたいと考えています。例から始めて、自己主張のステップを完全にスキップする方法がわかりません。私が試した2つのアプローチは
1) SelfAsserted-Social ClaimsExchange を削除し、2) SelfAsserted-SocialおよびAAD-UserReadUsingObjectId ClaimsExchange を変更 (実際には、TrustFrameworkExtensions にコピー、名前変更、および編集) して、OutputClaim エントリのみがユーザー プロンプトを必要としないものになるようにします。
どちらのアプローチでも、UI の観点からはサインアップは機能しているように見えますが、B2C ディレクトリにユーザー オブジェクトは作成されません。App Insights を使用すると、両方のアプローチでAAD-UserReadUsingObjectIdがMicrosoft.Cpim.Common.PolicyExceptionを生成するようです。
完全なユーザー ジャーニーは、
<UserJourney Id="SignUpAAD">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="KDEWEbAppTestExchange" />
</ClaimsProviderSelections>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="KDEWebAppTestExchange" TechnicalProfileReferenceId="KDEWebAppTestProfile" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadUsingAlternativeSecurityId" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId-NoError" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- prepare ground for searching for user -->
<OrchestrationStep Order="4" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="SelfAsserted-Social-Silent" TechnicalProfileReferenceId="SelfAsserted-Social-Silent" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- This step reads any user attributes that we may not have received when authenticating using ESTS so they can be sent
in the token. -->
<OrchestrationStep Order="5" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectIdLimited" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- create the user in the directory if one does not already exist
(verified using objectId which would be set from the last step if account was created in the directory. -->
<OrchestrationStep Order="6" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
何か案は?
ありがとう
マーティン