按照此示例https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom我们已成功联合 Azure AD 目录(“AD”)使用 Azure AD B2C 目录 ('B2C'),因此我们可以让社交和自我断言注册到公共应用程序,我们的工作用户也可以使用他们的正常工作 ID 登录。这很好用,为我们解决了一个复杂的场景。
在使用 B2C 保护的应用程序中,我们需要向 AD 用户显示与其工作身份相关的内容(具体来说,我们需要根据他们的工作角色过滤产品),但我们无法获得这些信息,因为注册应用程序会为用户生成一个新的 B2C 身份(实际上是他们的 AD 身份的代理)。
我们需要做的是将用户原来的 AD 身份映射到新的 B2C 身份上。AD 用户的其他属性(例如 Given Name 和 Surname)已经映射,这似乎发生在这里,在ClaimsProvider我们的自定义策略的元素中,通过PartnerClaimType属性:
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="oid"/>
<OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
<OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="contosoAuthentication" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="AzureADContoso" />
</OutputClaims>
实际上,我们正在寻找的 ID 甚至可能被映射到一个oid属性oid(
那么 - 我们如何将用户Object ID从工作 AD 目录映射到所创建的新 B2C 身份的属性上?