Udostępnij za pośrednictwem


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 JWTwartość .

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 truewartość . 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 truewartość , okres istnienia okna przewijania tokenu odświeżania nigdy nie wygaśnie.
WystawianieClaimPattern Nie. Kontroluje oświadczenie wystawcy (iss). Jedna z wartości:
  • AuthorityAndTenantGuid — oświadczenie iss zawiera nazwę domeny, taką jak login.microsoftonline lub tenant-name.b2clogin.com, i identyfikator dzierżawy https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/
  • AuthorityWithTfp — oświadczenie iss zawiera nazwę domeny, taką jak login.microsoftonline lub tenant-name.b2clogin.com, identyfikator dzierżawy i nazwę zasad jednostki uzależnionej. https://login.microsoftonline.com/tfp/00000000-0000-0000-0000-000000000000/b2c_1a_tp_sign-up-or-sign-in/v2.0/
Wartość domyślna: AuthorityAndTenantGuid
AuthenticationContextReferenceClaimPattern Nie. Steruje wartością acr oświadczenia.
  • Brak — usługa Azure AD B2C nie wystawia oświadczenia acr
  • PolicyId — acr oświadczenie zawiera nazwę zasad
Opcje ustawiania tej wartości to TFP (zasady platformy zaufania) i ACR (dokumentacja kontekstu uwierzytelniania). Zaleca się ustawienie tej wartości na TFP, aby ustawić wartość, upewnij się <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 .