당신은 올바른 길을 가고 있습니다.
응용 프로그램 A와 응용 B의 두 가지 사용자 여행을 만든 다음 응용 프로그램 별 소유권 주장을 요구하는 두 사용자 여행에서 오케스트레이션 단계에 ClaimsExist
전제 조건을 추가하여 구현할 수 있습니다.
예 : 응용 프로그램 B의 가입 또는 로그인 사용자 여정의 경우 Azure Active Directory에서 사용자 개체를 읽은 후에 다음과 같은 오케스트레이션 단계를 추가 할 수 있습니다 (최종 사용자가 기존 계정으로 로그인 한 후 또는 "extension_NumberB"주장은 다음이 사용자 객체에 존재하지 않을 경우 여부를 확인 새로운 계정)에 가입 그것을 위해 프롬프트
<OrchestrationStep Order="4" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>extension_NumberB</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SelfAssertedApplicationBRegistrationExchange" TechnicalProfileReferenceId="SelfAsserted-ApplicationB-Registration" />
</ClaimsExchanges>
</OrchestrationStep>
는 그런 다음 "SelfAsserted - 애플리케이션 B-등록"기술 프로파일을 추가 :
<TechnicalProfile Id="SelfAsserted-ApplicationB-Registration">
<DisplayName>Application B Registration</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted.applicationb.registration</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="objectId" Required="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="extension_NumberB" Required="true" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteProfileUsingObjectId" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
그런 다음 "extension_NumberB"클레임을 "AAD-UserReadUsingObjectId"기술 프로필의 경우 <OutputClaim />
으로, "AAD-UserWriteProfileUsingObjectId"기술 프로필의 경우 <PersistedClaim />
으로 추가해야합니다.
에게 설명했다 정책
보다는 기능의 응용 프로그램을 수정할 수 있습니다
그 방법! – spottedmahn