Anmeldekonfiguration für JAAS (Java Authentication and Authorization Service)

JAAS (Java™ Authentication and Authorization Service) ist ein neues Feature in WebSphere Application Server. JAAS ist eine strategische API von WebSphere Application Server für die Authentifizierung und ersetzt die CORBA-API für programmgesteuerte Anmeldung.

WebSphere Application Server stellt einige Erweiterungen für JAAS bereit:

  • com.ibm.websphere.security.auth.WSSubject: Die API com.ibm.websphere.security.auth.WSSubject erweitert das JAAS-Berechtigungsmodell mit J2EE-Ressourcen (Java 2 Platform, Enterprise Edition). Sie können die JAAS-Anmeldung in der Administrationskonsole oder mit Scripting-Funktionen konfigurieren und diese Konfiguration in der Konfigurations-API von WebSphere Application Server speichern. Allerdings unterstützt WebSphere Application Server immer noch das Format für die JAAS-Anmeldekonfiguration, eine unverschlüsselte Textdatei, aus der JAAS-Standardimplementierung. Wenn Sie doppelte Anmeldekonfigurationen in der Konfigurations-API von WebSphere Application Server und in Form unverschlüsselter Dateien definieren, hat die Anmeldekonfiguration in der Konfigurations-API von WebSphere Application Server Vorrang. Das Definieren der Anmeldekonfiguration in der WebSphere-Konfigurations-API bringt folgende Vorteile:
    • Unterstützung von Benutzerschnittstellen beim Definieren der JAAS-Anmeldekonfiguration
    • Zentrale Verwaltung der Definition für die JAAS-Anmeldekonfiguration
    • Verteilung der Definition der JAAS-Anmeldekonfiguration bei einer Installation von a WebSphere Application Server Network Deployment

    Durch ein Versehen beim Entwurf gibt die Methode javax.security.auth.Subject.getSubject in JAAS Version 1.0 nicht das Subject zurück, das dem aktiven Thread in einem Codeblock java.security.AccessController.doPrivileged zugeordnet ist. Diese Aktion kann zu inkonsistentem Verhalten führen, das problematisch ist. Die Erweiterung com.ibm.websphere.security.auth.WSSubject bietet eine Lösung für die Zuordnung des Subjekts zu einem aktiven Thread an. Die Erweiterung com.ibm.websphere.security.auth.WSSubject ergänzt das JAAS-Berechtigungsmodell mit J2EE-Ressourcen.

    Warum WebSphere Application Server seine eigene Subject-Klasse besitzt: Sie können die Subjects in einem Subject.doAs-Block durch Aufrufen der Methode Subject.getSubject abrufen. Diese Prozedur funktioniert jedoch nicht, wenn in dem Subject.doAs-Block ein AccessController.doPrivileged-Aufruf enthalten ist. Im folgenden Beispiel ist s1 identisch mit s, aber s2 ist null:
    * AccessController.doPrivileged() not only truncates the Subject propagation, 
    * but also reduces the permissions. It does not include the JAAS security 
    * policy defined for the principals in the Subject.
    Subject.doAs(s, new PrivilegedAction() {
      public Object run() {
        System.out.println("Within Subject.doAsPrivileged()");
        Subject s1 = Subject.getSubject(AccessController.getContext());
        AccessController.doPrivileged(new PrivilegedAction() {
          public Object run() {
          Subject s2 = Subject.getSubject(AccessController.getContext());
          return null;
        }
      });
      return null;
    }
    });
  • Die JAAS-Anmeldekonfiguration kann in der Administrationskonsole oder mit den Scripting-Funktionen konfiguriert und im Konfigurationsrepository von WebSphere Application Server gespeichert werden. Eine Anwendung kann neue JAAS-Anmeldekonfigurationen in der Administrationskonsole definieren. Die Daten werden persistent in dem Konfigurationsrepository gespeichert, das für die Konfigurations-API von WebSphere Application Server definiert ist. WebSphere Application Server unterstützt jedoch weiterhin das Standardkonfigurationsformat für JAAS-Anmeldungen (einfache Textdatei), das von der JAAS-Standardimplementierung bereitgestellt wird. Wenn Sie doppelte Anmeldekonfigurationen in der Konfigurations-API von WebSphere Application Server und in Form unverschlüsselter Dateien definieren, hat die Anmeldekonfiguration in der Konfigurations-API von WebSphere Application Server Vorrang. Das Definieren der Anmeldekonfiguration in der Konfigurations-API von WebSphere Application Server bringt folgende Vorteile:
    • UI-Unterstützung bei der Definition der JAAS-Anmeldekonfiguration.
    • Die JAAS-Anmeldekonfiguration kann zentral verwaltet werden.
    • Die JAAS-Anmeldekonfiguration wird in einer Installation von WebSphere Application Server Network Deployment verteilt.
  • Proxy-LoginModule: Das Proxy-LoginModule ist ein Proxy-Server für das konfigurierte Benutzer- bzw. systemdefinierte Modul, das der Kontextklassenlader anstelle des Systemklassenladers verwendet, um das Modul zu laden. Die JAAS-Standardimplementierung verwendet für das Laden von Klassen nicht den Klassenlader des Threadkontexts. Das Modul "LoginModule" kann nicht geladen werden, wenn die LoginModule-Klassendatei nicht im Pfad des Anwendungsklassenladers oder im Pfad des Klassenladers für die Java-Erweiterung enthalten ist. WebSphere Application Server stellt ein Proxy-LoginModule-Modul bereit, um das JAAS-LoginModule mit dem Klassenlader des Threadkontexts zu laden. Mit diesem Proxy-LoginModule müssen Sie die LoginModule-Implementierung nicht in den Klassenpfad des Anwendungsklassenladers oder in den Klassenpfad des Klassenladers für die Java-Erweiterung stellen.
Tipp: Löschen Sie nicht die vordefinierten JAAS-Anmeldekonfigurationen (ClientContainer, WSLogin und DefaultPrincipalMapping). Wenn Sie sie entfernen, besteht die Möglichkeit, dass andere Unternehmensanwendungen nicht mehr ausgeführt werden können.

Ein Systemadministrator legt die für jede Anwendung zu verwendenden Authentifizierungsverfahren oder Anmeldmodule fest und konfiguriert sie in einer Anmeldekonfiguration. Die Quelle der Konfigurationsdaten, z. B. eine Datei oder eine Datenbank, entspricht dem Stand der aktuellen Implementierung von javax.security.auth.login.Configuration. Die Implementierung von WebSphere Application Server bietet die Möglichkeit, die Anmeldekonfiguration im Sicherheitsdokument der Konfigurations-API von WebSphere Application Server und in einer JAAS-Konfigurationsdatei zu definieren, wobei die erste Konfiguration Vorrang hat.

JAAS-Anmeldekonfigurationen werden im API-Sicherheitsdokument für die Konfiguration von WebSphere Application Server definiert und können von den Anwendungen verwendet werden. Gehen Sie wie folgt vor, um auf die Konfigurationen zuzugreifen:
  1. Klicken Sie auf Sicherheit > Globale Sicherheit.
  2. Klicken Sie unter "Java Authentication and Authorization Service" auf Anwendungsanmeldungen.

Das Modul WSLogin definiert eine Anmeldekonfiguration und eine LoginModule-Implementierung, die allgemein von Anwendungen verwendet werden können.

Das Modul "ClientContainer" definiert eine ähnliche Anmeldekonfiguration und LoginModule-Implementierung wie das Modul "WSLogin", setzt aber die Anforderungen des Client-Containers von WebSphere Application Server um.

Das Modul "DefaultPrincipalMapping" definiert ein spezielles LoginModule-Modul, das in der Regel von Java 2 Connector verwendet wird, um einen authentifizierten Benutzer von WebSphere Application Server einer Gruppe von Benutzerauthentifizierungsdaten (Benutzer-ID und Kennwort) für das angegebene unternehmensweite Back-End-Informationssystem zuzuordnen. Weitere Informationen zum Java-2-Connector und zum DefaultMappingModule enthält der Abschnitt zur Java-2-Sicherheitskomponente.

Neue JAAS-Anmeldekonfigurationen können mit der Administrationskonsole hinzugefügt und geändert werden. Die Änderungen werden im Sicherheitsdokument auf Zellenebene gespeichert und sind für alle verwalteten Anwendungsserver verfügbar. Sie müssen einen Neustart des Anwendungsservers durchführen, damit die Änderungen zur Laufzeit wirksam werden und die Anmeldekonfiguration des Client-Containers bereitgestellt werden kann.

WebSphere Application Server liest auch die JAAS-Konfigurationsdaten aus der Datei wsjaas.conf unter dem Unterverzeichnis "properties" des Stammverzeichnisses, unter dem WebSphere Application Server installiert ist. Die Änderungen an der Datei wsjaas.conf werden nur vom lokalen Anwendungsserver verwendet und werden erst nach einem Neustart des Anwendungsservers wirksam. Beachten Sie, dass die JAAS-Konfiguration im Sicherheitsdokument der Konfigurations-API von WebSphere Application Server Vorrang vor dem in der Datei wsjaas.conf konfigurierten Sicherheitsdokument hat. Anders ausgedrückt, ein Konfigurationseintrag in der Datei wsjaas.conf wird von einem Eintrag desselben Aliasnamens im Sicherheitsdokument der Konfigurations-API von WebSphere Application Server überschrieben.

Die Einträge der JAAS-Anmeldekonfiguration (Java Authentication and Authorization Service) in der Administrationskonsole werden an die Laufzeit des Servers weitergegeben, wenn sie erstellt werden, und nicht, wenn die Konfiguration gespeichert wird. Die gelöschten Konfigurationseinträge für die JAAS-Anmeldung werden von der Laufzeit des Servers jedoch nicht entfernt. Zum Entfernen der Einträge müssen Sie die neue Konfiguration speichern und den Server dann stoppen und erneut starten.

Zu den Beispielen im Information Center gehört ein JAAS-Anmeldebeispiel, das veranschaulicht, wie JAAS mit WebSphere Application Server verwendet wird. Das Beispiel verwendet eine serverseitige Anmeldung mit JAAS, um einen Benutzer in der sicheren Laufzeitumgebung für WebSphere Application Server zu authentifizieren. Das Beispiel veranschaulicht die folgende Technologie:
  • Java 2 Platform, Enterprise Edition (J2EE) Java Authentication and Authorization Service (JAAS)
  • JAAS for WebSphere Application Server
  • WebSphere Application Server-Sicherheit
Das Beispiel für formularbasierte Anmeldung ist eine Komponente der Technology-Beispiele.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_logmod
Dateiname:rsec_logmod.html