Discovery-dokumentti
Jokainen tenantti tarjoilee OIDC-metadatansa vakiopolusta
/.well-known/openid-configuration. Tämä on integraation lähtöpiste —
useimmat OIDC-kirjastot lukevat kaikki muut endpointit tästä dokumentista
eivätkä vaadi niiden koodaamista erikseen.
Live-esimerkki
Osio nimeltä “Live-esimerkki”GET https://id.tunnuspalvelu.fi/.well-known/openid-configuration{ "issuer": "https://id.tunnuspalvelu.fi", "authorization_endpoint": "https://id.tunnuspalvelu.fi/authorize", "token_endpoint": "https://id.tunnuspalvelu.fi/token", "userinfo_endpoint": "https://id.tunnuspalvelu.fi/userinfo", "jwks_uri": "https://id.tunnuspalvelu.fi/.well-known/jwks.json", "registration_endpoint": null, "scopes_supported": ["openid","profile","email","phone","offline_access","orgs","groups","roles"], "response_types_supported": ["code"], "response_modes_supported": ["query"], "grant_types_supported": ["authorization_code","refresh_token","client_credentials"], "subject_types_supported": ["public"], "id_token_signing_alg_values_supported": ["ES256"], "token_endpoint_auth_methods_supported": ["client_secret_basic","client_secret_post"], "claims_supported": ["sub","iss","aud","exp","iat","nonce","auth_time","amr","email","email_verified","name","picture","phone_number","phone_number_verified","sid","roles","orgs","groups"], "code_challenge_methods_supported": ["S256"], "introspection_endpoint": "https://id.tunnuspalvelu.fi/introspect", "revocation_endpoint": "https://id.tunnuspalvelu.fi/revoke", "end_session_endpoint": "https://id.tunnuspalvelu.fi/logout", "backchannel_logout_supported": true, "backchannel_logout_session_supported": true, "dpop_signing_alg_values_supported": ["ES256"]}Kenttien selitykset
Osio nimeltä “Kenttien selitykset”| Kenttä | Selitys |
|---|---|
issuer |
Tenantin JWT-issuer-URL. Täsmää aina tokeneiden iss-claimiin |
authorization_endpoint |
/authorize — kirjautumisen aloitus |
token_endpoint |
/token — koodin/refresh tokenin vaihto |
userinfo_endpoint |
/userinfo — käyttäjätietojen haku access tokenilla |
jwks_uri |
/.well-known/jwks.json — allekirjoitusavaimet |
registration_endpoint |
Aina null — dynaamista client-rekisteröintiä (RFC 7591) ei tueta |
scopes_supported |
Kaikki tenantin tukemat scopet — ks. Scopet ja claimit |
response_types_supported |
Aina ["code"] — ei implisiittistä eikä hybridi-flow’ta |
response_modes_supported |
Aina ["query"] |
grant_types_supported |
authorization_code, refresh_token, client_credentials. Kunkin clientin sallitut grantit ovat lisäksi client-kohtainen asetus |
subject_types_supported |
Aina ["public"] — sama sub kaikille relying partyille |
id_token_signing_alg_values_supported |
Aina ["ES256"] |
token_endpoint_auth_methods_supported |
client_secret_basic, client_secret_post. Public clientit todentuvat PKCE:llä, ei näillä menetelmillä |
claims_supported |
Kaikki mahdolliset claimit riippumatta siitä, mikä scope niitä tuottaa |
code_challenge_methods_supported |
Aina ["S256"] — plain-menetelmää ei tueta |
introspection_endpoint |
/introspect (RFC 7662) |
revocation_endpoint |
/revoke (RFC 7009) |
end_session_endpoint |
/logout (RP-Initiated Logout) |
backchannel_logout_supported / ..._session_supported |
Molemmat true — ks. Web-sovelluksen kirjautuminen |
dpop_signing_alg_values_supported |
Ilmoittaa ["ES256"]; validaattori hyväksyy käytännössä myös RS256-proofit — ks. Mobiili- ja natiivisovellukset |
acr_values_supported ei sisälly dokumenttiin, koska acr-claimia
(assurance-taso) ei ole vielä toteutettu.
GET https://id.tunnuspalvelu.fi/.well-known/jwks.jsonPalauttaa standardin JWK Set -muodossa (RFC 7517) tenantin aktiiviset
julkiset avaimet, EC P-256 ("kty": "EC", "crv": "P-256"), yleensä kaksi
avainta kerrallaan (nykyinen + edellinen — mahdollistaa jo myönnettyjen
tokenien validoinnin avainten kierron jälkeen). Vastaus välimuistitetaan
5 minuutiksi. Kytkeytyy tokenin headerin kid-arvoon avaimen valintaan.
Tarkempi kuvaus avainten kierrosta:
Avaimet ja allekirjoitus.