From Wikipedia, the free encyclopedia
Security Assertion Markup Language (SAML) je standard založený na XML poskytující mechanismus pro výměnu autentizačních a autorizačních dat mezi zúčastněnými stranami, tj. poskytovatelem služeb a poskytovatelem identity. Je vyvíjen organizací OASIS. Funguje na principu „prosazení“ důvěry, tedy aplikace může prosadit, že jde o určitého uživatele a ten má určitá privilegia.
V praxi řeší SAML problém jednotného přihlašování na více webů – Single Sign-On (SSO). Nějaký portál autentizuje uživatele. Uživatel se připojí k jinému portálu a ten si vyžádá informace z předcházejícího portálu. Pokud dostane správné a ověřené informace, dojde k již zmíněnému prosazení důvěry i na tento portál a uživatel bude i zde automaticky autentizován.
Je tedy vhodné rozdělení na poskytovatele identity a poskytovatele služeb. Pokud chce uživatel přistupovat ke zdrojům poskytovatele služeb, pak jeho identitu zkontroluje jeho poskytovatel identity a ten posílá informace poskytovateli služeb, u kterého uživatel žádá o poskytnutí služby. Tímto se odpovědnost za ověření identity přesunuje vždy na poskytovatele identity. Tato koncepce vede k ustanovení tzv. federací, které si mohou navzájem vyměňovat informace o autentizaci subjektu. SAML poskytuje pouze distribuci samotné informace mezi zúčastněnými stranami, a proto nezáleží na jejím počtu. Standard neurčuje samotné ověřování identity u poskytovatele identit.
Uživatel se přihlásí na server A a je zde autentizován. Později se chce přihlásit na server B. Bez užití SSO by musel své autentizační údaje zadávat znovu. Pokud je užit SAML, pak server B pošle požadavek na server A s dotazem, zda je již uživatel na A autentizován. Server A odpoví prohlášením, že uživatel je autentizován. Poté B zpřístupňuje své zdroje, aniž by vyžadoval opětovné zadání přihlašovacích údajů (login).
Uživatel použije přihlášení k nějaké službě serveru A (kupuje dům) a poté chce jinou službu od serveru B (chce dům pojistit). Uživatel poté může předat informace o existenci svého profilu (adresa, jméno…) na A serveru B. Ten pošle dotaz podle standardu SAML serveru A, ve kterém bude chtít veškeré informace, které o uživatelovi má. A tyto informace pošle ve formě tvrzení – odpověď.
Pomocí této služby je možno zasílat potvrzení, že je někdo k něčemu autorizován, oprávněn, například k platbě, objednání zboží apod. Uživatel chce provést za organizaci nějakou akci. Poskytovatel služby požádá danou organizaci o potvrzení, zda daný uživatel smí akci za organizaci provést. Rozdíl oproti předchozím případům je v tom, že jde nejen o potvrzení identity, ale i o svolení k dané akci či operaci.
Základem zprávy je tedy SAML tvrzení na jehož základě je prosazena důvěra na jiném serveru. V podstatě se jedná o XML dokument, který obsahuje bezpečnostní informace, které učinila tzv. identifikační autorita. Tvrzení SAMLu neprovádějí autentizaci, ale slouží pouze k obalení, zapouzdření tohoto procesu autentizace.
Každé tvrzení obsahuje:
Autorita může o subjektu prohlásit 4 druhy výroků:
Autentizační výrok říká, že uvedený subjekt byl autentizován konkrétními prostředky M (jméno, heslo, lístek Kerberos, klíčem od XKMS aj.) v konkrétním čase T. Toto tvrzení je reprezentováno elementem <AuthenticationStatement> a typicky ho vydává tzv. identity provider (SAML autorita). Autentizace se používá z důvodů zavedení SSO.
Tvrzení, že uvedený subjekt je svázán s atributy A, B a tedy s odpovídajícími hodnotami a, b atd. Výrok atribut je použitelný pro distribuovanou transakci a autorizační službu.
Žádost o povolení přístupu typu A (číst, psát, mazat) uvedeného subjektu k uvedeným zdrojům R (webové zdroje) byla povolena nebo zamítnuta. O tomto rozhoduje vydávající autorita. Rozhoduje o tom na základě přítomnosti evidence E žádající strany. Zdroj R může být webová služba nebo webová stránka. Toto tvrzení je reprezentováno elementem <AuthorizationDecisionStatement>.
Skupina OASIS se v roce 2001 rozhodla definovat XML framework pro výměnu autentizačních a autorizačních informací. Vycházela z již existujících standardů:
SAML od verze 1.0 prošel jednou menší a jednou větší revizí. Nyní se používá verze 2.0, která není kompatibilní s předchozími.
Standard SAML využívá řadu stávajících norem a standardů:
Tvary SAML zpráv jsou specifikovány s použitím XML schémat.
Obě verze SAML 1.1 a SAML 2.0 používají digitální podpisy (založené na standardu XML Signature) pro autentizaci a integritu zaslané zprávy.
Pomocí protokolu XML Encryption (XML šifrování), SAML 2.0 poskytuje možnosti pro šifrování jmen, atributů, a celých tvrzení (SAML 1.1 nemá šifrovací schopnosti).
SAML využívá pro svoji komunikaci protokol HTTP a SOAP. SAML požadavky nebo odpovědi jsou nejprve zabaleny do SOAP obálky a poté ještě do HTTP obálky, aby mohly být přenášeny přes síť Internet. Tato procedura obalování se nazývá obecně SAML Binding. Konkrétní typy se dělí podle toho, které části komunikace se týkají. Např. SAML SOAP Binding, HTTP POST Binding nebo HTTP Redirect (GET) Binding.
SAML profily detailně popisují, jak jsou SAML tvrzení, protokoly, a vazby (Bindings) kombinovány za určitým specifickým účelem použití.[3]
V praxi se dnes nejčastěji můžeme setkat s použitím SAMLu ve standardu OpenID nebo u technologie Shibboleth, používané především na univerzitě. OpenID je používáno především pro jednotné přihlašování na webech. Shibboleth provozuje většinou domovská organizace a poskytuje jiným službám pouze bezpodmínečně nutné informace, zda je např. uživatel oprávněn k danému úkonu. Nemusí poskytovat ID uživatele ani např. jméno, stačí pouze svolení. Obě technologie jsou volně dostupné a používají open source nástroje a standardy.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.