2017-08-07 122 views
0

我已經設置了自定義策略在Azure的AD B2C這裏提供的指南如下:Azure中的Active Directory - 自定義策略錯誤

https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-setup-sf-app-custom

其實我已經建立的IdP作爲SSOCircle代替的Salesforce ,這似乎直到重定向到服務提供商的斷言使用者URL的

https://login.microsoftonline.com/te/TENANT.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer

工作

我爲了解決添加應用的深入分析和異常的詳細信息是:

ClaimType的ID爲索賠「socialIdpUserId」沒有被發現,這是由類型的ClaimsTransformationImpl「Microsoft.Cpim需要。 Data.Transformations.CreateAlternativeSecurityIdTransformation「for TransformationMethod」CreateAlternativeSecurityId「,由租戶」TENANT.onmicrosoft.com「的策略」B2C_1A_TrustFrameworkBase「中的ClaimsTransformation標識爲」CreateAlternativeSecurityId「引用。

任何幫助,將不勝感激。

回答

0

根據錯誤,您的<ClaimsProvider>缺少socialIdpUserId索賠。這是因爲<OutputClaim>條目缺少ClaimTypeReferenceId="socialIdPUserId",或者它映射到SSOCircle未提供的PartnerClaimType。

"Create the Salesforce SAML claims provider in your base policy" section在DOC你參考:

<ClaimsProvider> 
    <Domain>salesforce</Domain> 
    <DisplayName>Salesforce</DisplayName> 
    <TechnicalProfiles> 
    <TechnicalProfile Id="salesforce"> 
     <DisplayName>Salesforce</DisplayName> 
     <Description>Login with your Salesforce account</Description> 
     <Protocol Name="SAML2"/> 
     <Metadata> 
    <Item Key="RequestsSigned">false</Item> 
    <Item Key="WantsEncryptedAssertions">false</Item> 
    <Item Key="WantsSignedAssertions">false</Item> 
    <Item Key="PartnerEntity">https://contoso-dev-ed.my.salesforce.com/.well-known/samlidp.xml</Item> 
     </Metadata> 
     <CryptographicKeys> 
    <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> 
    <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> 
     </CryptographicKeys> 
     <OutputClaims> 
    <OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="userId"/> 
    <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/> 
    <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/> 
    <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/> 
    <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="username"/> 
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="externalIdp"/> 
    <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="SAMLIdp" /> 
     </OutputClaims> 
     <OutputClaimsTransformations> 
    <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> 
    <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> 
    <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> 
    <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> 
     </OutputClaimsTransformations> 
     <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop"/> 
    </TechnicalProfile> 
    </TechnicalProfiles> 
</ClaimsProvider> 
0

如果您需要的用戶ID從SSOCircle一個要求,請在SSOCircle管理用戶界面的SAML服務提供商的數據導入期間檢查「用戶名」 。然後SSOCircle IDP將用戶名作爲「UserID」屬性添加到SAML斷言中。

參照政策薩卡提到,更改行:

<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="userId"/> 

<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="UserID"/> 

做喜歡給定名稱,姓氏和電子郵件

其他屬性相似