2017-09-21 7 views
1

저는 WingTig Games demo code 다음에 sending claims to B2C via a JWT입니다. 나 자신의 주장 인 TechnicalProfile (아래 표시된 LocalAccountSignUpWithLogonNameWithIDs)의 소유권 주장을 숨기려면 어떻게해야합니까?사용자로부터 Azure AD B2C 클레임을 전송하십시오.


ClaimType 정의하지만 암탉에서 UserInputType 노드를 제거하려고했습니다 내가 얻을 사용자에 다음과 같은 오류 여행 플레이어 : 기술 프로파일에 지정된

출력 클레임 유형 "extension_my_claim" 테넌트 "mytenant.onmicrosoft.com"의 "B2C_1A_signup_signin_extensions"정책에있는 "LocalAccountSignUpWithLogonNameWithIDs"ID는 UserInputType 또는 DefaultValue를 지정하지 않으며 ValidationTechnicalProfile에서도 검색되지 않습니다.

그래서 그때는 InputClaimsTechnicalProfileOutputClaims에서 내 주장을 제거하고 오류를 제거하지만 값은 다음 지속되지 않았다. 당신이 사용자에게 표시하지 않고 디렉토리의 주장을 계속하려면


<TechnicalProfile Id="LocalAccountSignUpWithLogonNameWithIDs"> 
    <DisplayName>User ID signup with associate and org id</DisplayName> 
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    <Metadata> 
     <Item Key="IpAddressClaimReferenceId">IpAddress</Item> 
     <Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item> 
     <Item Key="LocalAccountType">Username</Item> 
     <Item Key="LocalAccountProfile">true</Item> 
     <Item Key="language.button_continue">Create</Item> 
    </Metadata> 
    <CryptographicKeys> 
     <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" /> 
    </CryptographicKeys> 
    <InputClaims> 
     <InputClaim ClaimTypeReferenceId="signInName" /> 
     <InputClaim ClaimTypeReferenceId="extension_my_claim" /> 
    </InputClaims> 
    <OutputClaims> 
     <OutputClaim ClaimTypeReferenceId="objectId" Required="true" /> 
     <OutputClaim ClaimTypeReferenceId="signInName" Required="true" /> 
     <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" /> 
     <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" /> 
     <OutputClaim ClaimTypeReferenceId="email" Required="true" /> 
     <OutputClaim ClaimTypeReferenceId="extension_my_claim" Required="true"/> 
     <OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" /> 
     <OutputClaim ClaimTypeReferenceId="newUser" /> 
     <OutputClaim ClaimTypeReferenceId="authenticationSource" /> 
     <OutputClaim ClaimTypeReferenceId="userPrincipalName" /> 
    </OutputClaims> 
    <ValidationTechnicalProfiles> 
     <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonName" /> 
    </ValidationTechnicalProfiles> 
    <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> 
</TechnicalProfile> 
+0

당신이 어떤 기술 프로필을 언급하고 있는지, 그리고 "어떻게 클레임을 숨기나요?"라는 질문을 업데이트 할 수 있습니까? 즉, 자신을 주장한 프로필에 표시하고 싶지 않다는 뜻입니까? –

+0

Hey @OmerIqbal이 올바른, 자기 주장 프로필. 나는 질문을 고쳤다, 고마워! – spottedmahn

답변

2

, 최선의 선택은 다음과 같습니다

  1. LocalAccountSignUpWithLogonNameWithIDs 기술 프로필
  2. InputClaim로 추가
  3. AAD-UserWriteUsingLogonName 기술 프로필에 PersistedClaim으로 추가하십시오.

귀하가하고있는 일은 지속성을 위해 모든 방법으로 청구서를 보내지 만 SelfAssertedAttributeProvider에있는 OutputClaim을 원하지 않는다고 선언하는 것입니다.

클레임을 OutputClaim으로 추가하면 SelfAssertedAttributeProvider에 값을 가져올 수있는 방법이 필요하다고 선언합니다.

  1. 사용자가 제공합니다 (ClaimType 정의에 UserInputType 필요)
  2. DefaultValue로 제공 ValidationTechnicalProfile
  3. 원본 주소 : 오늘로서, 그것은 세 가지 방법 중 하나에서 공급 될 수있다 이 주장에 대한 값을 얻을 수있는 SelfAssertedAttributeProvider 기술 프로파일에 대한 방법이 없었기 때문에 정책

에서 OutputClaim 당신이지고 있었다 오류 가능성이 있었다.

1

대답은 위 자체에서

가 출력 청구는 청구가 이전 단계에서 주장을 전달해야 그나마 이전 단계에서 채워 된 경우 사용자

에 제시 기술 프로필을 주장 상태로 단계를 밟으려면 여행이 끝날 때까지 또는 변형을 사용하여 삭제할 때까지 청구 가방에 남아 있어야합니다.

관련 문제