Tokeny identyfikatorów w Platforma tożsamości Microsoft
Tokeny identyfikatorów są typem tokenu zabezpieczającego, który służy jako dowód uwierzytelniania, potwierdzając, że użytkownik został pomyślnie uwierzytelniony. Informacje w tokenach identyfikatorów umożliwiają klientowi sprawdzenie, czy użytkownik jest tym, do którego się podaje, podobnie jak tagi nazw na konferencji. Serwer autoryzacji wystawia tokeny identyfikatorów zawierające oświadczenia, które zawierają informacje o użytkowniku. Mogą być wysyłane razem lub zamiast tokenu dostępu i zawsze mają format JWT (token internetowy JSON).
Tokeny identyfikatorów różnią się od tokenów dostępu, które służą jako dowód autoryzacji. Poufne klienci powinni weryfikować tokeny identyfikatorów. Nie należy używać tokenu identyfikatora do wywoływania interfejsu API.
Aplikacje innych firm mają na celu zrozumienie tokenów identyfikatorów. Tokeny identyfikatorów nie powinny być używane do celów autoryzacji. Tokeny dostępu są używane do autoryzacji. Oświadczenia udostępniane przez tokeny identyfikatorów mogą służyć do środowiska użytkownika wewnątrz aplikacji, jako kluczy w bazie danych i zapewniania dostępu do aplikacji klienckiej. Aby uzyskać więcej informacji na temat oświadczeń używanych w tokenie identyfikatora, zobacz dokumentację oświadczeń tokenu identyfikatora. Aby uzyskać więcej informacji na temat autoryzacji opartej na oświadczeniach, zobacz Zabezpieczanie aplikacji i interfejsów API przez weryfikowanie oświadczeń.
Formaty tokenów
Istnieją dwie wersje tokenów identyfikatorów dostępne w Platforma tożsamości Microsoft: v1.0 i v2.0. Te wersje określają oświadczenia, które znajdują się w tokenie. Tokeny identyfikatorów w wersji 1.0 i 2.0 mają różnice w posiadanych informacjach. Wersja jest oparta na punkcie końcowym, z którego zażądano. Nowe aplikacje powinny używać wersji 2.0.
- Wersja 1.0:
https://login.microsoftonline.com/common/oauth2/authorize
- Wersja 2.0:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Przykładowy token identyfikatora w wersji 1.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q
Wyświetl ten przykładowy token w wersji 1.0 w jwt.ms.
Przykładowy token identyfikatora w wersji 2.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Wyświetl ten przykładowy token w wersji 2.0 w jwt.ms.
Okres istnienia tokenu
Domyślnie token identyfikatora jest ważny przez jedną godzinę — po godzinie klient musi uzyskać nowy token identyfikatora.
Możesz dostosować okres istnienia tokenu identyfikatora, aby kontrolować, jak często aplikacja kliencka wygasa sesji aplikacji i jak często wymaga od użytkownika ponownego uwierzytelnienia w trybie dyskretnym lub interakcyjnym. Aby uzyskać więcej informacji, przeczytaj Konfigurowanie okresów istnienia tokenów.
Weryfikowanie tokenów
Aby zweryfikować token identyfikatora, klient może sprawdzić, czy token został naruszony. Może również zweryfikować wystawcę, aby upewnić się, że prawidłowy wystawca wysłał token. Ponieważ tokeny identyfikatorów są zawsze tokenem JWT, wiele bibliotek istnieje w celu zweryfikowania tych tokenów — należy użyć jednej z tych bibliotek, a nie samodzielnie. Tylko poufne klienci powinni weryfikować tokeny identyfikatorów. Aby uzyskać więcej informacji, zobacz Zabezpieczanie aplikacji i interfejsów API przez weryfikowanie oświadczeń.
Aplikacje publiczne (kod uruchomiony w całości na urządzeniu lub w sieci, którą nie kontrolujesz, np. przeglądarka użytkownika lub sieć domowa), nie korzystają z weryfikacji tokenu identyfikatora. W tym przypadku złośliwy użytkownik może przechwycić i edytować klucze używane do weryfikacji tokenu.
Następujące oświadczenia JWT powinny zostać zweryfikowane w tokenie identyfikatora po zweryfikowaniu podpisu w tokenie. Biblioteka weryfikacji tokenu może również zweryfikować następujące oświadczenia:
- Znaczniki czasu:
iat
znaczniki czasu ,nbf
iexp
powinny spaść przed lub po bieżącej godzinie, zgodnie z potrzebami. - Odbiorcy:
aud
oświadczenie powinno być zgodne z identyfikatorem aplikacji. - Nonce:
nonce
oświadczenie w ładunku musi być zgodne z parametrem nonce przekazanym/authorize
do punktu końcowego podczas początkowego żądania.