Systém jednotného přihlašování uživatelů (SSO)

Jistě máte ve své firmě nebo instituci řadu různých webových aplikací, do kterých se vaši uživatelé přihlašují.

Výhody řešení

  • pohodlí – uživatel má jen jedno jméno a heslo a zadává tyto údaje na jednom místě – je automaticky přesměrován na IdP a odtamtud zpět do aplikace (SP); pokud byl na IdP přihlášen (např. používal jinou službu využívající tento systém), nemusí se přihlašovat znovu
  • předávání atributů – IdP neposkytuje pouze informaci o tom, který uživatel se přihlásil, ale i řadu dalších informací o něm – SP se tak může dozvědět např. jméno, příjmení, e-mailové adresy, skupiny, oprávnění uživatele
  • bezpečnost – jednotlivé aplikace (SP) nepřijdou vůbec do styku s heslem uživatele – pouze se bezpečnou cestou dozví, který uživatel je přihlášen, jaká má práva, případně další informace o něm
  • přístup k externím službám nebo přístup externích uživatelů – díky tomu lze vybudovat infrastrukturu s jednotným přihlašováním napříč několika firmami nebo institucemi – např. můžete povolit přístup pro uživatele svých zákazníků (věřit jejich IdP) a ti se pak přihlásí k vaší aplikaci bez toho, abyste jim museli zakládat ručně účty nebo třeba posílat zapomenutá hesla

Základní pojmy

  • databáze uživatelů – obsahuje seznam vašich uživatelů a informace o nich. Typicky se využívá LDAP adresář nebo relační databáze (SQL).
  • IdPIdentity provider – Ověřuje totožnost uživatele a po úspěšném přihlášení o něm předá informace poskytovateli služby (SP).
  • SPService provider – poskytuje nějakou užitečnou službu uživatelům. Nepřijde do styku s heslem uživatele a informace o přihlášeném uživateli přejímá od IdP.
  • SAMLSecurity Assertion Markup Language – XML standard a protokol sloužící k výměně autentizačních a autorizačních dat – používá se při komunikaci mezi IdP a SP.
  • Shibboleth – implementace SAML standardu. Shibboleth je svobodný software, který pochází od Middleware Initiative.
  • Metadata – XML soubor, který popisuje jednu část systému (IdP nebo SP) a obsahuje její šifrovací certifikát, kontaktní údaje a další informace. IdP a SP si musí navzájem vyměnit metadata, než spolu mohou komunikovat. Tento proces lze automatizovat zapojením se do stejné federace identit.
  • Atributy – informace o uživateli předávané od IdP k SP – např. jméno a příjmení, uživatelské jméno, e-mail, stav (student, zaměstnanec…), nebo přidělená oprávnění. Které atributy se předají, lze nastavit pro jednotlivé SP. IdP také může chránit soukromí uživatele a k SP předat např. pouze informaci, že se jedná o studenta určité fakulty nebo zaměstnance určitého útvaru, ale neprozradí kterého.

Autentizace i autorizace uživatelů

IdP neposkytuje SP pouze informaci o tom, kdo je uživatel (autentizace), ale i seznam oprávnění (autorizace) a obecně množinu atributů – informací o tomto uživateli.

Zdroje atributů

IdP může načítat informace o uživatelích z různých zdrojů:

  • LDAP adresář
  • SQL databáze
  • atributy složené pomocí šablony
  • atributy dopočítané pomocí skriptu

Zdroje je možné kombinovat – např. můžete mít hlavní databázi uživatelů v LDAPu a z něj načítat základní údaje a další informace o uživatelích mít v relační databázi. Další atributy lze dopočítat pomocí šablony nebo skriptu z hodnot jiných atributů.

Svobodný software a otevřené standardy

Nabízené řešení je postaveno výhradně na svobodném softwaru (Shibboleth) a otevřených standardech. Zprávy mezi IdP a SP se předávají ve formátu SAML, což umožňuje propojení systémů od různých dodavatelů – poskytovatel služby (SP) může klidně používat jiný software než je Shibboleth.

Nabídka

  • analýza požadavků a návrh řešení
  • instalace a přizpůsobení systému (IdP a jednotlivých SP)
  • zaškolení uživatelů a správců
  • podpora, údržba a další rozvoj systému
© 2017 František Kučera