2017-12-15 7 views
2

、私は複数のソーシャルプロバイダを可能にUserJourneyだけでなく、ローカルプロバイダを作成しようとしているが、唯一のサインインし、メンバー登録していないことができますよ。私はUserJourneyを含むTrustFrameworkExtensionsファイルをアップロードすると、アップロードはエラーで失敗します。カスタムポリシー検証エラー

Unable to upload policy. Reason : Validation failed: 2 validation error(s) found in policy "B2C_1A_TRUSTFRAMEWORKEXTENSIONS" of tenant "mytenant.onmicrosoft.com".ClaimsExchange with id "SignInWithLogonNameExchange" is referenced in UserJourney with id "SignInAny" in policy "B2C_1A_TrustFrameworkExtensions" of tenant "mytenant.onmicrosoft.com", but it was not found.ClaimsExchange with id "SignInWithLogonNameExchange" is referenced in UserJourney with id "SignInAny" in policy "B2C_1A_TrustFrameworkExtensions" of tenant "MBHB2C.onmicrosoft.com", but it was not found.

私は、関連するすべてのコンテンツが含まれていると思いますUserJourney、の最初の部分は、次のとおりです。

<UserJourney Id="SignInAny"> 
    <OrchestrationSteps> 
     <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections"> 
      <ClaimsProviderSelections> 

       <ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" /> 
       <ClaimsProviderSelection TargetClaimsExchangeId="KDEWebAppTestExchange" /> 
       <ClaimsProviderSelection TargetClaimsExchangeId="MSAExchange" /> 
       <ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" /> 
      </ClaimsProviderSelections> 

      <ClaimsExchanges> 
       <ClaimsExchange Id="SignInWithLogonNameExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" /> 
      </ClaimsExchanges> 
     </OrchestrationStep> 

     <!-- Check if the user has selected to sign in using one of the social providers --> 
     <OrchestrationStep Order="2" Type="ClaimsExchange"> 
      <Preconditions> 
       <Precondition Type="ClaimsExist" ExecuteActionsIf="true"> 
        <Value>objectId</Value> 
        <Action>SkipThisOrchestrationStep</Action> 
       </Precondition> 
      </Preconditions> 
      <ClaimsExchanges> 
       <ClaimsExchange Id="KDEWebAppTestExchange" TechnicalProfileReferenceId="KDEWebAppTestProfile" /> 
       <ClaimsExchange Id="MSAExchange" TechnicalProfileReferenceId="MSA-OIDC" /> 
       <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" /> 
      </ClaimsExchanges> 
     </OrchestrationStep> 
     ... 
    </UserJourney> 
</OrchestrationSteps> 

私は何を理解していません実際にはが見つかりませんでした。

提案?

ありがとうございました!

マーティン

答えて

1

は基本的には、Order 1とOrchestrationStepで、あなたは次の行を持っている:

<ClaimsProviderSelection TargetClaimsExchangeId="SignInWithLogonNameExchange" /> 

TargetClaimsExchangeIdを次OrchestrationStepClaimsExchange要素への参照です。ただし、IdSignInWithLogonNameExchangeに設定されている次の手順では、このような行はありません。

<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" /> 

ユーザーがそのClaimsProviderSelectionに対応するボタンをクリックしたときにそうIEF(例えばこれを使用するには技術的なプロファイル)に何をすべきかを知りません。

+0

'ValidationClaimsExchangeId'は現在のステップへの参照ですか? – spottedmahn

+1

はい。それを指摘してくれてありがとう。私はレスポンスを更新することを考えましたが、このケースはサインインのみですが、サインアップ/サインインのフローで使用されるので、そのままそのまま残しています。そのコンセプトは、ユーザがいくつかの入力を提供していることであり、ユーザの旅が前進できるようになる前に検証されなければならないということです。 –

+0

これはうまくいきました(少なくとも、有効であり、実際のサインイン機能はまだテストされていません)。しかし、私はまた別のエラーを回避するために、OrchestrationStep 1以内 ''セクションを削除する必要がありました '重複するキーシーケンス「SignInWithLogonNameExchange''があります。ありがとう! –