Zabezpečení webových aplikací
–
OpenAM
Zdeněk Burda
System Architect, BCV solutions s.r.o.
Webové aplikace
• Portál
• Kalendář, Webmail
• Spisová služba, Finanční inf. systémy,
CRM
• Helpdesk
Webové aplikace,
různá prostředí
• MS Windows, Linux
• IIS, Apache, JBoss, Websphere
• Java, PHP, Python, Ruby
• JSF, PEAR, AJAX
• PgSQL, MySQL, Oracle DB, MS SQL
Různé prostředí,
stejné požadavky
• Kdo je uživatel?
• Kam může přistupovat?
• Co tam může dělat?
• Jak zjistím kam přistupoval?
• Jak to všechno spravovat?
Autentizace
•
•
•
Adresářové služby
•
•
Certifikáty
SQL DB
Kerberos, Radius,
CAS
OTP
A co něco pro
uživatele?
•
Uživatel má jeden login, jedno heslo ať
se tedy přihlašuje jednou!
=
Systém jednotného přihlášení
SSO (Single Sign On)
Sdílení identit
•
•
Interní systémy
•
Partnerské společnosti
Hostované aplikace
(SaaS, cloud)
=>
Federace identit
Federace identit
• Bezpečné sdílení informací o
uživatelích
• SSO
• Založeno na důvěře
• Využití standartizovaných protokolů
Rizika SSO
•
•
•
Jedním přihlášením má přístup všude
•
Ošetření rizika: Kvalitnější heslo,
vícefaktorové přihlášení
Větší náročnost na infrastrukturu
•
Ošetření rizika: HA řešení pro SSO
Závislost na jednom dodavateli SSO
•
Ošetření rizika: Použít standardní protokoly
Proč SSO/Federaci?
• Snadné použití pro uživatele
• Využití různými aplikacemi
• Aplikace neřeší jak byl uživatel ověřen
• Centrální kontrola nad ověřováním
uživatelů, auditování
Jaká má uživatel
práva?
• Může uživatel provést tuto operaci na
tomto systému?
• V jaké skupině je uživatel zařazen?
• Jaké má role?
• Odkud přistupuje k aplikaci?
Centrální
autorizační služba
•
•
•
Společná pravidla v
různých aplikacích
Portál
WebMail
OpenAM
Jeden auditní systém
Centrální správa
DMS
LDAP
OpenAM zajišťuje
• Autentizace
• Autorizace
• SSO
• Federace identit
• Zabezpečení webových služeb
• Auditování
Historie OpenAM
• … Sun Java Access Manager =>
• 2008 OpenSSO – CDDL licence =>
• 2010 OpenAM – CDDL licence
• ForgeRock
http://www.forgerock.org
Uživatelé v OpenAM
• Není Identity Manager a neřeší správu
uživatelů
• Využívá různé zdroje uživatelů
• LDAP, SQL
• Autentizace proti různým systémům
• Kerberos, Radius, RSA SecurID
Jak to funguje?
•
•
•
•
Web Policy Agent
J2EE Policy Agent
A
g
e
n
t
Actor
WebApp1
WSS Policy Agent
Agent
.NET Fedlet
OpenAM
WebApp2
Policy Agent
•
Komunikuje s OpenAM a předává
zpracované informace do aplikace
•
•
Webové servery - Apache, IIS
•
Webové služby (Java)
J2EE aplikační servery - GlassFish,
WebLogic, JBoss, Jetty, Tomcat,
Websphere
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
OpenAM
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
Přesměrování pro autentizaci
OpenAM
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Předání autentizačního tokenu
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Předání autentizačního tokenu
Požadavek na aplikaci
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Předání autentizačního tokenu
Požadavek na aplikaci
Validace tokenu
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Předání autentizačního tokenu
Požadavek na aplikaci
Validace tokenu
Výsledek validace
Autentizace
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
Požadavek na aplikaci
Přesměrování pro autentizaci
Vyžádání autentizace od OpenAM
Vyjednání autentizace
Předání autentizačního tokenu
Požadavek na aplikaci
Validace tokenu
Výsledek validace
Obsah aplikace
Přihlášení uživatele
Způsob autentizace
•
•
•
Rozšiřitelná modulární architektura
Podpora různých způsobů
•
•
•
•
•
LDAP, JDBC
HTTP Basic
SPNEGO (Kerberos)
SecureID, x509 certifikáty
Federation, SAE (SAML2)
Vlastní modul pro autentizaci uživatelů
Administrátorské
rozhraní
Autentizační moduly
SSO
WWW prohlížeč
Aplikace + Policy Agent
OpenAM
SSO
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
OpenAM
SSO
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
Validace tokenu
OpenAM
SSO
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
Validace tokenu
Výsledek validace
OpenAM
SSO
WWW prohlížeč
Aplikace + Policy Agent
Požadavek na aplikaci
Validace tokenu
Výsledek validace
Obsah aplikace
OpenAM
Session uživatele
Identity Gateway
• Pro „nepřizpůsobivé“ aplikace
• OpenIG
ForgeRock Open Identity Gateway
• Reverzní proxy s napojením na
OpenAM
• Kontrola HTTP provozu, úprava obsahu
komunikace
Autorizace v
OpenAM
• Pravidla pro přístup – kdo kam může a
za jakých podmínek.
• Dynamicky měnitelná pravidla.
• Podpora XACML 3.0
Autorizační pravidla
• Resources – URL, odkaz, projekt…
• Actions – GET, POST, write, read…
• Subjects – LDAP skupina, atribut…
• Conditions – úroveň autentizace, IP…
Zpracování
autorizačních pravidel
• Police Enforcement Point
• agent ve webserveru
• Police Decision Point
• vyhodnocování pravidel, až miliony
záznamů
• Police Administration
Federace a
OpenAM
•
•
OpenAM může být:
•
•
Identity Provider
Service Provider
Množství podporovaných protokolů
•
SAML 2.0, SAML 1.x, ID-FF, WSFederation
=> velké možnosti integrace a náhrady
starších řešení
Federace identit
Nároky na provoz
• 100% Java = vhodný AS/kontejner
Tomcat, Glassfish…
• Vysoká dostupnost
Více instancí, load balancer
• Rychlost reakce, zasahuje v „reálném“
čase = rozumný HW
Zdroje
• http://openam.forgerock.org
• http://blog.bcvsolutions.eu
• Autentizace
• Autorizace
• SSO/Federace
• Audit
Zdeněk Burda
+420 602 275 444
[email protected]
Download

Zabezpečení webových aplikací – OpenAM