Zum Inhalt springen

Java Authentication and Authorization Service

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 22. Mai 2008 um 22:34 Uhr durch 84.163.213.84 (Diskussion) (Einsatz). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Java Authentication and Authorization Service (JAAS) ist ein Java-API, das es ermöglicht, Dienste zur Authentifizierung und Zugriffsrechte in Java-Programmen bereitzustellen. JAAS orientiert sich an den Pluggable Authentication Modules (PAM) und unterstützt dadurch eine benutzerbasierte Autorisierung.

Der Dienst lässt sich sowohl unter J2SE (ab JDK 1.4) als auch unter J2EE nutzen. Die zugehörigen Schnittstellen und Klassen sind im Paket „javax.security.auth“ definiert.

Funktionsweise

JAAS definiert Standardklassen und ein über mehrere Schnittstellen vorgegebenes Rahmenwerk, damit ein Java Programm über eine Verfahrens- und Herstellerneutrale Schnittstelle Anwender authentisieren kann. Die eigentliche Authentisierungslogik ist in Provider Module ausgelagert.

Die eigentliche Definition, wie ein JAAS-nutzendes Programm Anwender authentisieren und über welche Authentisierungsdatenquellen dies geschehen soll, wird in einer Java-Properties-Konfigurationsdatei festgelegt. So kann auch nach Fertigstellung eines Programms das verwendete Authentisierungsverfahren geändert werden, ohne den Programmcode modifizieren zu müssen.

Einsatz

Aufgrund der leicht veränderbaren Konfigurationsdatei und des prinzipiellen Aufbaus eines Java-Programms kann jeder Anwender mit Direktzugriff auf die Class- und Property-Dateien eines JAAS-Programms die verwendeten Provider Module sehr leicht austauschen und so von einem Programm vorgesehene Sicherheitsbeschränkungen unterlaufen. Deswegen hat sich JAAS bei 2-Schicht-Anwendungen, bei denen die Anwendungslogik auf Endgeräten vom Anwender läuft, bisher kaum durchgesetzt.

Mit Java 1.4 werden folgende Provider Module mitgeliefert: Unix, NT LAN-Manager, Kerberos. Ab Java 6.0 ist zusätzlich ein LDAP-Authentication-Provider enthalten.

Sicher einsetzen lässt sich JAAS bei 3-Schicht-Anwendungen, bei denen die Anwendungslogik auf einen Applikation Server außerhalb der Reichweite von Anwendern ausgelagert ist. Dort ist JAAS inzwischen auch ein De facto-Marktstandard für Authentisierung. Dieser Standard wird weiter gefestigt, da alle namhaften Hersteller von Java Application Servern inzwischen grundsätzlich mehrere fertig einsetzbare JAAS Provider Module mit ihrem Application Servern mitliefern, mit denen gängige Authentisierungsprotokolle abgedeckt sind (z.B. LDAP, SAML, PKI Zertifikate, SQL Datenbanken).

Für eine Anbindung an im Unix-Umfeld übliche PAM-Authentisierungsmodule wird ein Bridge Modul benötigt, für das u.a. freie Implementierungen verfügbar sind.