2022-08-19 18:36 Doba čtení: 13 min

Příručka vývojáře k ověřování SAML [3 Online Tools]

V dnešním rychle digitalizovaném světě je zjednodušení správy hesel naprosto klíčové. S tím, jak firmy stále více spoléhají na digitální nástroje, zaměstnanci využívají platformy pro spolupráci, komunikaci a cloudová úložiště dat více než kdykoli předtím.

Tento trend představuje pro vývojáře nemalou výzvu: jak zajistit bezpečný přístup zaměstnanců k interním aplikacím a citlivým datům uloženým v cloudu? Pro mnohé se zdá být řešením ověřování pomocí protokolu SAML!

Co přesně je SAML?

Security Assertion Markup Language, známý také jako SAML, je otevřený standard, který významně usnadňuje procesy ověřování. Je založen na jazyku XML (Extensible Markup Language) a standardizuje komunikaci mezi ověřenými subjekty a webovými službami nebo aplikacemi. Jednoduše řečeno, SAML umožňuje používat jediné přihlášení pro přístup k více aplikacím.

Na jedné straně stojí poskytovatel služeb, který potřebuje ověření od poskytovatele identity (IdP), aby mohl uživateli udělit příslušná oprávnění. Například platforma Salesforce funguje jako poskytovatel služeb, který při ověřování uživatelů spoléhá na poskytovatele identity.

Na druhé straně poskytovatel identity ověřuje, že koncový uživatel je skutečně tím, za koho se vydává, a tuto informaci spolu s přístupovými právy uživatele k dané službě posílá poskytovateli služeb. Jako příklad poskytovatele identity můžeme uvést Auth0, jednoho z lídrů v oblasti řešení identity.

Jakou roli hraje SAML v jednotném přihlašování?

Jednou z hlavních funkcí SAML je umožnění jednotného přihlašování (Single Sign-On, SSO). Před zavedením SAML bylo sice jednotné přihlášení technicky možné, ale spoléhalo se na soubory cookie a fungovalo spolehlivě pouze v rámci jedné domény.

SAML umožňuje SSO tím, že uživatelům poskytuje přístup k více aplikacím pouze s jedním přihlášením a sadou přihlašovacích údajů. Přestože SAML není novinkou, protože existuje již od roku 2002, mnoho nových aplikací a firem využívajících SaaS (Software as a Service) používá SAML pro jednotné přihlašování. Nejnovější verze SAML 2.0 umožňuje webové SSO napříč doménami a je v současnosti standardem pro autorizaci zdrojů.

Jaké jsou hlavní výhody ověřování SAML?

SAML přináší značné výhody v oblasti zabezpečení, uživatelské zkušenosti i pro samotné poskytovatele služeb (SP).

Jednoduchost: Uživatelé se přihlásí k IdP pouze jednou a poté mohou bezproblémově a bezpečně přistupovat ke všem aplikacím.

Zvýšená bezpečnost: Mnoho poskytovatelů služeb nemá dostatek času nebo zdrojů pro implementaci a vynucování bezpečného ověřování uživatelů při přihlašování. IdP obecně disponují lepšími prostředky pro ověřování identit uživatelů. Přenesením autentizace na poskytovatele identity umožňuje SAML bezpečné ověřování, které může využívat více vrstev zabezpečení, jako je například MFA (vícefaktorové ověřování).

Vylepšená uživatelská zkušenost: Díky SAML se uživatelé mohou rozloučit s frustrací spojenou se zapamatováním si velkého počtu uživatelských jmen a hesel.

Snížené náklady na správu: Poskytovatelé služeb mohou zvýšit bezpečnost své platformy bez toho, aby museli ukládat hesla. Není potřeba řešit problémy se zapomenutými hesly. Help desky tak mohou snižovat náklady a uvolnit technické týmy pro řešení naléhavějších požadavků.

Co je Auth0 a jak souvisí s ověřováním SAML?

Auth0 je platforma, která poskytuje služby v oblasti ověřování a autorizace uživatelů. Může vystupovat jak jako IdP, tak i jako SP. Auth0 nabízí univerzální přihlašování, které lze integrovat s SAML. Vývojáři často využívají Auth0 spolu s SAML k diverzifikaci rizika tím, že používají více IdP.

Auth0 je kompatibilní s většinou hlavních programovacích jazyků a API. Lze jej také integrovat se sociálními poskytovateli, databázemi a adresáři LDAP.

Jak funguje tok jednotného přihlášení SAML?

Jak již bylo zmíněno, jednou z klíčových funkcí SAML je umožnění jednotného přihlašování (SSO). Před SAML bylo sice SSO teoreticky proveditelné, ale spoléhalo na cookies a fungovalo jen v rámci jedné domény.

SAML umožňuje SSO tím, že dává uživatelům možnost přístupu k více aplikacím s jedním přihlášením a sadou ověřovacích údajů. SAML není nový koncept, existuje již od roku 2002, a proto jej mnoho nových aplikací a SaaS firem využívá pro jednotné přihlašování. Jeho nejnovější verze, SAML 2.0, zajišťuje webové SSO napříč doménami a je standardem pro autorizaci zdrojů.

Konkrétně se jedná o to, že uživatel je vyzván k ověření identity jen jednou, i když používá různé aplikace. Můžeme si například představit ověřování pomocí Google, které je sdílené mezi různými službami jako Gmail, YouTube, Google Apps atd.

V tomto scénáři je Google poskytovatelem identity (IdP) pro své služby. Tyto služby se označují jako „poskytovatelé služeb“ (SP).

Autentizace

Při připojování k externí aplikaci je neznámý uživatel přesměrován k firemnímu IdP. Toto IdP je webová služba, která je přístupná pomocí protokolu HTTPS. Může být hostována interně nebo externě.

Interní ověření

Uživatel následně prokáže svou identitu IdP. Toto ověření může být provedeno explicitním zadáním přihlašovacích údajů (uživatelské jméno a heslo) nebo pomocí již existujícího tokenu.

Generování tvrzení

IdP následně vygeneruje „token“, což je jakýsi doklad totožnosti uživatele platný pouze pro danou službu a po určitou dobu. V tomto tokenu se obvykle nacházejí následující informace:

  • Identita uživatele: uživatelské jméno, e-mail nebo další identifikátory
  • Volitelné další atributy: příjmení, jméno, jazyk atd.
  • Doba platnosti tokenu
  • Podpis tokenu IdP

Přenos z IdP do SP

V nejběžnějším scénáři se tvrzení nepřenáší přímo od poskytovatele identity poskytovateli služeb, ale prostřednictvím samotného uživatele. Pomocí mechanismu HTTP přesměrování poskytne IdP prohlížeči uživatele token pro předání poskytovateli služeb. Můžeme si to představit jako doklad totožnosti, který vydává úřad a který je nutné předložit při jednání s jiným úřadem.

Spotřeba tokenu SP

Poskytovatel služeb obdrží token od uživatele. SP se rozhodl tomuto poskytovateli identity důvěřovat. Ověřuje také podpis a integritu tokenu a jeho dobu platnosti. Pokud jsou všechny testy úspěšné, SP uživateli otevře relaci.

Zdroj: Wikipedie

Autentizace SAML vs. autorizace uživatele

Autentizace SAML je často mylně zaměňována s autorizací. Pro lepší pochopení je důležité rozlišovat mezi pojmy autentizace a autorizace.

Autentizace: Jedná se o ověření identity uživatele. Zjednodušeně řečeno se ověřuje, zda je uživatel skutečně tím, za koho se vydává. Příkladem může být použití e-mailové adresy a hesla pro přístup do systému – jedna relace nebo přihlášení pro více platforem.

Autorizace: Jedná se o oprávnění, která uživatel uděluje nástroji třetí strany pro přístup ke zdrojům ve svém účtu. Se souhlasem uživatele si autorizační protokol vyměňuje tokeny bez přístupu k přihlašovacím údajům uživatele. Obvykle se to děje, když platforma (například Facebook) potřebuje získat přístup k určitým informacím z vašeho účtu Google.

Základní terminologie SAML

Tvrzení SAML

Tvrzení SAML se obvykle předávají od poskytovatele identity poskytovateli služeb. Tvrzení obsahují prohlášení, která poskytovatelé služeb používají k rozhodování o řízení přístupu. SAML definuje tři typy prohlášení:

  • Autentizační prohlášení potvrzuje, že poskytovatel služeb byl skutečně ověřen u poskytovatele identity v daném čase a pomocí určité metody.
  • Prohlášení atributu udává, že subjekt je spojen s určitými atributy. Atribut je jednoduše dvojice název-hodnota. Spoléhající se strany používají atributy pro rozhodování o řízení přístupu.
  • Prohlášení o autorizovaném rozhodnutí potvrzuje, že subjekt má povoleno jednat se zdrojem a předkládá k tomu důkazy. Expresivita stavů rozhodnutí o autorizaci v SAML je záměrně omezena.

Služba pro příjem tvrzení

Služba Assertion Consumer Service (ACS) je koncový bod, kam je uživatel přesměrován poskytovatelem identity po odpovědi na ověření uživatele. Tento koncový bod je HTTPS adresa, která přenáší osobní informace.

Výchozí stav přenosu

Jedná se o výchozí URL, na kterou bude uživatel přesměrován po ověření zprávy SAML. Výchozí stav přenosu se používá ke koordinaci zpráv mezi IdP a SP.

SAML je široce používaný protokol, a proto je často nutné dekódovat tvrzení SAML. Níže naleznete některé z nejlepších nástrojů pro kódování, dekódování a formátování zpráv a tvrzení SAML:

#1. Nástroj SAML

Nástroj SAML od OneDesign je sada online nástrojů pro SAML. Zahrnuje různé nástroje pro kódování a dekódování zpráv SAML, šifrování a dešifrování výrazů a podepisování a ověřování zpráv a výrazů SAML. SAMLtool také nabízí několik pluginů pro integraci těchto nástrojů s různými CMS.

#2. Samtool.io

Nabízený Auth0, samltool.io je online nástroj, který také umožňuje dekódování, kontrolu a ověřování zpráv a tvrzení SAML jednoduchým vložením nezpracovaného XML nebo URL obsahující požadavky.

#3. Dekodér SAM

Dekodér SAM je jednoduchý online nástroj pro dekódování SAML, který nabízí PingIdentity. Lze jej použít pro dekódování, dekompresi a formátování zpráv, výrazů a metadat SAML.

Závěrem

Standard SAML je velmi užitečný pro implementaci centrální instance ověřování založené na značkovacím jazyce. Jednou z jeho hlavních výhod je, že nabízí vysokou účinnost a vysoký standard zabezpečení.

Minimalizuje se počet potenciálních úniků zabezpečení, protože jednotlivé aplikace nemusí ukládat ani synchronizovat uživatelská data. Tímto způsobem se dosahuje jednoho z primárních cílů – skloubit vysokou úroveň zabezpečení s co nejlepší mírou snadného použití.

Pokud vás toto téma zajímá, můžete se také podívat na některé z nejlepších platforem pro ověřování uživatelů.

Tomáš Dvořák
Autor
Czechia

Píše o bezpečnosti, webu a chytrých službách s důrazem na srozumitelnost.

Předchozí článek
Oprava chyby Hulu 5005 ve Windows 10
Další článek
15 klasických her pro Playstation (PS1), které by vás stále bavily hrát