2017-09-21 57 views
1

我是sending claims to B2C via a JWTWingTig Games demo code之後。我如何隱藏來自用戶的自我聲明TechnicalProfile的聲明(LocalAccountSignUpWithLogonNameWithIDs如下所示)?發送用戶隱藏的Azure AD B2C聲明


我試圖從我ClaimType定義,但母雞去除UserInputType節點我得到了用戶以下錯誤西遊玩家:

輸出聲明類型「extension_my_claim」在技術配置文件與規定租戶「mytenant.onmicrosoft.com」的策略「B2C_1A_signup_signin_extensions」中的id「LocalAccountSignUpWithLogonNameWithIDs」未指定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

嘿@OmerIqbal,這正確的,我自我斷言的個人資料。我已更新問題,謝謝! – spottedmahn

回答

2

如果你想堅持在目錄中的要求沒有它呈現給用戶,最好的辦法是:

  1. InputClaim它添加到LocalAccountSignUpWithLogonNameWithIDs技術簡介
  2. 將其作爲PersistedClaim加入AAD-UserWriteUsingLogonName技術參數文件中,然後將其寫入目錄

您所做的只是一直髮送聲明以進行持久化處理,但聲明您不希望SelfAssertedAttributeProvider中的OutputClaim

當您將索賠作爲OutputClaim添加時,則聲明SelfAssertedAttributeProvider需要獲取該值。由用戶提供(這需要UserInputTypeClaimType定義)從ValidationTechnicalProfile

  • 提供爲DefaultValue檢索

    1. :直至今日,它可以從的三種可能的方法的任何一種來源政策

    OutputClaim的你得到的錯誤是可能的,因爲沒有辦法爲SelfAssertedAttributeProvider技術簡介獲取有關該要求的值。

  • 1

    如上的回答指出

    在自

    斷言技術簡介輸出聲明它呈現給用戶

    如果要求已在你不需要通過從步驟索賠前步驟之前填充他們會留在索賠包中,直到旅程結束,或者直到您使用轉換來刪除它們。