Преобразования утверждений учетных записей социальных сетей
В службе Azure Active Directory B2C (Azure AD B2C) идентификаторы учетных записей социальных сетей хранятся в атрибуте alternativeSecurityIds
с типом утверждения alternativeSecurityIdCollection. Каждый элемент в утверждении alternativeSecurityIdCollection задает издателя (имя поставщика удостоверений, например facebook.com) и issuerUserId
— уникальный идентификатор пользователя для издателя.
"alternativeSecurityIds": [{
"issuer": "google.com",
"issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
},
{
"issuer": "facebook.com",
"issuerUserId": "MTIzNDU="
}]
В этой статье приведены примеры использования преобразований утверждений учетных записей социальных сетей для схемы инфраструктуры процедур идентификации в Azure AD B2C. Дополнительные сведения см. в статье о преобразовании утверждений.
AddItemToAlternativeSecurityIdCollection
Добавляет AlternativeSecurityId
к утверждению alternativeSecurityIdCollection
. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
Элемент | TransformationClaimType | Тип данных | Примечания. |
---|---|---|---|
InputClaim | Элемент | строка | Тип утверждения, добавляемый к исходящему утверждению. |
InputClaim | коллекция | alternativeSecurityIdCollection | Утверждение, используемое при преобразовании утверждений (если доступно в политике). Если это значение указано, при преобразовании утверждений в конец коллекции добавляется item . |
outputClaim | коллекция | alternativeSecurityIdCollection | Утверждение, которое создается после вызова этого преобразования утверждений. Новая коллекция, содержащая как элементы из входного элемента collection , так и из item . |
Пример AddItemToAlternativeSecurityIdCollection
В приведенном ниже примере новое удостоверение социальной сети связывается с существующей учетной записью. Чтобы связать новое удостоверение социальной сети с существующей учетной записью, выполните следующие действия:
AAD-UserReadUsingAlternativeSecurityId
В профилях иAAD-UserReadUsingObjectId
технических профилях выводится утверждение пользователяalternativeSecurityIds
.- Попросите пользователя выполнить вход с помощью одного из поставщиков удостоверений, которые не связаны с этим пользователем.
- Выполните преобразование утверждений CreateAlternativeSecurityId, чтобы создать новый тип утверждения alternativeSecurityId с именем
AlternativeSecurityId2
. - Вызовите преобразование утверждений AddItemToAlternativeSecurityIdCollection, чтобы добавить утверждение AlternativeSecurityId2 к существующему утверждению AlternativeSecurityIds.
- Сохраните утверждение alternativeSecurityIds в учетной записи пользователя.
<ClaimsTransformation Id="AddAnotherAlternativeSecurityId" TransformationMethod="AddItemToAlternativeSecurityIdCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="AlternativeSecurityId2" TransformationClaimType="item" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
Входящие утверждения:
item.
{ "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" }
collection:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]
Исходящие утверждения:
collection:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
CreateAlternativeSecurityId
Создает представление JSON свойства alternativeSecurityId пользователя, которое можно использовать в вызовах идентификатора Microsoft Entra. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени. Дополнительные сведения см. в описании схемы AlternativeSecurityId.
Элемент | TransformationClaimType | Тип данных | Примечания. |
---|---|---|---|
InputClaim | ключ | строка | Утверждение, которой указывает уникальный идентификатор пользователя, используемый поставщиком удостоверений социальных сетей. |
InputClaim | identityProvider | строка | Утверждение, которой указывает имя поставщика удостоверений учетных записей социальных сетей, например facebook.com. |
outputClaim | alternativeSecurityId | строка | Утверждение, которое создается после вызова этого преобразования утверждений. Содержит информацию об удостоверении пользователя учетной записи социальной сети. issuer — значение утверждения identityProvider . issuerUserId — значение утверждения key в формате base64. |
Пример CreateAlternativeSecurityId
Используйте это преобразование утверждений для создания утверждения alternativeSecurityId
. Преобразование используют все технические профили поставщиков удостоверений социальных сетей, например Facebook-OAUTH
. Следующее преобразование утверждений позволяет получить идентификатор учетной записи пользователя социальной сети и имя поставщика удостоверений. Выходные данные этого технического профиля — это формат строки JSON, который можно использовать в службах каталогов Microsoft Entra.
<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
<InputClaims>
<InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="key" />
<InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
</OutputClaims>
</ClaimsTransformation>
- Входные утверждения:
- key: 12334
- identityProvider: Facebook.com
- Выходные утверждения:
- alternativeSecurityId: { "issuer": "facebook.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"}
GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation
Возвращает список издателей из утверждения alternativeSecurityIdCollection в новое утверждение stringCollection. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
Элемент | TransformationClaimType | Тип данных | Примечания. |
---|---|---|---|
InputClaim | alternativeSecurityIdCollection | alternativeSecurityIdCollection | Утверждение, которое используется для получения списка поставщиков удостоверений (издатель). |
outputClaim | identityProvidersCollection | stringCollection | Утверждение, которое создается после вызова этого преобразования утверждений. Список поставщиков удостоверений, связанных с входным утверждением. |
Пример GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation
Указанное ниже преобразование утверждений позволяет считать утверждение пользователя alternativeSecurityIds и извлечь список имен поставщиков удостоверений, связанных с этой учетной записью. Используйте выходную коллекцию identityProvidersCollection, чтобы для пользователя отобразился список поставщиков удостоверений, связанный с учетной записью. Или же на странице выбора поставщика удостоверений отфильтруйте список поставщиков удостоверений на основе исходящего утверждения identityProvidersCollection. Таким образом, пользователь может привязать новое удостоверение социальной сети, которое еще не связано с его учетной записью.
<ClaimsTransformation Id="ExtractIdentityProviders" TransformationMethod="GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation">
<InputClaims>
<InputClaim ClaimTypeReferenceId="alternativeSecurityIds" TransformationClaimType="alternativeSecurityIdCollection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProviders" TransformationClaimType="identityProvidersCollection" />
</OutputClaims>
</ClaimsTransformation>
Входящие утверждения:
alternativeSecurityIdCollection:
[ { "issuer": "google.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
Исходящие утверждения:
- identityProvidersCollection: [ "facebook.com", "google.com" ]
RemoveAlternativeSecurityIdByIdentityProvider
Удаляет AlternativeSecurityId из утверждения alternativeSecurityIdCollection. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.
Элемент | TransformationClaimType | Тип данных | Примечания. |
---|---|---|---|
InputClaim | identityProvider | строка | Утверждение, которой содержит имя поставщика удостоверений, удаляемое из коллекции. |
InputClaim | коллекция | alternativeSecurityIdCollection | Утверждение, которое используется преобразованием утверждений. При преобразовании утверждений identityProvider удаляется из коллекции. |
outputClaim | коллекция | alternativeSecurityIdCollection | Утверждение, которое создается после вызова этого преобразования утверждений. Новая коллекция после удаления identityProvider из коллекции. |
Пример RemoveAlternativeSecurityIdByIdentityProvider
В приведенном ниже примере удаляется связь между одним из удостоверений социальных сетей и существующей учетной записью. Чтобы отменить связь удостоверения социальной сети, выполните следующие действия:
AAD-UserReadUsingAlternativeSecurityId
В профилях иAAD-UserReadUsingObjectId
технических профилях выводится утверждение пользователяalternativeSecurityIds
.- Попросите пользователя выбрать учетную запись социальной сети, которая будет удалена из списка поставщиков удостоверений, связанных с этим пользователем.
- Вызовите технический профиль преобразования утверждений, который вызывает преобразование утверждений RemoveAlternativeSecurityIdByIdentityProvider, при котором было удалено выбранное удостоверение социальной сети, с использованием имени поставщика удостоверений.
- Сохраните утверждение alternativeSecurityIds в учетной записи пользователя.
<ClaimsTransformation Id="RemoveAlternativeSecurityIdByIdentityProvider" TransformationMethod="RemoveAlternativeSecurityIdByIdentityProvider">
<InputClaims>
<InputClaim ClaimTypeReferenceId="secondIdentityProvider" TransformationClaimType="identityProvider" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
- Входные утверждения:
- identityProvider: facebook.com
- collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
- Выходные утверждения:
- collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]
Следующие шаги
- Дополнительные примеры преобразования утверждений можно найти в репозитории сообщества Azure AD B2C в GitHub.