Siirry sisältöön

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.

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"]
}
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.json

Palauttaa 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.