我已按照此处提供的指南在Azure AD B2C中设置自定义策略:
https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-setup-sf-app-custom
我实际上将IdP设置为SSOCircle而不是SalesForce,这似乎有效,直到重定向到服务提供商断言消费者URL
我已添加了应用程序洞察以进行故障排除,并且异常详细信息为:
ClaimType的声明,ID为#34; socialIdpUserId"找不到,这是Type" Claims.Cpim.Data.Transformations.CreateAlternativeSecurityIdTransformation"的ClaimsTransformationImpl所要求的。 for TransformationMethod" CreateAlternativeSecurityId"索引转换为id" CreateAlternativeSecurityId"在政策" B2C_1A_TrustFrameworkBase"租户" TENANT.onmicrosoft.com"。
任何帮助都将不胜感激。
答案 0 :(得分:0)
根据错误,您的<ClaimsProvider>
缺少socialIdpUserId
声明。这是因为缺少<OutputClaim>
的{{1}}条目或者它被映射到SSOCircle不提供的PartnerClaimType。
来自您引用的该文档中的"Create the Salesforce SAML claims provider in your base policy" section:
ClaimTypeReferenceId="socialIdPUserId"
答案 1 :(得分:0)
如果您需要用户ID作为SSOCircle的声明,请检查&#34; UserID&#34;在SSOCircle Admin UI中导入SAML服务提供者数据期间。然后,SSOCircle IDP将用户名添加为&#34; UserID&#34;属性为SAML断言。
参考Saca提到的政策,改变一下:
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="userId"/>
到
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="UserID"/>
对其他属性(如givenname,surname和email
)执行类似操作