Shibboleth

Shibboleth je v informatice název projektu s otevřeným kódem, který poskytuje službu Single Sign-On (jednotné přihlášení), což znamená že uživatel může pomocí jednoho přihlášení využívat více síťových zdrojů. Shibboleth umožňuje získávat informace o úspěšné autentizaci počítačového uživatele a poskytovat o něm údaje, které mohou být využity i pro jeho autorizaci.[1] Shibboleth je využíván pro řízení přístupu k chráněným on-line zdrojům. Přístup ke zdrojům probíhá buď v rámci organizace nebo mezi různými organizacemi. Shibboleth často tedy poskytuje informace o organizaci a organizační jednotce, ke které se váže aktuálně přihlášený uživatel. Mezi organizace, které Shibboleth využívají, patří například vysoké školy nebo i jiné státní instituce.

Historie

Projekt Shibboleth začalo vyvíjet v roce 2000 americké neziskové sdružení Internet2 a o rok později byl tento projekt spojený s prací skupiny OASIS SAML. Cílem bylo vyřešit sdílení zdrojů mezi organizacemi, které měly velice často různé autentizační a autorizační mechanismy a protokoly. Shibboleth 1.0 byl vydán v roce 2003 a byl rychle přijat výzkumnými a vzdělávacími institucemi po celém světě. Shibboleth 2.0 byl vydán rok po vydání protokolu SAML 2.0, které se uskutečnilo v roce 2005[1].

Základní koncept

V podstatě Shibboleth funguje stejně jako každý SSO systém. Co odlišuje Shibboleth od ostatních v této oblasti je jeho dodržování norem a schopnost poskytovat podporu SSO ke službám mimo organizace uživatele a přitom chránit jeho soukromí.

Hlavními prvky SSO systému jsou:

  1. Webový prohlížeč – představuje uživatele v rámci procesu SSO
  2. Zdrojová data (resource) – obsahuje chráněný obsah, ke kterému chce uživatel přistoupit
  3. Identity Provider (IdP) – poskytovatel ověření, ověřuje uživatele
  4. Service Provider (SP) – poskytovatel služby, vykonává proces SSO pro zdroje

Komunikace a výměna dat mezi IdP a SP probíhá prostřednictvím zpráv v jazyce SAML. Údaje o uživatelích jsou předávány ve formě metadat, což je XML soubor splňující právě standard SAML. Ke komunikaci je rovněž potřeba SSL/TLS a metadata musí obsahovat veřejný klíč.

Postup při autentizaci

Následuje popis postupu autentizace uživatele:

Krok 1
Uživatel přistupuje ke zdroji: Uživatel začíná tím, že se pokouší o přístup k chráněnému zdroji. Pokud je v bezpečnostním kontextu aplikace informace o již přihlášeném uživateli, potom je uživateli přístup umožněn. V opačném případě je požadavek na autentizaci přesměrován na poskytovatele služeb (SP) s cílem zahájit proces SSO.
Krok 2
Poskytovatel služeb vydá autentizační žádost a odešle uživatele na poskytovatele identit (IdP) za účelem přihlášení uživatele. Poskytovatel služeb je typicky nainstalován na stejném serveru, jako chráněný zdroj.
Krok 3
Přihlášení uživatele u poskytovatele identity: Když uživatel dorazí na server poskytovatele identity, tak se kontroluje, zda má uživatel existující relaci. Pokud ji má, pak se bude pokračovat dalším krokem. Pokud tomu tak není, ověří IdP uživatele prostřednictvím jména a hesla. Ověření se často provádí vůči LDAP záznamu. Při úspěšné autentizaci se pokračuje na další krok.
Krok 4
IdP připravuje autentizační odpověď: Po identifikaci uživatele IdP připraví autentizační odpověď ve formě SAML zprávy a odešle ji. Uživatele odešle zpět na poskytovatele služeb.
Krok 5
Poskytovatel služeb kontroluje autentizační odpověď: Když uživatel přijde s odpovědí od IdP, poskytovatel služeb ověří odpověď. Vytvoří relaci pro uživatele a na základě jeho atributů mu dá k dispozici chráněný zdroj.
Krok 6
Zdroj vrací obsah: Stejně jako v kroku 1 je uživatel ověřen vůči bezpečnostnímu kontextu. Tentokrát už je ovšem přihlášený a je mu chráněný obsah k dispozici.[2]

Vývoj a licence

Shibboleth je uvolněn pod licencí Apache Software License, která na rozdíl od licence GPL netrvá na tom, aby se vztahovala na všechny součásti hotového programu. Nicméně všechny součásti Shibbolethu jsou open-source a jsou vyvíjeny různými skupinami.

Reference

  1. a b Archivovaná kopie. shibboleth.net [online]. [cit. 2015-02-19]. Dostupné v archivu pořízeném dne 2015-02-19. 
  2. Archivovaná kopie. shibboleth.net [online]. [cit. 2015-02-19]. Dostupné v archivu pořízeném dne 2015-02-19. 

Externí odkazy

Média použitá na této stránce

Shibboleth (Internet2).jpg
Autor:

Shibboleth Implementation Team

Documentation

Nate Klingenstein / Internet2

Chad La Joie / SWITCH

Programming

Scott Cantor / The Ohio State University

Jim Fox / University of Washington

Chad La Joie / SWITCH

Will Norris / University of Southern California

Rod Widdowson / University of Edinburgh

Project Management

RL "Bob" Morgan / University of Washington

Steven Carmody / Brown University

Ken Klingenstein / Internet2

Thanks to: 
Internet2, Licence: Apache License 2.0
Shibboleth (Internet2) logo