# JWT-varmentaja

Tarkista, onko JSON Web Token aito ja edelleen voimassa. Liitä tunnus sekä sen HMAC-salaisuus, PEM-julkinen avain, varmenne, JWK tai kokonainen JWKS, niin varmentaja tarkistaa allekirjoituksen jose-kirjastolla, vertaa exp- ja nbf-arvoja nykyiseen aikaan ja valinnaiseen kellotoleranssiin sekä antaa selkeän tuloksen dekoodatun otsakkeen ja vaatimusten vieressä. Tunnukset, joissa on alg none, hylätään.

## Usein kysytyt kysymykset

### Mitä varmentaja tarkistaa?

Se tarkistaa allekirjoituksen antamaasi avainta vasten ja vertaa sitten exp- ja nbf-vaatimuksia nykyiseen aikaan. Tulos on kelvollinen vain, jos allekirjoitus täsmää eikä kumpikaan aikatarkistus epäonnistu. Vaatimukset, kuten iss, aud tai sub, näytetään hyötykuormassa, mutta niitä ei verrata odotettuihin arvoihin.

### Mitä avaimia voin liittää?

HS256-, HS384- ja HS512-algoritmeja varten liitä jaettu salaisuus tekstinä tai oct JWK:na. RSA-, EC- ja EdDSA-tokeneita varten liitä PEM-muotoinen julkinen avain (SPKI tai PKCS #1), X.509 varmenne, julkinen tai yksityinen JWK, enintään 50 avaimen JWKS tai yksityinen PEM-avain, josta käytetään vain julkista osaa.

### Miten oikea avain valitaan JWKS:stä?

Jos tokenin otsakkeessa on kid, käytetään joukosta avainta, jolla on sama kid. Jos sopivaa avainta ei löydy, virheilmoituksessa mainitaan kid. Ilman kid-arvoa joukossa täytyy olla täsmälleen yksi avain. Tämä vastaa tapaa, jolla useimmat palvelimet valitsevat avaimet jwks_uri-dokumentista.

### Mitä algoritmivalinta tekee?

Kun valittuna on Use the token's alg, algoritmi määräytyy tokenin otsakkeen perusteella, mutta avaimen on silti sovittava siihen. RSA-julkista avainta ei siis voi koskaan käyttää HMAC-salaisuutena. Valitse tietty algoritmi, jos haluat myös vaatia tokenia käyttämään sitä; näin palvelimen tulisi lukita odottamansa algoritmi. Jos tokenissa on jokin muu alg, se hylätään ja ilmoituksessa näytetään molemmat nimet.

### Miksi alg none -token hylätään?

alg none -tokenissa ei ole allekirjoitusta, joten mitään ei voi tarkistaa ja kuka tahansa olisi voinut kirjoittaa sen. Tällaisten tokenien hyväksyminen on tunnettu haavoittuvuus JWT-kirjastoissa. Tarkistin ilmoittaa siitä virheenä eikä kelvollisena tuloksena.

### Miten exp, nbf ja kellon toleranssi toimivat?

Token katsotaan vanhentuneeksi, kun exp on nykyinen aika tai sitä aiempi, ja ei vielä kelvolliseksi, kun nbf on nykyistä aikaa myöhempi. Kellon toleranssi 0–3600 sekuntia laajentaa molempia tarkistuksia, jotta palvelinten kellonaikojen erot eivät aiheuta ongelmia. Jos mukana olevat claim-arvot eivät ole numeerisia, token ei ole kelvollinen.

### Mitä virheellinen allekirjoitus tarkoittaa?

Tokenia ei ole allekirjoitettu antamallasi avaimella, tai sen otsaketta tai sisältöä on muutettu allekirjoituksen jälkeen. Tarkista, että liitit oikean julkisen avaimen tai salaisuuden täsmälleen oikein ja että token kopioitiin kokonaan. Purettu otsake ja sisältö näytetään silti, jotta voit verrata niitä.

### Mitä algoritmeja tuetaan?

HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 sekä EdDSA Ed25519-avaimilla. RSA-avaimissa on oltava vähintään 2048 bittiä. Salattuja tokeneita (JWE) ei pureta.

### Tallennetaanko token tai avain?

Ei. Tokenia ja avainta käytetään vain tämän tarkistuksen aikana muistissa, eikä niitä koskaan kirjata lokiin tai tallenneta. Julkisen avaimen voi jakaa turvallisesti, mutta käsittele HMAC-salaisuuksia huolellisesti ja vaihda salaisuus, jos epäilet sen vuotaneen.

### Kuinka suuria token ja avain voivat olla?

Token voi olla enintään 65,536 merkkiä pitkä, ja avainkenttään mahtuu enintään 262,144 merkkiä, mikä riittää suuriin JWKS-dokumentteihin. Tokenissa on oltava kolme pisteillä erotettua base64url-osaa, JSON-otsake, jossa on alg-jäsen, ja JSON-objekti sisältönä.

Mainospaikka vapaana?

[Lähetä meille sähköpostia](mailto:hi@dennn.is?subject=Mainostaminen%20palvelussa%20OneClick%20Pro)

[Mainos Agenteille valmis lisäosa­sarja tuotteelle WordPress.](https://sleekwp.com/?ref=oneclickpro)
