

ValidationTechnicalProfilesについてですが、TechnicalProfileのProtocolが  
セルフアサート以外で使用できないかどうか知りたく思います。

本来やりたいことはREST APIが参照できずに500のinternal server errorとなった場合は、  
エラーが発生せずに次のステップへ処理が進むようにしたいです。  
それでエラーを回避する方法はValidationTechnicalProfilesぐらいしか検討がつかず、  
かといってClaimsTransformationProtocolProviderでは  
ValidationTechnicalProfilesが反応しないので、セルフアサート以外ではできないのか知りたいです。

またValidationTechnicalProfiles以外で、ポリシー内で500のinternal server errorを  
回避する方法があればご教授いただけたらと思います。

**〇UserJourneyから呼んでいるOrchestrationStepの一部**

[code]

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <!-- check existing session -->
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>AlternativeSecurityId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsProviderSelections>
        <ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" />
        <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>AlternativeSecurityId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
        <!-- ダミー用 -->
        <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmailDummy" />
      </ClaimsExchanges>
    </OrchestrationStep>
    
[/code]

**〇OrchestrationStep Order="2"のClaimsExchangeでダミーとして作成しているTechnicalProfile**

[code]

    <TechnicalProfile Id="LocalAccountSignUpWithLogonEmailDummy">
      <DisplayName>dummy</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <InputClaims/>
        <InputClaim ClaimTypeReferenceId="dummyVal2" DefaultValue="false" />
      </InputClaims> -->
      <OutputClaims>
        <!-- consent result -->
        <OutputClaim ClaimTypeReferenceId="dummyVal1" DefaultValue="dummy" />
        <OutputClaim ClaimTypeReferenceId="dummyVal2" DefaultValue="false" />
        <OutputClaim ClaimTypeReferenceId="status" PartnerClaimType="status"/>
        <OutputClaim ClaimTypeReferenceId="status" PartnerClaimType="userMessage"/>
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="IsDummy" />
      </OutputClaimsTransformations>
      <ValidationTechnicalProfiles>
        <ValidationTechnicalProfile ReferenceId="VAL-TECHNICAL" ContinueOnError="true"/>
      </ValidationTechnicalProfiles>
      <UseTechnicalProfileForSessionManagement ReferenceId="XXXX" />
    </TechnicalProfile>
    
[/code]

**〇ダミーとして作成しているTechnicalProfileのValidationTechnicalProfilesから呼んでいるRESTのTechnicalProfile**

[code]

    <TechnicalProfile Id="VAL-TECHNICAL">
      <DisplayName>VAL-TECHNICAL</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="AllowInsecureAuthInProduction">true</Item>
        <Item Key="AuthenticationType">None</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="ServiceUrl">https://XXXXXXXX.azurewebsites.net/api/XXXXXXXXXXXXXX?code=XXXXXXXXXXXXXXXXXXXXXXXXXX</Item>
      </Metadata>
      <IncludeInSso>false</IncludeInSso>
      <InputClaims> 
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="status" PartnerClaimType="status" DefaultValue="500" />
        <OutputClaim ClaimTypeReferenceId="userMessage" PartnerClaimType="userMessage" DefaultValue="NG" />
      </OutputClaims>
      <UseTechnicalProfileForSessionManagement ReferenceId="XXXXXXX" /> 
    
[/code]


CC BY-SA 4.0
2019-12-10T05:30:48.730
61291
2019-12-10T06:58:31.873
2019-12-10T06:58:31.873
3060
37004
question
azure
Azure Active Directory B2C のポリシー内にあるTechnicalProfileのValidationTechnicalProfilesについて