Single Sing-On řešení pro webové aplikace

Michal Švamberg, Petr Grolmus

[svamberg|grolmus]@civ.zcu.cz

Seminář LPS, 23.11.2005

Obsah

Elektronická identita

Z čeho jsme vycházeli při hledání SSO

Vítězem se stává WebAuth

Jak WebAuth funguje a jeho konfigurace

Výhled do budoucna

Co je Identity Federation

Autentizovaná webová proxy

Béďa si čte časopis

Jaké zvíře žije v East Alligator River v Austrálii?

létající ryba

aligátor

krokodýl

Dodo (lat. Raphus cucullatus)

Krokodýl

létající ryba (lat. Exocoetidae) žije v teplých vodách světových oceánů

Dodo (Blboun Nejapný), dnes vyhynulý pták

aligátoři žijí pouze v severní Americe

Elektronická identita

mnoho podob

jména/hesla, e-mailové účty, konference, ...

kódy z různých registrací (SW, nabídky, ...)

seznam kontaktů, plánovaných schůzek, ...

temná minulost (a současnost)

nejčastěji řešeno jako jméno/heslo per aplikace

mnoho účtů a mnoho hesel

chaos pro administrátory

světlá budoucnost

více autentizačních metod jméno/heslo, certifikát, ...

pouze jediný účet

jedno místo pro správu účtů

Vývoj výpočetního prostředí na ZČU

webové aplikace používají vlastní řešení

nejčastěji seznam oprávněných uživatelů

administrátoři nejsou nadšeni

řešení: mod_auth_kerb

sjednocení přihlášení jedním jménem/heslem

je třeba zadávat do každé aplikace zvlášť

lepší řešení je Single Sign-On

CoSign

PubCookie

WebAuth z univerzity ve Stanfordu

Single Sign-On

výhody

přihlášení k jedné aplikaci mi dává přístup k ostatním

použití jednoho jména/hesla

nevýhody

přístup také k aplikacím, se kterým nechci pracovat

odhlásit se lze pouze ukončením prohlížeče

login server

ověřuje identitu přistupujícího uživatele

aplikační server

dotazuje se login serveru na identitu uživatele

Obecné schéma SSO

PubCookie

Výhody

není závislé na žádné autentizační autoritě

jednoduchý návrh

Nevýhody

bez možnosti vzájemného ověření aplikačního a autentizačního serveru

v případě napojení na Kerberos, neumožňuje zaslání uživatelského lístku (krb ticket)

CoSign

Výhody

zvládá rozšířené používání systému Kerberos

dokáže předat uživatelský krb lístek

obsahuje seznam spravovaných aplikací

Nevýhody

ověřování při každém přístupu

obtížné začlenění do aplikací

WebAuth

Výhody

založen na autentizačním systému Kerberos

každý aplikační server je identifikován krb principalem

možnost server-pool login serverů

není potřeba ověřování při každém přístupu

vyměňované informace jsou kryptovány

platnost ověření dle uživatelského krb ticketu

možnost zaslání uživatelského krb ticketu

jako standardní balík v linuxové distribuci Debian

Nevýhody

podpora jen ve WWW serveru Apache a to 2.0.43+

ověření jen proti Kerberu

mod_webkdc

vytváří login-server nazývaný WebKDC

přejímá a zpracovává požadavky od aplikačních serverů

ověřuje identitu přistupujícího uživatele
u autentizační autority

mod_webauth, mod_webauthldap

mod_webauth

vytváří aplikační server chráněný WebAuthem

zajišťuje ověření dosud neznámého uživatele přesměrováním na WebKDC server

přejímá identitu uživatele z cookie od WebKDC

zajišťuje jednoduchou autorizaci dle jména

mod_webauthldap

volitelný na aplikačním serveru

doplňuje mod_webauth o autorizační službu dle skupin v LDAPu

Ještě jeden kvíz a jdeme pracovat

Kde vynalezli Pony Express?

Španělsko

USA

Mongolsko

Egypt

Mongolsko

Genghis Khan [čingis chán] roku 1225 zakládá systém Pony Express pro správu své říše,

Marco Polo (13. století) hovoří o systému koňské přepravy s pravidelně umístěnými stanicemi na své cestě po Mongolsku v době vlády Kublai Khana.

Jak to funguje

AS1

AS2

KRB

Web

KDC

Požadavek

Redirect

Požadavek

Login formulář

Jméno + heslo

Identifikace

Pověření

Redirect + Cookie

Reinicializace

Data

Požadavek

Redirect

Požadavek

Tebe už znám

Reinicializace

Data

První přístup Bédi k WebKDC

neověřený uživatel přistupuje
k webové aplikaci chráněné WebAuthem

uživatel nevlastní aplikační token, proto mod_webauth vytvoří request token, zakryptuje jej a provede redirect na WebKDC

WebKDC ověří čerstvost requestu a vrací uživateli přihlašovací formulář

uživatel zadává jméno a heslo

Potvrzení přihlášení

WebKDC ověří jméno, heslo a další informace

do cookie se vloží id-token a proxy token (zakryptované)

vytvoří se potvrzující stránka s přesměrováním na požadovanou aplikaci

Konečně u cíle

prohlížeč přistupuje na požadovanou stránku,
v URL dostává id-token

mod_webauth jej převezme, přepíše jej na aplikační token a uloží do cookie pro další použití

token se v URL dále nepředává, mod_webauth věří předkládanému cookie, krytpovanému privátním klíčem

Béďa si chce přečíst poštu

uživatel přistupuje k nové aplikaci

uživatel nevlastní aplikační token pro tuto aplikaci

mod_webauth opět vytváří request-token pro získání id-tokenu, přesměrovává prohlížeč na WebKDC, zároveň se zasílá proxy-token a id-token z dřívějšího přihlášení

mod_webkdc vytvoří nový id-token pro aplikační server a přesměrovává na původní URL

mod_webauth na základě id-tokenu vytváří a ukládá aplikační token do cookie

Béďa si čte maily

Stavba Transsibiřské magistrály trvala 14 let (1891-1905). Jak dlouho trvala její elektrifikace započatá roku 1926?

9 let

46 let

73 let

dodnes není dokončena

73 let

poslední fáze elektrifikace dokončena 25.12.2002, tím bylo umožněno zdvojnásobení hmotnosti vlaků na 6000 tun

trvala 5x déle než její stavba samotná

Konfigurace WebKDC

nainstalovat mod_webkdc, skripty a templaty

vlastní principal v kerberosu
webkdc/webkdc.zcu.cz@ZCU.CZ

keytab s klíčem k tomuto principalu

vytvořit politiku pro přístup aplikačních serverů
krb5:webauth/*.zcu.cz@ZCU.CZ id

nastavit direktivy WebKdc* v Apachi

Konfigurace chráněného WWW serveru

mod_webauth

instalace modulu

vytvořit krb principal pro službu webauth webauth/webmail.zcu.cz@ZCU.CZ

nastavení direktiv WebAuth* v Apachi

mod_webauthldap

instalace modulu

nastavení direktiv WebAuthLdap* v Apachi

Konfigurace aplikace

<Directory /var/www/>

AuthType WebAuth

Require user indy bike dolf sustr4

Require privgroup lps civ

</Directory>

Vývoj

2004-2005 (1xCPU 300MHz) – interní testování na cca 15 aplikacích používaných 50 lidmi

8/2005 převod hojně užívaného webového rozhraní k mailu pod WebAuth

Nárůst zátěže – veškerá komunikace se kryptuje

10/2005 (2xCPU 700Mhz) – svižné a stíhá

Přístupy k WebKDC (17-21.10.2005)

celkem přístupů:	310 105

přístupů za den:	62 021, max: 87 595

přístupů za hodinu:	2 584, max: 14 278

A co dál ...

uvažujeme o nasazení 2-3 WebKDC serverů do server-poolu

právě probíhá testovaní load-balancingu založené na lbnamed (lb DNS virtuální zóna)

dále uvažujeme o úpravě WebKDC tak, aby akceptoval kx509 certifikáty a choval se i při prvním přihlášení jako by už uživatele znal
(tj. nepředkládal přihlašovací formulář)

Béďa našel skvělý kvíz

Podle koho se jmenují Kanárské ostrovy?

psi

velbloudi

kanárci

kachny

Psi

Kanárské ostrovy (Canary Islands) byly pojmenovány po velkých psech, kteří zde žili.

z lat. „Insularia Canaria” − „Ostrov psů”

Identity Federation a webová proxy

SSO mezi spolupracujícími organizacemi

přínosem je vyšší bezpečnost:

autentizace do cizích IT pod vlastní kontrolou

použití jednoho jména/hesla

systém lze rozdělit na dvě části:

ten kdo poskytuje službu: service provider (SP)

ten kdo poskytuje ověření: identity provider (IdP)

autentizovaná webová proxy

já jsem IdP a požaduji data od cizího SP

nedostatek lidí, zvláště Java administrátorů

Webová proxy v praxi

Béďovo moto a vaše dotazy

levnej alkohol, veselý prášky,

sbíráme patenty na náhražky

(neznámý autor)

Děkuji

Michal Švamberg, Petr Grolmus

[svamberg|grolmus]@civ.zcu.cz

Béďa (ne)pracuje

Jaký je rozdíl mezi šachistou a alkoholikem?

Žádný. Oba jsou většinou v jiném

světě a občas na tahu.

2005-10-17T10:20:49