Definiowanie profilu technicznego wystawcy tokenu JWT w zasadach niestandardowych usługi Azure Active Directory B2C
Uwaga
W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.
Usługa Azure Active Directory B2C (Azure AD B2C) emituje kilka typów tokenów zabezpieczających, ponieważ przetwarza każdy przepływ uwierzytelniania. Profil techniczny wystawcy tokenu JWT emituje token JWT zwracany z powrotem do aplikacji jednostki uzależnionej. Zazwyczaj ten profil techniczny jest ostatnim krokiem aranżacji w podróży użytkownika.
Protokół
Atrybut Name elementu Protocol musi być ustawiony na OpenIdConnect
. Ustaw element OutputTokenFormat na JWT
wartość .
W poniższym przykładzie przedstawiono profil techniczny dla elementu 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>
Oświadczenia wejściowe, wyjściowe i utrwalane
Elementy InputClaims, OutputClaims i PersistClaims są puste lub nieobecne. Elementy InutputClaimsTransformations i OutputClaimsTransformations są również nieobecne.
Metadane
Atrybut | Wymagania | opis |
---|---|---|
issuer_refresh_token_user_identity_claim_type | Tak | Oświadczenie, które powinno być używane jako oświadczenie tożsamości użytkownika w kodach autoryzacji OAuth2 i tokenach odświeżania. Domyślnie należy ustawić ją na objectId , chyba że określisz inny typ oświadczenia SubjectNamingInfo. |
SendTokenResponseBodyWithJsonNumbers | Nie. | Zawsze ustaw wartość true . W przypadku starszego formatu, w którym wartości liczbowe są podawane jako ciągi zamiast liczb JSON, ustaw wartość false . Ten atrybut jest wymagany dla klientów, którzy wzięli zależność od wcześniejszej implementacji, która zwróciła takie właściwości jak ciągi. |
token_lifetime_secs | Nie. | Okresy istnienia tokenu dostępu. Okres istnienia tokenu elementu nośnego OAuth 2.0 używany do uzyskiwania dostępu do chronionego zasobu. Wartość domyślna to 3600 sekund (1 godzina). Minimalna wartość (włącznie) to 300 sekund (5 minut). Maksymalna (włącznie) wynosi 86 400 sekund (24 godziny). |
id_token_lifetime_secs | Nie. | Okresy istnienia tokenu identyfikatora. Wartość domyślna to 3600 sekund (1 godzina). Minimalna wartość (włącznie) to 300 sekund (5 minut). Maksymalna (włącznie) to sekundy 86 400 (24 godziny). |
refresh_token_lifetime_secs | Nie. | Odświeżanie okresów istnienia tokenu. Maksymalny okres, przed którym można użyć tokenu odświeżania do uzyskania nowego tokenu dostępu, jeśli aplikacja otrzymała zakres offline_access. Wartość domyślna to 120 9600 sekund (14 dni). Minimalna (włącznie) wynosi 86 400 sekund (24 godziny). Maksymalna (włącznie) wynosi 7776 000 sekund (90 dni). |
rolling_refresh_token_lifetime_secs | Nie. | Okres istnienia okna przewijania tokenu odświeżania. Po upływie tego czasu użytkownik zostanie zmuszony do ponownego uwierzytelnienia niezależnie od okresu ważności ostatniego tokenu odświeżania uzyskanego przez aplikację. Jeśli nie chcesz wymuszać okresu istnienia okna przewijania, ustaw wartość allow_infinite_rolling_refresh_token na true wartość . Wartość domyślna to 776 000 sekund (90 dni). Minimalna (włącznie) wynosi 86 400 sekund (24 godziny). Maksymalna (włącznie) wynosi 31 536 000 sekund (365 dni). |
allow_infinite_rolling_refresh_token | Nie. | Jeśli ustawiono true wartość , okres istnienia okna przewijania tokenu odświeżania nigdy nie wygaśnie. |
WystawianieClaimPattern | Nie. | Kontroluje oświadczenie wystawcy (iss). Jedna z wartości:
|
AuthenticationContextReferenceClaimPattern | Nie. | Steruje wartością acr oświadczenia.
<Item> , że element z wartością Key="AuthenticationContextReferenceClaimPattern" istnieje, a wartość to None . W zasadach jednostki uzależnionej dodaj element, dodaj <OutputClaims> ten element <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/> . Upewnij się również, że zasady zawierają typ oświadczenia <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType> |
RefreshTokenUserJourneyId | Nie. | Identyfikator podróży użytkownika, który powinien zostać wykonany podczas odświeżania żądania POST tokenu dostępu POST do punktu końcowego /token . |
Klucze kryptograficzne
Element CryptographicKeys zawiera następujące atrybuty:
Atrybut | Wymagania | opis |
---|---|---|
issuer_secret | Tak | Certyfikat X509 (zestaw kluczy RSA) używany do podpisywania tokenu JWT. Jest B2C_1A_TokenSigningKeyContainer to klucz skonfigurowany w temacie Wprowadzenie do zasad niestandardowych. |
issuer_refresh_token_key | Tak | Certyfikat X509 (zestaw kluczy RSA) używany do szyfrowania tokenu odświeżania. Klucz został skonfigurowany w temacie B2C_1A_TokenEncryptionKeyContainer Wprowadzenie do zasad niestandardowych |
Zarządzanie sesją
Aby skonfigurować sesje usługi Azure AD B2C między usługą Azure AD B2C i aplikacją jednostki uzależnionej, w atrybucie UseTechnicalProfileForSessionManagement
elementu dodaj odwołanie do sesji logowania jednokrotnego OAuthSSOSessionProvider .