2017-08-07 86 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"/> 

做喜欢给定名称,姓氏和电子邮件

其他属性相似