Security Assertion Markup Language
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 nespecifikuje konkrétní implementaci samotného ověřování identity u poskytovatele identita.
Nejčastější použití SAMLu[1]
- Web SSO (Single Sign-On)
- Distribuovaná transakce
- Autorizační služba
Web Single Sign-On (jediné přihlášení na webu)
Uživatel se přihlásí na serveru A, je zde autentizován (Obrázek 1). Později se chce přihlásit na server B. Bez užití SSO by musel své údaje zadávat znovu. Pokud je užit SAML, pak B pošle požadavek na A s dotazem, zda se již uživatel na A autentizoval. A odpoví prohlášením, že uživatel je autentizován. Poté B zpřístupňuje své zdroje, aniž by vyžadoval znovu přihlašovací údaje. Nejčastější řešení SSO je pomocí tzv. poskytovatele identity a poskytovatele služeb.
Distribuovaná transakce
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 SAML dotaz
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ěď.
Autorizační služba
Pomocí této služby je možno zasílat tvrzení, zda je někdo k něčemu autorizován, např.
k platbě, objednání apod. Někdo chce provést za univerzitu nějakou akci. Poskytovatel služby C požádá danou univerzitu o potvrzení, zda daný uživatel smí akci za univerzitu 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.
SAML tvrzení
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:
- ID tvrzení
- Subjekt jméno + bezpečnostní doména
- Podmínky pro ověření tvrzení
- Přídavné informace
- Vydavatel tvrzení, podpis
Autorita může o subjektu prohlásit 4 druhy výrok|výroků:
- Autentizace
- Atribut
- Autorizace
- (příp. uživatelem definované)
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.
Atribut
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.
Rozhodnutí o autorizaci
Žá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>.
Historie a verze[2]
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ů:
- Security Services Markup Language (S2ML) od Netegrity
- AuthXML od Securant
- XML Trust Assertion Service Specification (X-TASS) od VeriSign
- Information Technology Markup Language (ITML) od Jamcracker
SAML od verze 1.0 prošel jednou menší a jednou vetší revizí. Nyní se používá verze 2.0, která není kompatibilní s předchozími.
- SAML 1.0 byl přijat jako OASIS standard v listopadu 2002
- SAML 1.1 byl přijat jako OASIS standard v září 2003
- SAML 2.0 se stal OASIS standardem v březnu 2005
Stavební bloky komunikace v SAMLu[3]
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).
- SOAP a Hypertext Transfer Protocol (HTTP)
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[4]
SAML profily detailně popisují, jak jsou SAML tvrzení, protokoly, a vazby (Bindings) kombinovány za určitým specifickým účelem použití.
MOŽNÉ PORUŠENÍ AUTORSKÝCH PRÁV |
![]() Část obsahu této stránky, přístupná nyní pouze v její historii, byla odstraněna kvůli podezření z porušení autorských práv, neboť se nápadně podobá textu z: Tato stránka je proto nyní zapsána na Wikipedie:Porušení práv. Odstraněný text bez vysvětlení neobnovujte. Pokud jste autorem materiálu a souhlasíte s podmínkami naší licence GFDL a licence CC BY-SA 3.0, pošlete prosím souhlas e-mailem dle pokynů na Nápověda:Svolení autora nebo na internetové stránce, ze které text pochází, uveďte jeho licencování dle GFDL a CC BY-SA 3.0. Pokud se nepodaří původ textu ověřit, bude po týdnu posouzeno jeho odstranění. Jestliže si nevíte rady, navštivte prosím stránku Wikipedie:Potřebuji pomoc. |
Pro vkladatele šablony: Najděte autora a vložte mu na diskusní stránku:
{{subst:copyvio autor|Security Assertion Markup Language|2=http://www.lupa.cz/clanky/shibboleth/}} --~~~~ případně použijte pro nové přispěvatele:
{{subst:copyvio nováček|Security Assertion Markup Language|2=http://www.lupa.cz/clanky/shibboleth/}} --~~~~ a vložte sem: * [[Security Assertion Markup Language]] z [http://www.lupa.cz/clanky/shibboleth/] --~~~~ |
Použití
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.
Odkazy
Reference
- ↑ Odkaz BRECHLEROVÁ, Dagmar. XML bezpečnost a její uplatnění v univerzitním informačním prostředí. Praha, 2008. 152 s. Dizertační práce. Vysoká škola ekonomická v Praze.
- ↑ Odkaz, MISHRA, Prateek Differences between OASIS Security Assertion Markup Language (SAML) V1.1 and V1.0. In OASIS Draft [online]. 21.5.2003 [cit. 2010-11-14].
- ↑ OdkazSecurity Assertion Markup Language. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, 10.9.2004, last modified on 28.9.2010 [cit. 2010-11-14].
- ↑ Odkaz SATRAPA, Pavel. LUPA.cz [online]. 8. 12. 2005 [cit. 2010-11-14]. Shibboleth - identifikujte se jen jednou.