Azure的Active Directory中 - 自定义策略错误(Azure Active Dir

2019-10-28 18:04发布

我已经设置了在这里提供的引导下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’。

任何帮助,将不胜感激。

Answer 1:

按照错误,您的<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>


Answer 2:

如果您需要的用户ID从SSOCircle一个要求,请在SSOCircle管理用户界面的SAML服务提供商的数据导入期间检查“用户名”。 然后SSOCircle IDP将添加用户名作为“用户名”属性到SAML断言。

参照政策萨卡提到的那样,改变线路:

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

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

做喜欢给定名称,姓氏和电子邮件的其他属性相似



文章来源: Azure Active Directory - Custom Policy Error