Следуя этому примеру, https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom нам удалось интегрировать каталог Azure AD ('AD') с каталогом Azure AD B2C («B2C»), чтобы мы могли зарегистрироваться в общедоступном приложении в социальных сетях и с самоутверждением, в которое наши рабочие пользователи также могут входить со своими обычными рабочими идентификаторами. Это хорошо работает и решает за нас сложный сценарий.
В приложении, защищенном с помощью B2C, нам необходимо показать пользователям AD контент, который имеет отношение к их рабочим характеристикам (в частности, нам нужно фильтровать продукты на основе их рабочей роли), но эта информация недоступна для нас, поскольку процесс регистрация в приложении генерирует новое удостоверение B2C для пользователя (фактически прокси для его удостоверения AD).
Что нам нужно сделать, так это сопоставить исходный идентификатор пользователя AD с новым идентификатором B2C. Другие свойства пользователя AD, такие как Имя и Фамилия, уже сопоставлены, и, похоже, это происходит здесь, в элементе 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>
В самом деле, даже кажется, что искомый идентификатор может быть сопоставлен со свойством (oid
), но когда мы позже запрашиваем график B2C для пользователя, это свойство oid
не возвращается.
Итак - как мы можем сопоставить Object ID
пользователя из рабочего каталога AD со свойством в новом созданном удостоверении B2C?