ID-token - Prenly

En ID-token kan användas för att extrahera det unika användar-ID:t efter att användaren har auktoriserat sig. Du kan också välja att kringgå användningen av en resursserver genom att använda ett anpassat anspråk i ID-token-nyttolasten.

Specifikationer

Om du vill använda en ID-token måste du verifiera att:

  • ID-token följer JWT-specifikationen (RFC 7519).

  • ID-token följer OpenID Connect Core-specifikationen.

  • ID-token innehåller de påståenden som krävs (se OpenID-specifikationen för detaljer).

  • Valideringen av ID-token överensstämmer med specifikationen.


Utfärdare och upptäckt

Prenly kräver kunskap om utfärdaren ("iss" i ID-tokenens nyttolast), där utfärdaren måste vara en giltig URI.

Du kan också behöva uppfylla Discovery-specifikationen.

I synnerhet följande:

OpenID-providers som stöder Discovery MÅSTE göra ett JSON-dokument tillgängligt på den sökväg som bildas genom att konkatenera strängen /.well-known/openid-configuration till utfärdaren.

- avsnitt Hämtning av konfigurationsinformation för OpenID-leverantörer

Denna sökväg bildas genom att sammanlänka strängen issuer:

{issuer}/.well-known/openid-konfiguration

Anmärkningar:

  • Utfärdaren får inte innehålla ett efterföljande snedstreck.

  • Utfärdaren måste vara en giltig, funktionell URL.


Validering

ID-token måste vara verifierbar innan dess payload kan betros.

För detta krävs tillgång till JSON Web Key Set (JWKS), som vanligtvis refereras till som:

  • JKU

  • JWKS-URI

Detta är vanligen tillgängligt via:

{issuer}/.well-known/jwks (eller specificeras i OpenID-konfigurationen)

Ytterligare krav:

  • Om flera signeringsnycklar används måste rubrikanspråket "kid" inkluderas i ID-token.

  • Om endast en nyckel används antar Prenly att den nyckeln är giltig för verifiering.

Du kan testa och verifiera ID-tokens med hjälp av verktyg som t.ex:


Testning via JWT.io

  1. Gå till https://jwt.io

  2. Klistra in din ID-token i fältet Encoded (kodat)

  3. Granska de avkodade avsnitten:

    • Header

    • Payload

    • Signature

Om verifieringen misslyckas:

  • Klistra in din JWK (JSON) i fältet:

    "Public Key in SPKI, PKCS #1, X.509 Certificate, or JWK string formatt"


Payload

Förutom obligatoriska påståenden använder Prenly främst:

  • "sub"

Valfria påståenden som stöds:

  • "email"

  • "given name"

  • "family name"

  • "name"

För en fullständig lista över påståenden, se specifikationen för obligatoriska och valfria påståenden.

Om namn och e-post är tillgängliga:

  • De kommer att visas i användargränssnittet efter inloggning

I annat fall:

  • En platshållare kommer att visas

Anpassade anspråk (prenumerationer)

Prenly stöder anpassade anspråk i ID-token:

  • Måste vara en strängmatris

  • Varje värde representerar en produktkod för en prenumeration

  • Används för att ge åtkomst till skyddat innehåll


Omfattningar

Obligatoriskt scope:

  • openid

Rekommenderad omfattning:

Fördelar:

  • Möjliggör längre autentiseringssessioner

Viktigt beteende:

  • Använder endast åtkomsttoken för att fastställa autentiseringsstatus

  • Sessionens varaktighet beror på:

    • Tokenens utgångsdatum

    • Prenly-cachens varaktighet (minimum: 20 minuter)