Co je SAML a jak funguje?

Security Assertion Markup Language (SAML) je otevřený standard, který umožňuje poskytovatelům identit (IdP) předávat autorizační pověření poskytovatelům služeb (SP). V žargonu to znamená, že se pomocí jedné sady pověření můžete přihlásit na mnoho různých webových stránek. Je mnohem jednodušší spravovat jedno přihlášení pro každého uživatele než spravovat samostatná přihlášení k e-mailu, softwaru pro správu vztahů se zákazníky (CRM), službě Active Directory apod.

Komunikace pomocí protokolu SAML používají jazyk XML (Extensible Markup Language) pro standardizovanou komunikaci mezi poskytovatelem identit a poskytovateli služeb. SAML je spojovacím článkem mezi ověřením identity uživatele a oprávněním používat službu.

Získejte zdarma knihu Pen Testing Active Directory Environments EBook

„Tohle mi opravdu otevřelo oči v oblasti zabezpečení AD takovým způsobem, jakým to defenzivní práce nikdy nedělala“.

Konzorcium OASIS schválilo SAML 2.0 v roce 2005. Standard se oproti verzi 1.1 výrazně změnil, a to natolik, že jsou tyto verze nekompatibilní. Přijetí standardu SAML umožňuje IT obchodům používat řešení typu SaaS (software jako služba) a zároveň zachovat bezpečný federativní systém správy identit.

SAML umožňuje jednotné přihlášení (Single-Sign On, SSO), což je termín, který znamená, že uživatelé se mohou jednou přihlásit a tytéž pověření lze opakovaně použít pro přihlášení k jiným poskytovatelům služeb.

K čemu se používá SAML?

SAML zjednodušuje federativní procesy ověřování a autorizace pro uživatele, poskytovatele identit a poskytovatele služeb. SAML poskytuje řešení, které umožňuje poskytovateli identit a poskytovatelům služeb existovat odděleně jeden od druhého, což centralizuje správu uživatelů a poskytuje přístup k řešením SaaS.

SAML implementuje bezpečný způsob předávání ověření a autorizací uživatelů mezi poskytovatelem identit a poskytovateli služeb. Když se uživatel přihlásí do aplikace s podporou SAML, poskytovatel služeb si vyžádá autorizaci od příslušného poskytovatele identit. Poskytovatel identit ověří pověření uživatele a poté vrátí poskytovateli služeb autorizaci uživatele, který nyní může aplikaci používat.

Ověřování pomocí SAML je proces ověřování identity a pověření uživatele (heslo, dvoufaktorové ověřování atd.). Autorizace SAML říká poskytovateli služeb, jaký přístup má ověřenému uživateli udělit.

Co je to poskytovatel SAML?

Dva typy poskytovatelů SAML
Poskytovatel SAML je systém, který pomáhá uživateli získat přístup k potřebné službě. Existují dva základní typy poskytovatelů SAML, poskytovatel služeb a poskytovatel identit.

Poskytovatel služeb potřebuje ověření od poskytovatele identit, aby mohl uživateli udělit oprávnění.

Poskytovatel identit provede ověření, že koncový uživatel je tím, za koho se vydává, a odešle tyto údaje poskytovateli služeb spolu s přístupovými právy uživatele ke službě.

Běžnými poskytovateli identit jsou Microsoft Active Directory nebo Azure. Salesforce a další řešení CRM jsou obvykle poskytovateli služeb v tom smyslu, že při ověřování uživatelů závisí na poskytovateli identit.

Co je to potvrzení SAML?

Potvrzení SAML je dokument XML, který poskytovatel identit odesílá poskytovateli služeb a který obsahuje oprávnění uživatele. Existují tři různé typy tvrzení SAML – autentizační, atributové a rozhodnutí o autorizaci.

  • Tvrzení o autentizaci prokazují identifikaci uživatele a uvádějí čas, kdy se uživatel přihlásil, a jakou metodu autentizace použil (např, Kerberos, dvoufaktorový atd.)
  • Atributové tvrzení předává poskytovateli služeb atributy SAML – atributy SAML jsou specifické údaje, které poskytují informace o uživateli.
  • Autorizační rozhodovací tvrzení říká, zda je uživatel oprávněn používat službu, nebo zda poskytovatel identifikace odmítl jeho požadavek z důvodu chybného hesla nebo nedostatku práv ke službě.

Jak funguje SAML?

SAML funguje tak, že předává informace o uživatelích, přihlašovacích údajích a atributech mezi poskytovatelem identifikace a poskytovateli služeb. Každý uživatel se jednou přihlásí k jednotnému přihlášení u poskytovatele identifikace a poté může poskytovatel identifikace předat atributy SAML poskytovateli služeb, když se uživatel pokusí k těmto službám přistoupit. Poskytovatel služeb si vyžádá autorizaci a autentizaci od poskytovatele identifikace. Protože oba tyto systémy hovoří stejným jazykem – SAML – stačí, aby se uživatel přihlásil pouze jednou.

Každý poskytovatel identifikace a poskytovatel služeb se musí dohodnout na konfiguraci SAML. Oba konce musí mít přesnou konfiguraci, aby ověřování SAML fungovalo.

Kroky příkladu SAML

Příklad SAML

  1. Frodo (uživatel) se hned ráno přihlásí do SSO.
  2. Frodo se poté pokusí otevřít webovou stránku do svého CRM.
  3. Poskytovatel služeb – CRM – ověří Frodova pověření u poskytovatele identit.
  4. Poskytovatel identit odešle autorizační a autentizační zprávy zpět poskytovateli služeb, což Frodovi umožní přihlásit se do CRM.
  5. Frodo může používat CRM a pracovat.
    „Potřebujeme 8 dobrovolníků na náročný projekt…“

SAML vs. OAuth

OAuth je o něco novější standard, který společně vyvinuly společnosti Google a Twitter, aby umožnily zjednodušené přihlašování k internetu. OAuth používá ke sdílení přihlašovacích údajů podobnou metodiku jako SAML. SAML poskytuje podnikům větší kontrolu nad přihlašováním SSO, aby bylo bezpečnější, zatímco OAuth je lepší pro mobilní zařízení a používá JSON.

Facebook a Google jsou dva poskytovatelé OAuth, které můžete používat k přihlašování na jiné internetové stránky.

SAML Tutoriály

Několik zdrojů, které vám pomohou prozkoumat, jak přesně implementovat SAML:

  • Konfigurace SAML pro Salesforce
  • Konfigurace OKTA jako SAML IDP
  • OneLogin má příklady v 5 různých programovacích jazycích

SAML a SSO jsou důležité pro každou strategii kybernetické bezpečnosti podniku. Osvědčené postupy správy identit vyžadují, aby uživatelské účty byly jednak omezeny pouze na zdroje, které uživatel potřebuje k výkonu své práce, jednak aby byly auditovány a centrálně spravovány. Pomocí řešení SSO můžete zakázat účty z jednoho systému a odebrat přístup ke všem dostupným zdrojům najednou, což chrání data před krádeží.