Služba Java Authentication and Authorization Service - Java Authentication and Authorization Service
Tento článek má několik problémů. Prosím pomozte zlepšit to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Služba Java Authentication and Authorization Servicenebo JAAS, vyslovuje se „Jazz“,[1] je Jáva implementace standardu Zásuvný ověřovací modul (PAM) informační bezpečnost rámec.[2]JAAS byl představen jako rozšiřující knihovna pro Platforma Java, standardní vydání 1.3 a byl integrován do verze 1.4.[1]
JAAS má za svůj hlavní cíl: oddělení obav ověřování uživatelů, aby je bylo možné spravovat samostatně. Zatímco bývalý autentizace mechanismus obsahoval informace o tom, odkud kód pochází a kdo tento kód podepsal, přidá JAAS značku o tom, kdo kód spouští. Rozšířením ověřovacích vektorů rozšiřuje JAAS bezpečnostní architekturu pro aplikace Java, které vyžadují autentizaci a oprávnění moduly.
Správa
Pro správce systému, JAAS se skládá ze dvou druhů konfigurační soubor:
* .login.conf
: určuje, jak připojit dodavatele přihlásit se moduly do konkrétních aplikací*.politika
: určuje, kterým identitám (uživatelům nebo programům) jsou udělena jaká oprávnění
Může to mít například aplikace login.conf soubor označující, jak mají být spuštěny různé mechanismy autentizace pro autentizaci uživatele:
PetShopApplication {com.sun.security.auth.module.LdapLoginModule dostatečné; com.foo.SmartcardLoginModule nezbytná; com.sun.security.auth.module.UnixLoginModule vyžadováno ladění = true; }
Rozhraní aplikace
Pro vývojáře aplikací je JAAS standardní knihovna, která poskytuje:
- reprezentace identity (Ředitel školy ) a sadu pověření (Předmět )
- A přihlásit se služba, která vyvolá vaši aplikaci zpětná volání zeptat se uživatele na věci jako uživatelské jméno a Heslo. Vrací nový Předmět
- služba, která testuje, zda subjektu bylo uděleno oprávnění správcem.
Integrace bezpečnostního systému
Pro integrátora bezpečnostního systému poskytuje JAAS rozhraní:
- poskytnout aplikacím svůj jmenný prostor identity
- připojit pověření k vláknům (Předmět)
- pro vývoj přihlásit se moduly. Váš modul vyvolá zpětná volání dotazovat uživatele, zkontroluje jeho odpověď a vygeneruje a Předmět.
Přihlašovací moduly
Přihlašovací moduly se primárně zabývají spíše autentizací než autorizací a tvoří široce používanou součást JAAS. K implementaci je vyžadován přihlašovací modul javax.security.auth.spi.LoginModule
rozhraní, které určuje následující metody:
Poznámka: A Předmět
je uživatel, který se pokouší přihlásit.
- inicializovat: Kód pro inicializaci přihlašovacího modulu, obvykle uložením parametrů předaných do příslušných polí
Třída
. - přihlásit se: Ve skutečnosti zkontrolujte přihlašovací údaje poskytnuté prostřednictvím
Objekt
který implementujejavax.security.auth.Callback
rozhraní (např. porovnat s databází). Tato metoda může uživatele vyzvat k zadání přihlašovacího jména a hesla nebo může použít dříve získané podrobnosti. Zde je důležité si uvědomit, že pokud jsou zadána neplatná pověření, pak ajavax.security.auth.login.FailedLoginException
by měl být vyvolán (spíše než návrat false, což znamená, že tento přihlašovací modul by měl být ignorován, což potenciálně umožňuje úspěšné ověření). - spáchat: Identita subjektu byla ověřena, takže kód v této metodě nastavuje
Ředitel školy
aSkupiny
(role) pro úspěšně ověřený subjekt. Tuto metodu je třeba v podnikových aplikacích psát opatrně, protože aplikační servery Java EE často očekávají vztahy meziŘeditel školy
aSkupina
objekty, které mají být nastaveny určitým způsobem. Tato metoda by měla hodit ajavax.security.auth.login.FailedLoginException
pokud ověření selže (např. uživatel zadal nesprávné přihlašovací jméno nebo heslo). - přerušit: Volá se, pokud selže samotný proces ověřování. Pokud tato metoda vrátí hodnotu false, bude tento přihlašovací modul ignorován.
- odhlásit se: Kód, který by měl být proveden při odhlášení (např. Může odstranit
Ředitel školy
zPředmět
nebo může zneplatnit webovou relaci).
Přihlašovací moduly mohou poskytovat jednotné přihlášení (SSO) prostřednictvím konkrétního protokolu / rámce SSO (např. SAML, OpenID, a SPNEGO ), může zkontrolovat přítomnost hardwarových bezpečnostních tokenů (např. USB token) atd. V aplikaci n-tier, Přihlašovací moduly
může být přítomen jak na straně klienta, tak na straně serveru.
Přihlašovací modul (javax.security.auth.spi.LoginModule
)
Přihlašovací moduly se zapisují implementací tohoto rozhraní; obsahují skutečný kód pro autentizaci. Může použít různé mechanismy k ověření pověření uživatele. Kód může načíst heslo z databáze a porovnat jej s heslem dodaným modulu.
LoginContext (javax.security.auth.login.LoginContext
)
Kontext přihlášení je jádrem rámce JAAS, který zahajuje proces ověřování vytvořením subjektu. Jak proces ověřování pokračuje, subjekt je naplněn různými principy a pověřeními pro další zpracování.
Předmět (javax.security.auth.Subject
)
Subjekt představuje jednoho uživatele, entitu nebo systém - jinými slovy klient - požadující ověření.
Ředitel školy (java.security.Principal
)
Principál představuje tvář subjektu. Zapouzdřuje vlastnosti nebo vlastnosti subjektu. Subjekt může obsahovat více principů.
Pověření
Pověření nejsou nic jiného než informace týkající se uvažovaného subjektu. Mohou to být čísla účtů, hesla, certifikáty atd. Protože přihlašovací údaje představují některé důležité informace, další rozhraní mohou být užitečná pro vytvoření správného a zabezpečeného pověření - javax.security.auth.Destroyable
a javax.security.auth.Refreshable
. Předpokládejme, že po úspěšném ověření uživatele naplníte subjekt tajným ID (ve formě pověření), pomocí kterého může subjekt provádět některé důležité služby, ale pověření by mělo být po určitém čase odstraněno. V takovém případě může být vhodné implementovat Zničitelný
rozhraní. Obnovitelné
může být užitečné, pokud má pověření pouze omezený časový rozsah, ve kterém je platné.
Viz také
Reference
- ^ A b Theodore J. Shrader; Bruce A. Rich; Anthony J. Nadalin. Zabezpečení Java a internetu. p. 152.
- ^ „Referenční příručka Java Authentication and Authorization Service (JAAS)“. oracle.com. Oracle Corporation. Archivovány od originál dne 26. září 2012. Citováno 22. května 2012.
externí odkazy
- Výukový program JAAS
- jGuard: projekt s otevřeným zdrojovým kódem, který může zabezpečit samostatné nebo webové aplikace založené na JAAS
- Musser, John; Feuer, Paul (23. září 2002). „All that JAAS“. JavaWorld. Citováno 2020-07-20.
- Knihovna SPNEGO - open source projekt GNU LGPL, který se při zjednodušení ověřování a autorizace spoléhá na rámec JAAS