Security Assertion Markup Language

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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. +more 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.

Nejčastější použití SAML

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 server A a je zde autentizován. Později se chce přihlásit na server B. +more 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).

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. +more 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ěď.

Autorizační služba

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. +more 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.

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. +more 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ů: * Autentizace * Atribut * Autorizace * (příp. uživatelem definované)

Autentizace

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. +more Toto tvrzení je reprezentováno elementem 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. +more 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 .

Historie a verze

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. +more0 prošel jednou menší a jednou větší 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

Standard SAML využívá řadu stávajících norem a standardů: * [url= obálky, aby mohly být přenášeny přes síť [[Internet][XML Schema]] Tvary SAML zpráv jsou specifikovány s použitím XML schémat. * XML Signature Obě verze SAML 1. +more1 a SAML 2. 0 používají digitální podpisy (založené na standardu XML Signature) pro autentizaci a integritu zaslané zprávy. * XML Encryption 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[/url]]. 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

SAML profily detailně popisují, jak jsou SAML tvrzení, protokoly, a vazby (Bindings) kombinovány za určitým specifickým účelem použití.

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. +more 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

[url=http://saml.xml.org/]Online Community for SAML OASIS Standard [/url] * [url=http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security]OASIS Security Services Technical Committee[/url]

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top