Tokeny zabezpieczająceSecurity tokens

Scentralizowany dostawca tożsamości jest szczególnie przydatny w przypadku aplikacji, które znajdują się na całym świecie, którzy nie muszą logować się z sieci przedsiębiorstwa.A centralized identity provider is especially useful for apps that have users located around the globe who don't necessarily sign in from the enterprise's network. Platforma tożsamości firmy Microsoft uwierzytelnia użytkowników i dostarcza tokeny zabezpieczające, takie jak tokeny dostępu, tokeny odświeżaniai tokeny identyfikatorów.The Microsoft identity platform authenticates users and provides security tokens, such as access tokens, refresh tokens, and ID tokens. Tokeny zabezpieczające umożliwiają aplikacji klienckiej dostęp do chronionych zasobów na serwerze zasobów.Security tokens allow a client application to access protected resources on a resource server.

Token dostępu: token dostępu jest tokenem zabezpieczającym wystawianym przez serwer autoryzacji w ramach przepływu OAuth 2,0 .Access token: An access token is a security token that's issued by an authorization server as part of an OAuth 2.0 flow. Zawiera informacje o użytkownikach i zasobach, dla których jest przeznaczony token.It contains information about the user and the resource for which the token is intended. Informacje te mogą służyć do uzyskiwania dostępu do internetowych interfejsów API i innych chronionych zasobów.The information can be used to access web APIs and other protected resources. Tokeny dostępu są weryfikowane przez zasoby w celu udzielenia dostępu do aplikacji klienckiej.Access tokens are validated by resources to grant access to a client app. Aby dowiedzieć się więcej o tym, jak platforma tożsamości firmy Microsoft wystawia tokeny dostępu, zobacz tokeny dostępu.To learn more about how the Microsoft identity platform issues access tokens, see Access tokens.

Token odświeżania: ponieważ tokeny dostępu są ważne przez krótki czas, serwery autoryzacji czasami wystawią token odświeżenia w tym samym czasie, gdy token dostępu zostanie wystawiony.Refresh token: Because access tokens are valid for only a short period of time, authorization servers will sometimes issue a refresh token at the same time the access token is issued. Aplikacja kliencka może następnie w razie potrzeby wymienić ten token odświeżania dla nowego tokenu dostępu.The client application can then exchange this refresh token for a new access token when needed. Aby dowiedzieć się więcej na temat sposobu odwoływania uprawnień przez platformę Microsoft Identity, zobacz odwoływanie tokenu.To learn more about how the Microsoft identity platform uses refresh tokens to revoke permissions, see Token revocation.

Token identyfikatora: tokeny identyfikatora są wysyłane do aplikacji klienckiej w ramach przepływu połączenia OpenID Connect .ID token: ID tokens are sent to the client application as part of an OpenID Connect flow. Mogą być wysyłane razem z tokenem dostępu lub zamiast niego.They can be sent alongside or instead of an access token. Tokeny identyfikatora są używane przez klienta do uwierzytelniania użytkownika.ID tokens are used by the client to authenticate the user. Aby dowiedzieć się więcej o tym, jak platforma tożsamości firmy Microsoft wystawia tokeny identyfikatorów, zobacz identyfikatory tokenów.To learn more about how the Microsoft identity platform issues ID tokens, see ID tokens.

Uwaga

W tym artykule omówiono tokeny zabezpieczające używane przez protokoły połączeń OAuth2 i OpenID Connect.This article discusses security tokens used by the OAuth2 and OpenID Connect protocols. Wiele aplikacji przedsiębiorstwa używa protokołu SAML do uwierzytelniania użytkowników.Many enterprise applications use SAML to authenticate users. Aby uzyskać informacje na temat potwierdzeń SAML, zobacz Azure Active Directory odwołanie do tokenu SAML.For information on SAML assertions, see Azure Active Directory SAML token reference.

Weryfikowanie tokenów zabezpieczającychValidate security tokens

Jest to aplikacja, dla której Wygenerowano token, aplikacja sieci Web, która została podpisana przez użytkownika lub interfejs API sieci Web w celu zweryfikowania tokenu.It's up to the app for which the token was generated, the web app that signed in the user, or the web API being called to validate the token. Token jest podpisany przez serwer autoryzacji z kluczem prywatnym.The token is signed by the authorization server with a private key. Serwer autoryzacji publikuje odpowiadający mu klucz publiczny.The authorization server publishes the corresponding public key. Aby sprawdzić poprawność tokenu, aplikacja weryfikuje podpis przy użyciu klucza publicznego serwera autoryzacji, aby sprawdzić, czy sygnatura została utworzona przy użyciu klucza prywatnego.To validate a token, the app verifies the signature by using the authorization server public key to validate that the signature was created using the private key.

Tokeny są ważne tylko przez ograniczony czas.Tokens are valid for only a limited amount of time. Zazwyczaj serwer autoryzacji zapewnia parę tokenów, takich jak:Usually, the authorization server provides a pair of tokens, such as:

  • Token dostępu, który uzyskuje dostęp do aplikacji lub chronionego zasobu.An access token, which accesses the application or protected resource.
  • Token odświeżania używany do odświeżania tokenu dostępu, gdy token dostępu zbliża się do wygaśnięcia.A refresh token, which is used to refresh the access token when the access token is close to expiring.

Tokeny dostępu są przesyłane do internetowego interfejsu API jako token okaziciela w Authorization nagłówku.Access tokens are passed to a web API as the bearer token in the Authorization header. Aplikacja może udostępnić token odświeżania serwerowi autoryzacji.An app can provide a refresh token to the authorization server. Jeśli dostęp użytkownika do aplikacji nie został odwołany, spowoduje to przywrócenie nowego tokenu dostępu i nowego tokenu odświeżania.If the user access to the app wasn't revoked, it will get back a new access token and a new refresh token. Jest to sposób obsługi scenariusza, w którym ktoś opuszcza przedsiębiorstwo.This is how the scenario of someone leaving the enterprise is handled. Gdy serwer autoryzacji odbiera token odświeżenia, nie będzie wystawiał innego prawidłowego tokenu dostępu, jeśli użytkownik nie jest już autoryzowany.When the authorization server receives the refresh token, it won't issue another valid access token if the user is no longer authorized.

Tokeny i oświadczenia sieci Web JSONJSON Web Tokens and claims

Platforma tożsamości firmy Microsoft implementuje tokeny zabezpieczające jako tokeny sieci Web JSON (JWTs), które zawierają oświadczenia.The Microsoft identity platform implements security tokens as JSON Web Tokens (JWTs) that contain claims. Ponieważ JWTs są używane jako tokeny zabezpieczające, ta forma uwierzytelniania jest czasami nazywana uwierzytelnianiem JWT.Since JWTs are used as security tokens, this form of authentication is sometimes called JWT authentication.

Twierdzenie zawiera potwierdzenia dotyczące jednej jednostki, takiej jak aplikacja kliencka lub właściciel zasobu, do innej jednostki, takiej jak serwer zasobów.A claim provides assertions about one entity, such as a client application or resource owner, to another entity, such as a resource server. Takie odwołanie może być również określane jako odwołanie JWT lub w przypadku roszczeń tokenów sieci Web JSON.A claim might also be referred to as a JWT claim or a JSON Web Token claim.

Oświadczenia są parami nazw lub wartości, które przekazują fakty dotyczące podmiotu tokenu.Claims are name or value pairs that relay facts about the token subject. Na przykład zgłoszenie może zawierać fakty dotyczące podmiotu zabezpieczeń, który został uwierzytelniony przez serwer autoryzacji.For example, a claim might contain facts about the security principal that was authenticated by the authorization server. Oświadczenia obecne w określonym tokenie zależą od wielu elementów, takich jak typ tokenu, typ poświadczenia używany do uwierzytelniania podmiotu i konfiguracja aplikacji.The claims present in a specific token depend on many things, such as the type of token, the type of credential used to authenticate the subject, and the application configuration.

Aplikacje mogą używać oświadczeń dla różnych zadań, takich jak:Applications can use claims for various tasks, such as to:

  • Sprawdź poprawność tokenu.Validate the token.
  • Określ dzierżawcępodmiotu.Identify the token subject's tenant.
  • Wyświetla informacje o użytkowniku.Display user information.
  • Określ autoryzację podmiotu.Determine the subject's authorization.

Element Claim składa się z par klucz-wartość, które zawierają informacje takie jak:A claim consists of key-value pairs that provide information such as the:

  • Serwer tokenów zabezpieczających, który wygenerował token.Security Token Server that generated the token.
  • Data wygenerowania tokenu.Date when the token was generated.
  • Podmiot (na przykład użytkownik — z wyjątkiem demonów).Subject (such as the user--except for daemons).
  • Odbiorcy, czyli aplikacja, dla której został wygenerowany token.Audience, which is the app for which the token was generated.
  • Aplikacja (klient), która poprosiła o token.App (the client) that asked for the token. W przypadku aplikacji sieci Web Ta aplikacja może być taka sama jak odbiorcy.In the case of web apps, this app might be the same as the audience.

Aby dowiedzieć się więcej o tym, jak platforma tożsamości firmy Microsoft implementuje tokeny i informacje dotyczące roszczeń, zobacz tokeny dostępu i tokeny identyfikatorów.To learn more about how the Microsoft identity platform implements tokens and claim information, see Access tokens and ID tokens.

Jak każdy przepływ emituje tokeny i kodyHow each flow emits tokens and codes

W zależności od sposobu skompilowania klienta można użyć jednego (lub kilku) przepływów uwierzytelniania obsługiwanych przez platformę tożsamości firmy Microsoft.Depending on how your client is built, it can use one (or several) of the authentication flows supported by the Microsoft identity platform. Te przepływy mogą generować różne tokeny (tokeny identyfikatorów, tokeny odświeżania, tokeny dostępu) i kody autoryzacji.These flows can produce various tokens (ID tokens, refresh tokens, access tokens) and authorization codes. Wymagają one innych tokenów, aby działały.They require different tokens to make them work. Ta tabela zawiera omówienie.This table provides an overview.

PrzepływFlow KONIECZNRequires Identyfikator tokenuID token Token dostępuAccess token Odśwież tokenRefresh token Kod autoryzacjiAuthorization code
Przepływ kodu autoryzacjiAuthorization code flow xx xx xx xx
Niejawny przepływImplicit flow xx xx
Hybrydowy przepływ OIDCHybrid OIDC flow xx xx
Odświeżanie umorzenia tokenuRefresh token redemption Odśwież tokenRefresh token xx xx xx
Przepływ „w imieniu”On-behalf-of flow Token dostępuAccess token xx xx xx
Poświadczenia klientaClient credentials x (tylko aplikacja)x (App only)

Tokeny wystawione za pośrednictwem trybu niejawnego mają ograniczenie długości, ponieważ są one przesyłane z powrotem do przeglądarki za pośrednictwem adresu URL, gdzie response_mode is query lub fragment .Tokens issued via the implicit mode have a length limitation because they're passed back to the browser via the URL, where response_mode is query or fragment. Niektóre przeglądarki mają limit rozmiaru adresu URL, który może być umieszczony na pasku przeglądarki i niepowodzenie, gdy jest zbyt długi.Some browsers have a limit on the size of the URL that can be put in the browser bar and fail when it's too long. W związku z tym tokeny nie mają groups wids oświadczeń ani oświadczenia.As a result, these tokens don't have groups or wids claims.

Następne krokiNext steps

Aby uzyskać więcej informacji na temat uwierzytelniania i autoryzacji na platformie tożsamości firmy Microsoft, zobacz następujące artykuły:For more information about authentication and authorization in the Microsoft identity platform, see the following articles: