我已经设置了在这里提供的引导下Azure的AD B2C自定义策略:
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”没有被发现,这是类型“Microsoft.Cpim.Data.Transformations.CreateAlternativeSecurityIdTransformation”的ClaimsTransformationImpl为TransformationMethod“CreateAlternativeSecurityId”的ID为“CreateAlternativeSecurityId”政策“的ClaimsTransformation引用所需B2C_1A_TrustFrameworkBase “租客‘TENANT.onmicrosoft.com’。
任何帮助,将不胜感激。
按照错误,您的<ClaimsProvider>
缺少socialIdpUserId
要求。 这是因为,无论是<OutputClaim>
其具有条目ClaimTypeReferenceId="socialIdPUserId"
丢失或者它映射到SSOCircle不提供PartnerClaimType。
从“创建Salesforce的SAML声明提供您的基本政策”一节在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>
如果您需要的用户ID从SSOCircle一个要求,请在SSOCircle管理用户界面的SAML服务提供商的数据导入期间检查“用户名”。 然后SSOCircle IDP将添加用户名作为“用户名”属性到SAML断言。
参照政策萨卡提到的那样,改变线路:
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="userId"/>
至
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="UserID"/>
做喜欢给定名称,姓氏和电子邮件的其他属性相似