Mitkä ovat erot SAML:n ja OIDC:n välillä?
Tässä artikkelissa annamme yleiskatsauksen SAML- ja OIDC-protokollista sekä niiden tyypillisistä todennusprosesseista. Vertailimme kunkin protokollan eroja, etuja ja haittoja. Lisäksi tarjoamme ohjeita kahden protokollan välillä valitsemiseen mahdollisten käyttäjäskenaarioiden perusteella.
OpenID Connect (OIDC) ja Security Assertion Markup Language (SAML) ovat todennusprotokollia, jotka mahdollistavat Identiteettipalveluntarjoajien (IdP) käyttäjätodennuksen ja pääsynhallinnan toteuttamisen. Jokainen protokolla määrittää oman mekanisminsa todettujen käyttäjien identiteetin ylläpitämiseksi, jota käytetään pääsyn myöntämisessä tai estämisessä suojatuille sovelluksille.
Mitä ovat SAML ja OIDC?
IdP:t ylläpitävät käyttäjäidentiteetin tietokantoja. Palveluntarjoajat (SP:t) luottavat näihin tietoihin käyttäjien todentamisessa, joskus mahdollistamalla yhden todennuksen käytöksi useissa sovelluksissa (yksi sisäänkirjautuminen). OIDC ja SAML ovat standardeja, jotka määrittävät, miten tämä käyttäjäidentiteettiin liittyvä tieto liikkuu näiden kahden osapuolen välillä. Heidän lopullinen tavoitteensa on sama: käyttäjän todennus. Kuitenkin, heidän peruslähtökohtansa tämän tavoitteen saavuttamiseksi eroavat.
SAML
Vuodesta 2005 lähtien SAML 2.0 on standardin nykyinen versio. Se käyttää XML:ää identiteettitietojen, pyyntöjen ja vastausten muotoiluun. XML on kypsä standardi asiakirjojen muotoiluun tavalla, joka on ymmärrettävä sekä ihmisille että tietokoneille. XML-koodatun tiedon lähettämiseen tai vastaanottamiseen se käyttää perustason SOAP- tai HTTP-pyyntöjä. SAML-protokollan määrittelemänä palvelu, joka pyytää identiteettitietoja, on Palveluntarjoaja (SP).
Ennen kuin esittelemme tyypillisen SAML-todennusprosessin, meidän on ymmärrettävä ne osatekijät, joihin SAML-todennus luottaa. Ennen kuin IdP ja SP voivat tunnistaa toisensa ja suorittaa todennusprosessin, heidän on "vaihdettava" tarvittavat tiedot, yleensä suoritetaan XML-muotoillun metatiedon kautta. Vaihdettu tieto sisältää:
- Julkiset avaimet, IdP:n ja SP:n luodessa omat yksityiset ja julkiset avainparinsa ja vaihtaessaan niitä allekirjoittaakseen tai salatakseen viestintää. Kehittyneen verkkoviestinnän turvallisuuden myötä useimmiten vaaditaan nyt vain pyyntöjen allekirjoittaminen, ohittaen salausvaiheen.
- Loppupisteet, joita käytetään SP:n lähettäessä SAML-todennuspyyntöjä IdP:lle ja vastaanottaessaan SAML-väittämiä vastauksena IdP:ltä.
- Tuetut XML-ominaisuusmuodot, joita IdP käyttää välittämään tarvittavat käyttäjätiedot SP:lle tunnistuksen suorittamisen jälkeen.
Kun IdP ja SP ovat tietoisia edellä mainituista tiedoista, he voivat jatkaa valtuutusprosessia (tyypillinen SP-aloitettu todennusprosessi):
OIDC
OIDC on nykyajan protokolla, joka laajentaa OAuth 2.0-puitteita. Se käyttää JSON-pohjaisia Web-merkkejä (JWT) tietokuormituksen luonnissa. JWT:t, vakiintunut teollisuuden perusnormi, asetetaan ohjeiksi väitteiden turvallisesta vaihdosta ja edustamisesta entiteettien välillä. Nämä väitteet, olennaisesti salattuja käyttäjätietoja, ovat ratkaisevan tärkeitä identiteetin tarkistuksessa ja hallinnassa. OIDC käyttää ensisijaisesti laajalti käytettyä HTTPS:ää tietojen välittämiseen.
On yleisesti tunnustettavaa, että OIDC-protokolla tukee useita erilaisia virtoja, mukaan lukien valtuutuskoodin virta, implisiittivirta ja hybridi-virta. Seuraavassa esimerkissä käymme läpi näistä turvallisimman ja tyypillisimmän: valtuutuskoodivirran. Tätä virtaa käyttää myös Logto.
OIDC:n ja SAML:n erottuvat piirteet
- OIDC:n kehittämisen ansiosta se soveltuu paremmin nykyaikaiseen sovellustodennukseen verrattuna vanhempaan SAML-standardiin.
- Historiallisesti SAML edeltää OIDC:tä ja se on integroitu lukuisiin vakiintuneisiin yritysjärjestelmiin.
- Verrattuna SAML:n raskaampiin XML-asiakirjoihin, OIDC:n JWT:t ovat kompakteja ja käyttäjäystävällisempiä prosessoida.
- OIDC:n konfigurointi on yleensä yksinkertaisempaa kuin SAML.
- OIDC:n keskeinen ominaisuus on sen määritelmä “kohtuille”, joiden avulla IdP:t voivat hallita erilaisia lupia. Sovellukset voivat pyytää tiettyjä lupia IdP:ltä, jotka myönnetään käyttäjän hyväksynnän jälkeen. Tämä ominaisuus antaa IdP:lle hienojakoista hallintaa luvista.
Miten valita OIDC:n ja SAML:n välillä?
Sekä OIDC että SAML ovat luotettavia todennusjärjestelmiä, joilla on omat vahvuutensa. Valinta riippuu organisaatiosi erityistarpeista.
- Nopeaa ja tehokasta identiteettialustan käyttöönottoa varten OIDC on suositeltavampaa kuin SAML. OIDC:n toteutus on yksinkertaisempaa, välttäen SAML:n edellyttämän monimutkaisen XML-käsittelyn metatietojen jäsentämisessä, todennuspyyntöjen käsittelyssä ja SAML-väittämien analysoinnissa.
- OIDC on ihanteellinen ympäristöihin, joissa on laajat API-vuorovaikutukset ja hienostuneet lupajärjestelmät, tarjoten mukautuvampaa ja tehokkaampaa hallintaa luvista sek ä paremman kehittäjäkokemuksen.
- Kun integroitumisessa on kyse vakiintuneista SAML-pohjaisista järjestelmistä, SAML:n valitseminen varmistaa sujuvamman järjestelmäyhteensopivuuden ja vähentää tarvittavaa ponnistelua eri protokollien siltaamiseen.
Ovatko markkinoilla hyviä ratkaisuja?
Logto, kehittäjien keskuudessa suosittu identiteettiratkaisu, on viime aikoina esitellyt Enterprise SSO -toiminnallisuuden. Se tarjoaa tuen sekä SAML- että OIDC-protokollille ja valmiit integraatiot valtavirran IdP:ille, kuten Google Workspace ja Microsoft Entra ID (entinen Azure AD). Logton avulla voit ohittaa SSO:n toteuttamisen monimutkaisuuden itsenäisesti. Muutamalla yksinkertaisella konfigurointivaiheella mahdollistat SSO-tuen identiteettijärjestelmässäsi, antaen sinulle mahdollisuuden valita liiketoimintatarpeitasi vastaava protokolla.