Поделиться через


Преобразования утверждений StringCollection

В этой статье приведены примеры использования преобразований утверждений коллекции строк схемы инфраструктуры процедур идентификации Identity Experience Framework (IEF) в Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения см. в статье о преобразовании утверждений.

AddItemToStringCollection

Добавляет строковое утверждение в новое уникальное строковое утверждение stringCollection. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim Элемент строка Тип ClaimType, добавляемый к исходящему утверждению.
InputClaim коллекция stringCollection Коллекция строк, добавляемая в исходящее утверждение. Если коллекция содержит элементы, преобразование утверждений копирует элементы и добавляет элемент в конец исходящего утверждения коллекции.
outputClaim коллекция stringCollection Параметр ClaimType, который создается после вызова этого преобразования утверждений, со значением, указанным во входном утверждении.

Используйте это преобразование утверждений, чтобы добавить строку в новый или существующий элемент stringCollection. Оно обычно используется в техническом профиле AAD-UserWriteUsingAlternativeSecurityId. Перед созданием новой учетной записи социальной сети преобразование утверждений CreateOtherMailsFromEmail считывает ClaimType и добавляет значение в элемент ClaimType otherMails.

Пример AddItemToStringCollection

Следующее преобразование утверждений добавляет элемент ClaimType email в элемент ClaimType otherMails.

<ClaimsTransformation Id="CreateOtherMailsFromEmail" TransformationMethod="AddItemToStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="item" />
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • collection: ["someone@outlook.com"].
    • item: "admin@contoso.com".
  • Исходящие утверждения:
    • collection: ["someone@outlook.com", "admin@contoso.com"].

AddParameterToStringCollection

Добавляет строковый параметр в новое уникальное строковое утверждение stringCollection. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim коллекция stringCollection Коллекция строк, добавляемая в исходящее утверждение. Если коллекция содержит элементы, преобразование утверждений копирует элементы и добавляет элемент в конец исходящего утверждения коллекции.
InputParameter Элемент строка Значение, добавляемое к исходящему утверждению.
outputClaim коллекция stringCollection Параметр ClaimType, который создается после вызова этого преобразования утверждений, со значением, указанным во входном параметре.

Пример AddParameterToStringCollection

В следующем примере постоянный адрес электронной почты (admin@contoso.com) добавляется в утверждение otherMails.

<ClaimsTransformation Id="SetCompanyEmail" TransformationMethod="AddParameterToStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="item" DataType="string" Value="admin@contoso.com" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • collection: ["someone@outlook.com"].
  • Входные параметры
    • item: "admin@contoso.com".
  • Исходящие утверждения:
    • collection: ["someone@outlook.com", "admin@contoso.com"].

GetSingleItemFromStringCollection

Получает первый элемент из предоставленной коллекции строк. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim коллекция stringCollection Параметр ClaimTypes, используемый в преобразовании утверждений для получения элемента.
outputClaim extractedItem Строка Типы ClaimType, создаваемые после вызова этого преобразования ClaimsTransformation. Первый элемент в коллекции.

Пример GetSingleItemFromStringCollection

В следующем примере считывается утверждение otherMails и возвращается первый элемент в утверждение email.

<ClaimsTransformation Id="CreateEmailFromOtherMails" TransformationMethod="GetSingleItemFromStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedItem" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • collection: ["someone@outlook.com", "someone@contoso.com"].
  • Исходящие утверждения:
    • extractedItem: "someone@outlook.com".

StringCollectionContains

Проверяет, содержит ли тип утверждения StringCollection элемент. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim InputClaim stringCollection Утверждение, в котором выполняется поиск.
InputParameter элемент строка Значение, которое нужно найти.
InputParameter ignoreCase строка Указывает, следует ли в этом сравнении игнорировать регистр сравниваемых строк.
outputClaim outputClaim Логическое ClaimType, который создается после вызова ClaimsTransformation. Логический индикатор того, содержит ли коллекция такую строку

Пример StringCollectionContains

В следующем примере проверяется, содержит ли тип утверждения stringCollection roles значение admin.

<ClaimsTransformation Id="IsAdmin" TransformationMethod="StringCollectionContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="item" DataType="string" Value="Admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • inputClaim: ["reader", "author", "admin"]
  • Входные параметры:
    • item: "Admin"
    • ignoreCase: "true"
  • Исходящие утверждения:
    • outputClaim: "true"

StringCollectionContainsClaim

Проверяет, содержит ли тип утверждения StringCollection значение утверждения. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim коллекция stringCollection Утверждение, в котором выполняется поиск.
InputClaim элемент строка Тип утверждения, содержащий искомое значение.
InputParameter ignoreCase строка Указывает, следует ли в этом сравнении игнорировать регистр сравниваемых строк.
outputClaim outputClaim Логическое ClaimType, который создается после вызова ClaimsTransformation. Логический индикатор того, содержит ли коллекция такую строку

Пример StringCollectionContainsClaim

В следующем примере проверяется, содержит ли тип утверждения stringCollection roles значение типа утвержденияrole.

<ClaimsTransformation Id="HasRequiredRole" TransformationMethod="StringCollectionContainsClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="collection" />
    <InputClaim ClaimTypeReferenceId="role" TransformationClaimType="item" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="hasAccess" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation> 
  • Входящие утверждения:
    • collection: ["reader", "author", "admin"]
    • item: "Admin"
  • Входные параметры:
    • ignoreCase: "true"
  • Исходящие утверждения:
    • outputClaim: "true"

Дальнейшие действия