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


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

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

CopyClaim

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

Элемент TransformationClaimType Тип данных Примечания
InputClaim InputClaim string, int Тип утверждения, который необходимо скопировать.
outputClaim outputClaim string, int Утверждение, которое создается после вызова этого преобразования утверждений.

Используйте это преобразование утверждения для копирования значения из строкового или числового утверждения в другое утверждение. В следующем примере значение утверждения externalEmail копируется в утверждение email.

<ClaimsTransformation Id="CopyEmailAddress" TransformationMethod="CopyClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="externalEmail" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>

Пример CopyClaim

  • Входящие утверждения:
    • inputClaim: bob@contoso.com.
  • Исходящие утверждения:
    • outputClaim: bob@contoso.com.

DoesClaimExist

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

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

Пример DoesClaimExist

Используйте это преобразование, чтобы проверить, существует ли утверждение или содержит ли оно какое-либо значение. Возвращается логическое значение, указывающее, существует ли утверждение. В следующем примере проверяется, существует ли адрес электронной почты.

<ClaimsTransformation Id="CheckIfEmailPresent" TransformationMethod="DoesClaimExist">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isEmailPresent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • inputClaim: someone@contoso.com.
  • Исходящие утверждения:
    • outputClaim: true.

Хэш

Хэширует предоставленный обычный текст, используя случайное значение и секрет. Для хэширования используется алгоритм SHA-256. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim plaintext строка Входящее утверждение для шифрования
InputClaim salt строка Параметр salt. Вы можете создать случайное значение, используя преобразование утверждений CreateRandomString.
InputParameter randomizerSecret строка Указывает на существующий ключ политики Azure AD B2C. Чтобы создать ключ политики, в арендаторе Azure AD B2C в разделе Manage (Управление) выберите Identity Experience Framework. Выберите Policy Keys (Ключи политики), чтобы просмотреть доступные в арендаторе ключи. Выберите Добавить. В пункте Параметры выберите Manual (Вручную). Предоставьте имя (префикс B2C_1A_ может быть добавлен автоматически). В поле Secret (Секрет) введите любой секрет, который нужно использовать, например 1234567890. Для параметра Использование ключа выберите Подпись. Нажмите кнопку создания.
outputClaim hash строка Утверждение, которое создается после вызова этого преобразования утверждений. Утверждение, настроенное в inputClaim plaintext.

Пример хэш-кода

В следующем примере показано, как хэшировать адрес электронной почты. При преобразовании утверждений перед хэшированием значений к адресу электронной почты добавляются случайные данные. Чтобы вызвать это преобразование утверждений, установите значение для утверждения mySalt.

<ClaimsTransformation Id="HashPasswordWithEmail" TransformationMethod="Hash">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="plaintext" />
    <InputClaim ClaimTypeReferenceId="mySalt" TransformationClaimType="salt" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="randomizerSecret" DataType="string" Value="B2C_1A_AccountTransformSecret" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="hashedEmail" TransformationClaimType="hash" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • plaintext: someone@contoso.com.
    • salt: 487624568.
    • randomizerSecret: B2C_1A_AccountTransformSecret.
  • Исходящие утверждения:
    • outputClaim: CdMNb/KTEfsWzh9MR1kQGRZCKjuxGMWhA5YQNihzV6U=

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