Водич за програмере за САМЛ аутентификацију [3 Online Tools]

U današnje vreme, pojednostavljivanje upravljanja lozinkama postaje ključni zadatak. Kako kompanije napreduju u digitalnoj transformaciji, zaposleni sve više koriste alate za saradnju, komunikaciju i skladištenje podataka.

Ovo predstavlja izazov za softverske inženjere: kako obezbediti siguran pristup internim aplikacijama i podacima smeštenim u oblaku? Za mnoge, odgovor leži u SAML autentifikaciji!

Šta je SAML?

Security Assertion Markup Language, ili SAML, predstavlja otvoreni standard koji olakšava procese autentifikacije. Baziran je na XML-u (Extensible Markup Language), koji standardizuje komunikaciju između entiteta koji se autentifikuju i veb servisa ili aplikacija. Jednostavnije rečeno, SAML omogućava korišćenje jedne prijave za pristup većem broju različitih aplikacija.

Sa jedne strane, provajder usluga zahteva autentifikaciju od provajdera identiteta (IdP) kako bi odobrio pristup korisniku. Na primer, Salesforce je provajder usluga koji se oslanja na provajdera identiteta za potvrdu identiteta korisnika.

Sa druge strane, provajder identiteta potvrđuje da je korisnik zaista onaj za koga se izdaje i prosleđuje te informacije provajderu usluga, zajedno sa korisničkim pravima pristupa. Jedan od vodećih provajdera rešenja za upravljanje identitetom je Auth0.

Šta je sa SAML jedinstvenom prijavom?

Jedna od ključnih uloga SAML-a je omogućavanje Single Sign-On (SSO). Pre SAML-a, SSO je bio moguć, ali je zavisio od kolačića i bio je ograničen na isti domen.

SAML omogućava SSO tako što korisnicima dozvoljava pristup većem broju aplikacija sa jednom prijavom i setom akreditiva. Iako SAML nije nov, postoji od 2002. godine, mnoge savremene aplikacije i SaaS kompanije ga koriste za SSO. Njegova najnovija verzija, SAML 2.0, omogućava SSO na više domena zasnovan na vebu i predstavlja standard za autorizaciju resursa.

Koje su prednosti SAML autentifikacije?

SAML donosi brojne prednosti u pogledu sigurnosti, korisničkog iskustva i efikasnosti za provajdere usluga (SP).

Jednostavnost: Korisnici se prijavljuju samo jednom na IdP, a zatim uživaju u neometanom i sigurnijem pristupu svim aplikacijama.

Povećana sigurnost: Mnogi provajderi usluga nemaju dovoljno vremena ili resursa za implementaciju i održavanje sigurne autentifikacije korisnika prilikom prijavljivanja. IdP-ovi su obično bolje opremljeni za verifikaciju korisničkih identiteta. Delegiranjem autentifikacije IdP-u, SAML omogućava sigurnu autentifikaciju koja može primeniti višeslojne mere bezbednosti, kao što je MFA (Multi-Factor Authentication).

Poboljšano korisničko iskustvo: Sa SAML-om, korisnici se oslobađaju frustracije pamćenja više korisničkih imena i lozinki.

Smanjeni troškovi upravljanja: Provajderi usluga mogu poboljšati sigurnost svoje platforme bez čuvanja lozinki. Nema potrebe za rešavanjem problema sa zaboravljenim lozinkama. Služba za podršku smanjuje troškove i oslobađa tehničke timove da se bave drugim hitnim zahtevima.

Šta je Auth0 i kako je povezan sa SAML autentifikacijom?

Auth0 je platforma koja pruža uslugu autentifikacije i autorizacije korisnika. Može funkcionisati i kao IdP i kao SP. Auth0 nudi univerzalnu prijavu koja se može integrisati sa SAML-om. Programeri često koriste Auth0 sa SAML-om da bi diversifikovali rizik koristeći više IdP-ova.

Auth0 se može koristiti sa skoro svim glavnim programskim jezicima i API-jima. Takođe se može integrisati sa društvenim mrežama, bazama podataka i LDAP direktorijumima.

SAML SSO tok

Jedna od glavnih funkcija SAML-a je omogućavanje jedinstvene prijave (SSO). Pre SAML-a, SSO je bio moguć, ali je zavisio od kolačića i bio je održiv samo unutar istog domena.

SAML omogućava SSO tako što dozvoljava korisnicima da pristupe više aplikacija sa jednom prijavom i akreditivima. SAML nije nov, postoji od 2002. godine, a mnoge savremene aplikacije i SaaS kompanije koriste SAML za SSO. Njegova najnovija verzija, SAML 2.0, omogućava SSO preko više domena zasnovan na webu i predstavlja standard za autorizaciju resursa.

Konkretno, ovo podrazumeva da se od korisnika traži autentifikacija samo jednom kada koristi različite aplikacije. Na primer, možemo zamisliti Google autentifikaciju, koja se deli između različitih servisa kao što su Gmail, YouTube, Google Apps itd.

U ovom režimu rada, Google je provajder identiteta (IdP) za svoje usluge. Ove usluge se nazivaju „provajderi usluga“ (SP).

Autentifikacija

Kada se povezuje sa spoljnom aplikacijom, ona šalje nepoznatog korisnika korporativnom IdP-u. Ovaj IdP je web servis dostupan preko HTTPS-a. Može biti hostovan interno ili eksterno.

Interna autentifikacija

Korisnik tada dokazuje svoj identitet IdP-u. Ova faza se može obaviti eksplicitnom autentifikacijom (login/lozinka) ili prenosom već postojećeg tokena.

Generisanje tvrdnje

IdP će generisati „token“, vrstu korisničke lične karte, koja važi samo za traženu uslugu i za određeni vremenski period. U ovom tokenu se posebno nalaze:

  • Identitet korisnika: login, email ili druga polja
  • Opcioni dodatni atributi: prezime, ime, jezik itd.
  • Period važenja tokena
  • Potpis tokena od strane IdP-a

Prenos od IdP do SP

U najpraktičnijem režimu, tvrdnja se ne prenosi direktno od IdP-a do SP-a, već preko samog korisnika. Putem HTTP mehanizma preusmeravanja, IdP će klijentskom pretraživaču proslediti token za prenos provajderu usluga. To se može uporediti sa ličnom kartom izdatom od strane nadležnog organa za pokazivanje drugim institucijama.

Potrošnja tokena od strane SP

Provajder usluga prima token od korisnika. SP je odlučio da veruje ovom IdP-u. Takođe proverava potpis i integritet tokena, kao i period važenja. Ako su testovi uspešni, SP otvara sesiju za korisnika.

Izvor: Wikipedia

SAML autentifikacija vs. Autorizacija korisnika

SAML autentifikacija se često meša sa autorizacijom. Radi jasnoće, važno je razlikovati koncepte autentifikacije i autorizacije.

Autentifikacija: to je potvrda identiteta korisnika; u suštini, provera da li su oni zaista oni za koje se izdaju. Primer je korišćenje e-pošte i lozinke za pristup sistemu – jedna sesija ili prijava za druge platforme.

Autorizacija: ovo su dozvole koje korisnik daje aplikaciji treće strane za pristup resursima na svom nalogu. Uz korisničko odobrenje, protokol autorizacije razmenjuje tokene bez pristupa njihovim akreditivima. Obično se ovo dešava kada dozvolite platformi (kao što je Facebook) da pristupi određenim informacijama sa vašeg Google naloga.

Terminologija SAML-a koju morate znati

SAML tvrdnja

SAML tvrdnje obično prosleđuju provajderi identiteta provajderima usluga. Tvrdnje sadrže izjave koje provajderi usluga koriste za donošenje odluka o kontroli pristupa. SAML obezbeđuje tri tipa deklaracija:

  • Izjave o autentifikaciji potvrđuju da je provajder usluga zaista bio autentifikovan kod provajdera identiteta u datom trenutku pomoću metode autentifikacije.
  • Deklaracija atributa potvrđuje da je subjekat povezan sa određenim atributima. Atribut je jednostavno par ime-vrednost. Pouzdane strane koriste atribute za donošenje odluka o kontroli pristupa.
  • Ovlašćena izjava o odluci potvrđuje da je subjektu dozvoljeno da deluje na resursu tako što će predstaviti dokaze za to. Izražajnost odluka o ovlašćenju u SAML-u namerno je ograničena.

Assertion Consumer Service

Assertion Consumer Service ili ACS je tačka na koju provajder identiteta preusmerava nakon odgovora na autentifikaciju korisnika. Tačka na koju provajder identiteta preusmerava je HTTPS krajnja tačka koja prenosi lične podatke.

Podrazumevano stanje releja

To je podrazumevana URL adresa na koju će korisnik biti preusmeren nakon što se SAML poruka potvrdi. Podrazumevano stanje releja se koristi za koordinaciju poruka između IdP-a i SP-a.

SAML je široko korišćen protokol i često je neophodno dekodirati SAML tvrdnje. Slede neke od najboljih SAML alatki za kodiranje, dekodiranje i formatiranje SAML poruka i tvrdnji:

#1. SAMLtool

SAMLtool od OneDesign-a je kolekcija onlajn SAML alata i skupova alata. Ovo uključuje različite alate za kodiranje i dekodiranje SAML poruka, šifrovanje i dešifrovanje tvrdnji, kao i potpisivanje i validaciju SAML poruka i tvrdnji. SAMLtool takođe nudi nekoliko različitih dodataka za integraciju ovih alata sa različitim CMS-ovima.

#2. samltool.io

Nudi Auth0, samltool.io je online alatka koja takođe dekodira, proverava i verifikuje SAML poruke i tvrdnje jednostavnim lepljenjem sirovog XML-a ili URL-ova koji sadrže zahteve.

#3. SAML decoder

SAML decoder je jednostavan online alat za dekodiranje SAML-a koji nudi PingIdentity. SAML decoder se može koristiti za dekodiranje, komprimovanje i formatiranje SAML poruka, tvrdnji i metapodataka.

Završne reči

SAML standard je veoma koristan za implementaciju centralne instance autentifikacije zasnovane na jeziku za označavanje. Jedna od njegovih značajnih prednosti je što nudi visoku efikasnost i visok standard bezbednosti.

Konkretno, broj mogućih sigurnosnih propusta se minimizira jer pojedinačne aplikacije ne moraju da skladište ili sinhronizuju korisničke podatke. Na ovaj način se postiže jedan od primarnih ciljeva, a to je pomirenje visokog stepena sigurnosti sa najboljim mogućim nivoom jednostavnosti upotrebe.

Takođe možete pogledati neke od najboljih platformi za autentifikaciju korisnika.