Tokeny ID na platformě Microsoft Identity Platform
Tokeny ID jsou typ tokenu zabezpečení, který slouží jako ověření a potvrzuje, že se uživatel úspěšně ověřil. Informace v tokenech ID umožňují klientovi ověřit, že uživatel je tím, za koho se tvrdí, podobně jako značky názvů na konferenci. Autorizační server vydává tokeny ID, které obsahují deklarace identity, které obsahují informace o uživateli. Dají se odeslat společně s přístupovým tokenem nebo ne a vždy mají formát JWT (JSON Web Token).
Tokeny ID se liší od přístupových tokenů, které slouží jako doklad o autorizaci. Důvěrné klienty by měli ověřovat tokeny ID. K volání rozhraní API byste neměli používat token ID.
Aplikace třetích stran jsou určené k pochopení tokenů ID. Tokeny ID by se neměly používat pro autorizační účely. Přístupové tokeny se používají k autorizaci. Deklarace identity poskytované tokeny ID je možné použít pro uživatelské rozhraní uvnitř vaší aplikace, jako klíče v databázi a poskytnutí přístupu k klientské aplikaci. Další informace o deklarací identitách použitých v tokenu ID najdete v referenčních informacích k deklaracím tokenů ID. Další informace o autorizaci na základě deklarací identity najdete v tématu Zabezpečené aplikace a rozhraní API ověřováním deklarací identity.
Formáty tokenů
Na platformě Microsoft Identity Platform jsou k dispozici dvě verze tokenů ID: v1.0 a v2.0. Tyto verze určují deklarace identity, které jsou v tokenu. Tokeny ID v1.0 a v2.0 mají rozdíly v informacích, které obsahují. Verze je založená na koncovém bodu, ze kterého byla požadována. Nové aplikace by měly používat verzi 2.0.
- Verze 1.0:
https://login.microsoftonline.com/common/oauth2/authorize
- v2.0:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Ukázkový token ID verze 1.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q
Prohlédněte si tento ukázkový token verze 1.0 v jwt.ms.
Ukázkový token ID verze 2.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Prohlédněte si tento ukázkový token verze 2.0 v jwt.ms.
Životnost tokenu
Ve výchozím nastavení je token ID platný po dobu jedné hodiny – po jedné hodině musí klient získat nový token ID.
Dobu života tokenu ID můžete upravit, abyste mohli řídit, jak často klientská aplikace vyprší platnost relace aplikace a jak často vyžaduje, aby se uživatel znovu ověřil bezobslužně nebo interaktivně. Další informace najdete v tématu Konfigurovatelné životnosti tokenů.
Ověření tokenů
Pokud chcete ověřit token ID, může váš klient zkontrolovat, jestli se s tokenem manipuloval. Může také ověřit vystavitele, aby zajistil, že správný vystavitel odeslal token zpět. Vzhledem k tomu, že tokeny ID jsou vždy tokenem JWT, existuje mnoho knihoven k ověření těchto tokenů – měli byste místo toho použít některou z těchto knihoven. Tokeny ID by měly ověřovat pouze důvěrné klienty. Další informace najdete v tématu Zabezpečení aplikací a rozhraní API ověřováním deklarací identity.
Veřejné aplikace (kód spuštěný zcela na zařízení nebo síti, které neřídíte, jako je prohlížeč uživatele nebo jeho domácí síť), nemají prospěch z ověřování tokenu ID. V tomto případě může uživatel se zlými úmysly zachytit a upravit klíče použité k ověření tokenu.
Po ověření podpisu tokenu by se měly v tokenu ID ověřit následující deklarace identity JWT. Ověřovací knihovna tokenů může také ověřit následující deklarace identity:
- Časové razítka: všechna časová razítka ,
iat
nbf
aexp
časová razítka by měla podle potřeby spadat před aktuálním časem nebo za ně. - Cílová skupina:
aud
Deklarace identity by měla odpovídat ID aplikace pro vaši aplikaci. - Nonce:
nonce
Deklarace identity v datové části musí odpovídat parametru nonce předaného do koncového/authorize
bodu během počátečního požadavku.