Определение технического профиля для издателя токенов 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). Одно из значений:
|
AuthenticationContextReferenceClaimPattern | No | Управляет значением утверждения acr .
<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.