Avaimet ja allekirjoitus
Allekirjoitusalgoritmi
Osio nimeltä “Allekirjoitusalgoritmi”Kaikki palvelun myöntämät tokenit (access token, ID token) allekirjoitetaan ES256:lla
(ECDSA + P-256 + SHA-256). Muita allekirjoitusalgoritmeja ei käytetä tokenien allekirjoitukseen.
DPoP-todisteet ovat clientin itsensä allekirjoittamia: discovery ilmoittaa ES256:n, ja
validaattori hyväksyy myös RS256-todisteet (ks. Mobiili- ja natiivisovellukset).
JWKS-endpoint
Osio nimeltä “JWKS-endpoint”Jokaisen tenantin julkiset avaimet on saatavilla osoitteessa:
GET https://id.<tenant-domain>/.well-known/jwks.jsonJulkinen, elävä esimerkki: https://id.tunnuspalvelu.fi/.well-known/jwks.json.
Avaimet ovat tenantkohtaisia: yhden tenantin JWKS-dokumentti sisältää vain kyseisen tenantin avaimet, ei muiden tenanttien avaimia.
Miten resurssipalvelin validoi tokenin
Osio nimeltä “Miten resurssipalvelin validoi tokenin”- Lue tokenin headerista
kid(key id). - Hae tenantin JWKS-dokumentista avain, jonka
kidtäsmää. - Validoi allekirjoitus löydetyllä avaimella.
Resurssipalvelimen kannattaa cachetta JWKS-dokumentti lyhyeksi ajaksi (muutamia minuutteja) ja
päivittää se uudelleen, jos vastaan tulee kid, jota cachessa ei ole — tämä varmistaa, että
juuri rotatoitu avain löytyy ilman viivettä.
Automaattinen rotaatio
Osio nimeltä “Automaattinen rotaatio”Signing-avainten rotaatio on automaattinen ja tenantkohtainen:
- Taustaprosessi tarkistaa päivittäin, onko tenantin nykyinen avain vähintään 30 vuorokautta vanha, ja rotatoi tarvittaessa uuden avaimen käyttöön.
- Vanhat avaimet säilytetään jo myönnettyjen tokenien validointia varten ja poistetaan vasta 90 vuorokauden kuluttua rotaatiosta.
- JWKS-dokumentti ja palvelimen sisäinen avainvälimuisti päivittyvät heti rotaation yhteydessä — uusi avain on siis JWKS:ssä välittömästi, ei vasta välimuistin vanhentumisen jälkeen.
Mitä rotaatio tarkoittaa integraation näkökulmasta
Osio nimeltä “Mitä rotaatio tarkoittaa integraation näkökulmasta”Rotaatio ei riko integraatiotasi, jos noudatat OIDC:n normaalia mallia: valitse allekirjoitusavain
aina token-headerin kid-arvon perusteella JWKS-dokumentista, älä koodaa yhtä avainta kiinteästi
sovellukseesi. Vanhoja tokeneita ei tarvitse uudelleen allekirjoittaa rotaation yhteydessä —
vanha avain pysyy validointikelpoisena, kunnes sen 90 vuorokauden säilytysaika päättyy.