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


Определение технического профиля для издателя токенов JWT в пользовательской политике Azure Active Directory B2C

Примечание.

В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев. В большинстве случаев рекомендуется использовать встроенные потоки пользователей. Ознакомьтесь со статьей Начало работы с настраиваемыми политиками в Azure Active Directory B2C, чтобы узнать о базовом пакете настраиваемых политик, если еще не сделали этого.

При обработке каждого потока проверки подлинности Azure Active Directory B2C (Azure AD B2C) создает маркеры безопасности различных типов. Технический профиль для издателя токенов JWT выдает токен JWT, который возвращается в приложение проверяющей стороны. Как правило, этот технический профиль является последним шагом оркестрации на пути взаимодействия пользователя.

Протокол

Атрибуту Name элемента Protocol необходимо присвоить значение OpenIdConnect. Для элемента OutputTokenFormat задайте значение JWT.

В следующем примере показан технический профиль для JwtIssuer:

<TechnicalProfile Id="JwtIssuer">
  <DisplayName>JWT Issuer</DisplayName>
  <Protocol Name="OpenIdConnect" />
  <OutputTokenFormat>JWT</OutputTokenFormat>
  <Metadata>
    <Item Key="client_id">{service:te}</Item>
    <Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
    <Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
    <Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
  </CryptographicKeys>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>

Входные данные, выходные данные и сохранение утверждений

Элементы InputClaims, OutputClaims и PersistClaims являются пустыми или отсутствуют. Элементы InutputClaimsTransformations и OutputClaimsTransformations также отсутствуют.

Метаданные

Атрибут Обязательное поле Описание
issuer_refresh_token_user_identity_claim_type Да Утверждение, которое следует использовать в качестве удостоверения пользователя в кодах авторизации OAuth2 и токенах обновления. По умолчанию необходимо присвоить значение objectId, если не указан другой тип утверждения SubjectNamingInfo.
SendTokenResponseBodyWithJsonNumbers No Всегда имеет значение true. Для устаревшего формата, где числовые значения представлены в виде строк вместо чисел JSON, задается значение false. Этот атрибут необходим для клиентов, которые приняли зависимость в ранней реализации, в которой возвращены такие свойства, как строки.
token_lifetime_secs No Время существования маркеров доступа. Время существования токена носителя OAuth 2.0, используемого для получения доступа к защищенному ресурсу. Значение по умолчанию составляет 3600 секунд (1 час). Минимальное значение (включительно) — 300 секунд (5 минут). Максимальное значение (включительно) — 86 400 секунд (24 часа).
id_token_lifetime_secs No Время существования токена идентификатора. Значение по умолчанию составляет 3600 секунд (1 час). Минимальное значение (включительно) — 300 секунд (5 минут). Максимальное значение (включительно) — 86 400 секунд (24 часа).
refresh_token_lifetime_secs No Время существования токена обновления. Максимальный период времени, до наступления которого маркер обновления может использоваться для получения нового маркера доступа, если приложению была предоставлена область offline_access. По умолчанию это 1 209 600 секунд (14 дней). Минимальное значение (включительно) — 86 400 секунд (24 часа). Максимальное значение (включительно) — 7 776 000 секунд (90 дней).
rolling_refresh_token_lifetime_secs No Время жизни скользящего окна токена обновления. По истечении этого периода пользователю будет необходимо пройти проверку подлинности повторно вне зависимости от срока действия последнего токена обновления, полученного приложением. Если вы не хотите применять время существования скользящего окна, задайте для параметра allow_infinite_rolling_refresh_token значение true. По умолчанию это 7 776 000 секунд (90 дней). Минимальное значение (включительно) — 86 400 секунд (24 часа). Максимальное значение (включительно) — 31 536 000 секунд (365 дней).
allow_infinite_rolling_refresh_token No Если задать значение true, время существования скользящего окна токена обновления будет неограниченно.
IssuanceClaimPattern No Управляет утверждением издателя (iss). Одно из значений:
  • AuthorityAndTenantGuid — утверждение iss включает ваше доменное имя, например login.microsoftonline или tenant-name.b2clogin.com, а также идентификатор клиента https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/;
  • AuthorityWithTfp — утверждение iss включает ваше доменное имя, например login.microsoftonline или tenant-name.b2clogin.com, ваш идентификатор клиента и имя политики проверяющей стороны. https://login.microsoftonline.com/tfp/aaaabbbb-0000-cccc-1111-dddd2222eeee/b2c_1a_tp_sign-up-or-sign-in/v2.0/
Значение по умолчанию: AuthorityAndTenantGuid
AuthenticationContextReferenceClaimPattern No Управляет значением утверждения acr.
  • None — Azure AD B2C не выдает утверждение acr.
  • PolicyId — утверждение acr содержит имя политики.
Параметры, использующиеся для настройки этого значения, — TFP (политика инфраструктуры доверия) и ACR (ссылка на контекст проверки подлинности). Мы рекомендуем для этого параметра задать значение TFP. Для задания значения должен существовать параметр <Item> с Key="AuthenticationContextReferenceClaimPattern" со значением None. В политику проверяющей стороны добавьте элемент <OutputClaims> и <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/>. Кроме того, ваша политика должна содержать утверждение типа <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType>.
RefreshTokenUserJourneyId No Идентификатор пути взаимодействия пользователя, который выполняется во время POST-запроса обновления маркера доступа к конечной точке /token.

Криптографические ключи

Элемент CryptographicKeys содержит следующие атрибуты.

Атрибут Обязательное поле Описание
issuer_secret Да Сертификат X509 (набор ключей RSA), используемый для подписывания токена JWT. Это ключ B2C_1A_TokenSigningKeyContainer, настроенный в разделе Начало работы с настраиваемыми политиками.
issuer_refresh_token_key Да Сертификат X509 (набор ключей RSA), используемый для шифрования токена обновления. Вы настроили ключ B2C_1A_TokenEncryptionKeyContainer во время работы со статьей Azure Active Directory B2C: начало работы с настраиваемыми политиками.

Управление сеансом

Чтобы настроить сеансы Azure AD B2C между Azure AD B2C и приложением проверяющей стороны, в атрибуте элемента UseTechnicalProfileForSessionManagement требуется ссылка на сеанс единого входа OAuthSSOSessionProvider.