Resurssit · 43

OAuth ja OpenID Connect: integraation varmistaminen päästä päähän

Erota sisäänkirjautumis-, delegointi- ja dataoikeudet, testaa sitten uudelleenohjaukset, tunnukset, istunnot ja peruutukset.

Päivitetty · 3 min

Mitä tämä opas auttaa saavuttamaan

  • Erota identiteetti valtuutuksesta.
  • Hylkää tahattomat uudelleenohjaukset ja tunnukset.
  • Testaa hylkäykset yhtä huolellisesti kuin onnistumiset.
  • Tarkista käyttöoikeuden poisto poistumisen tai tapahtuman jälkeen.

Pikatarkistus

  • Mitä palveluntarjoajaa ja myöntäjää odotetaan?
  • Onko uudelleenohjauksen URI rekisteröity tarkasti?
  • Käytetäänkö tunnistetunnusta virheellisesti käyttöoikeustunnuksena?
  • Tarkistaako jokainen resurssi omistajuuden?
  • Mikä käyttöoikeus säilyy peruuttamisen jälkeen?

Vaiheittainen menetelmä

  1. 1

    Piirrä käyttöönotettu työnkulku.

    Tunnista julkinen tai luottamuksellinen asiakas, selain, valtuutuspalvelin, API ja OIDC-palveluntarjoaja. Kirjaa muistiin, minne koodit ja tunnukset kulkevat, kuka niitä tallentaa ja mitkä roolit on myönnetty. Myyntikaavio ei määritä varsinaista käyttöönottoa.

    Toimitettava: työnkulku, luottamusrajat ja komponenttien omistajat.

  2. 2

    Tarkista kirjautumistapahtuma.

    Käytä asiakkaalle sopivaa koodinkulkua PKCE:n kanssa. Tarkista S256, tapahtumasidonta, rekisteröidyt uudelleenohjaukset ja suojaus väärennettyjä pyyntöjä vastaan. Testaa odottamatonta URI:tä, virheellistä varmentajaa, toistettua koodia ja odottamatonta myöntäjää. RFC 9700 erottelee vaatimukset ja suositukset asiakastyypin mukaan.

    Toimitettava: sallittujen ja kiellettyjen testien tulokset.

  3. 3

    Vahvista oikea token.

    API vahvistaa käyttöoikeustunnuksensa muodon ja tarjoajan sääntöjen mukaisesti: allekirjoitus tai itsetarkastelu, myöntäjä, yleisö, vanheneminen ja käyttöoikeudet. OIDC-asiakasohjelma vahvistaa identiteettitunnuksen erikseen. Kelvollinen allekirjoitus ei vahvista, että tunnus kuuluu tähän API:in.

    Toimitettava: sopimuksen ja yleisön sekä vanhenemisen testit.

  4. 4

    Tarkista liiketoimintaoikeudet.

    Testaa toisen tilin omistama objekti, alempi rooli, yksityinen kenttä ja hallinnollinen toiminto. Soveltamisala tai todennettu yhdyskäytävä ei korvaa pyydetyn resurssin palvelinpuolen tarkistuksia. Käytä valtuutettuja testitilejä ja -tietoja.

    Toimitettava: rooli, objekti, toiminto ja odotettu hylkäysmatriisi.

  5. 5

    Vanhenemisen ja peruutuksen harjoitus

    Erota paikallinen istunto, palveluntarjoajan istunto, käyttöoikeustunnus ja päivitystunnus. Testaa lähtö, kadonnut laite, roolin vaihto, allekirjoitusavaimen kierto ja palveluntarjoajan käyttökatkos. Dokumentoi jäljellä oleva käyttöaika sen sijaan, että oletetaan, että uloskirjautuminen peruuttaa kaiken välittömästi.

    Toimitettava: käyttöoikeuksien poiston aikajana ja poikkeukset.

  6. 6

    Tarkkaile paljastamatta salaisuuksia

    Kirjaa tapahtumaviite, validointipäätös, virheluokka ja konfiguraatioversio. Sulje pois koodit, tunnukset ja salaisuudet. Valmistele diagnoosi, integraation sulkeminen ja palautus validoituun konfiguraatioon; toista testit palveluntarjoajan vaihtojen jälkeen.

    Toimitettava: toimintamenettely ja regressiotarkistukset.

Kuvitteellinen esimerkki

Havainnollistava tilanne

Havainnollistava tilanne: kaksi asiakasta käyttää yhtä identiteetintarjoajaa. Ensimmäiselle kelvollinen token esitetään toisen asiakkaan API:lle.

Päätös ja odotettu näyttö

API hylkää väärän yleisön, tallentaa token-vapaan jäljen eikä palauta tietoja. Hylkäämisestä tulee regressiotesti.

Mekanismien erottaminen

MekanismiTarkoitusVahvistus tai rajoitus
OAuth 2.0Resurssin käyttöoikeuden delegointiPalvelinpuolen objektien käyttöoikeudet
OpenID ConnectHenkilöllisyyden varmistaminen validoidun tunnistetunnuksen avullaMyöntäjän, yleisön ja tapahtuman validointi
SovellusistuntoSovelluskirjautumisen ylläpitoVanheneminen, mitätöinti ja istunnon suojaus

Johdon indikaattorit

IndikaattoriMitä se mittaaEnsimmäinen toimenpide
Hylkäysten korjaaminenKielletyt tapaukset on tosiasiallisesti estettyKaikkien odottamattomien hyväksyntöjen korjaaminen
PeruutusviiveAika, kunnes asiaankuuluva käyttöoikeus katoaaIstuntojen ja tunnisteiden tarkistaminen erikseen
ValidointivirheetHylkäykset syyn ja version mukaanHyökkäysten erottaminen määritysvirheistä

Yleisiä virheitä

  • Todennuksen ja valtuutuksen sekoittaminen
  • Minkä tahansa yleisön hyväksyminen allekirjoituksen tarkistamisen jälkeen
  • Laajojen uudelleenohjaus-URIen rekisteröinti
  • Tunnusmerkkien kirjaaminen lokiin helpompi virheenkorjaus

Usein kysytyt kysymykset

Korvaako PKCE kaikki kontrollit?

Ei. Se suojaa koodinvaihtoa aiotussa työnkulussa; tokenin validointi, uudelleenohjaukset, liiketoiminnan valtuutus ja istunnot on edelleen tarkistettava.

Onko JWT käyttöoikeus?

JWT on formaatti. Vaatimukset tulevat käyttökelpoisiksi vasta validoinnin ja API-sääntöjen soveltamisen jälkeen.

Pitäisikö validointi rakentaa alusta alkaen?

Suosi ylläpidettyä kirjastoa ja tarjoajan dokumentaatiota ja testaa sitten kokoonpanoasi. Oikea kirjasto voidaan silti konfiguroida väärin.

Viralliset viitteet

Viitteet tukevat menetelmää. Sovita tarkastukset kontekstiisi; ne eivät ole sertifiointia. Alkuperäiset viitteiden otsikot ja lähdeasiakirjat voivat olla toisella kielellä.