Programmgesteuerte Anmeldungen für JAAS (Java Authentication and Authorization Service) konfigurieren

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.

Vorbereitende Schritte

JAAS (Java™ Authentication and Authorization Service) ist ein Feature in WebSphere Application Server. JAAS ist eine Sammlung von strategischen Authentifizierungs-APIs von WebSphere Application Server, die die CORBA-APIs für programmgesteuerte Anmeldung ersetzen.

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 um Java EE-Ressourcen.
  • Sie können die JAAS-Anmeldung in der Administrationskonsole konfigurieren und diese Anmeldekonfiguration in der Application-Server-Konfiguration speichern. 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 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 während der Installation
    Durch ein Versehen beim Entwurf gibt die Methode javax.security.auth.Subject.getSubject in JAAS Version 1.0 nicht das Subjekt zurück, das dem aktiven Thread in einem Codeblock java.security.AccessController.doPrivileged zugeordnet ist. Das kann zu einem inkonsistenten Verhalten führen, das Probleme verursachen kann. Die API com.ibm.websphere.security.auth.WSSubject bietet eine Lösung für die Zuordnung des Subject zu einem aktiven Thread an.
  • Proxy-Anmeldemodul. Das Proxy-Anmeldemodul (LoginModule) lädt das eigentliche Anmeldemodul. Die Standard-JAAS-Implementierung verwendet für das Laden von Klassen nicht den Klassenlader des Threadkontexts. Das Anmeldemodul wird nicht geladen, wenn die Klassendatei des Anmeldemoduls nicht im Klassenpfad des Klassenladers für die Anwendung oder für die Java-Erweiterungen enthalten ist. Wegen dieses Problems mit der Klassenladersichtbarkeit stellt WebSphere Application Server ein Proxy-Anmeldemodul bereit, um das JAAS-Anmeldemodul mit dem Klassenlader des Threadkontexts zu laden. Mit diesem Proxy-Anmeldemodul müssen Sie die Implementierung des Anmeldemoduls nicht in den Klassenpfad des Klassenladers für die Anwendung oder für die Java-Erweiterungen stellen.

    [AIX Solaris HP-UX Linux Windows]Wenn Sie das Proxy-LoginModul nicht verwenden möchten, können Sie es in das Verzeichnis Stammverzeichnis_des_Anwendungsservers/lib/ext/ stellen. Aufgrund von Sicherheitsrisiken wird diese Vorgehensweise jedoch nicht empfohlen.

    [z/OS]Wenn Sie das Proxy-LoginModul nicht verwenden möchten, können Sie es in das Verzeichnis WAS_HOME/lib/ext/ stellen. Aufgrund von Sicherheitsrisiken wird diese Vorgehensweise jedoch nicht empfohlen.

    [IBM i]Wenn Sie das Proxy-Anmeldemodul nicht verwenden möchten, können Sie es in das Verzeichnis /QIBM/UserData/Java400/ext/ stellen, um es dem Klassenpfad für die erweiterten Java-Verzeichnisse hinzuzufügen. Erteilen Sie der Datei außerdem die Berechtigung *PUBLIC *RX. Wenn Sie die Datei jedoch dem Verzeichnis /QIBM/UserData/Java400/ext/ hinzufügen, wird die Datei dem Standardklassenpfad für die erweiterten Java-Verzeichnisse hinzugefügt, der für das gesamte Betriebssystem zugänglich ist.

JAAS-Anmeldekonfigurationen werden im Sicherheitsdokument der Konfigurations-API von WebSphere Application Server definiert. Klicken Sie auf Sicherheit > Globale Sicherheit.Klicken Sie unter "Java Authentication and Authorization Service" auf Anwendungsanmeldungen. Die folgenden JAAS-Anmeldekonfigurationen sind verfügbar:

ClientContainer
Definiert eine Anmeldekonfiguration und eine Implementierung des Anmeldemoduls, die der von WSLogin ähnlich ist, aber die Voraussetzungen des Client-Containers des WebSphere Application Server berücksichtigt. Weitere Informationen finden Sie im Artikel Konfigurationseintragseinstellungen für JAAS (Java Authentication and Authorization Service).
DefaultPrincipalMapping,
Definiert ein besonderes Anmeldemodul, das normalerweise vom Java EE-Connector verwendet wird, um die authentifizierte Identität eines Benutzers von WebSphere Application Server einer Gruppe von Benutzerauthentifizierungsdaten (Benutzer-ID und Kennwort) für das angegebene Back-End-EIS (Enterprise Information System) zuzuordnen. Weitere Informationen zum Java EE-Connector und zum DefaultMappingModule enthält der Abschnitt zur Java EE-Sicherheitskomponente.
WSLogin
Definiert eine Anmeldekonfiguration und eine Implementierung des Anmeldemoduls, die allgemein von Anwendungen verwendet werden können.

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.

Achtung: Löschen Sie nicht die vordefinierten JAAS-Anmeldekonfigurationen (z. B. ClientContainer, WSLogin und DefaultPrincipalMapping). Wenn Sie sie entfernen, besteht die Möglichkeit, dass andere Unternehmensanwendungen nicht mehr ausgeführt werden können.

Vorgehensweise

  1. Löschen Sie eine JAAS-Anmeldekonfiguration.
    1. Klicken Sie auf Sicherheit > Globale Sicherheit.
    2. Klicken Sie unter "Java Authentication and Authorization Service" auf Anwendungsanmeldungen. Daraufhin erscheint die Anzeige "Konfiguration der Anwendungsanmeldung".
    3. Wählen Sie das Kontrollkästchen der zu löschenden Anmeldekonfigurationen und klicken Sie dann auf Löschen.
  2. Erstellen Sie eine neue JAAS-Anmeldekonfiguration.
    1. Klicken Sie auf Sicherheit > Globale Sicherheit.
    2. Klicken Sie unter "Java Authentication and Authorization Service" auf Anwendungsanmeldungen.
    3. Klicken Sie auf Neu. Daraufhin erscheint die Anzeige "Konfiguration der Anwendungsanmeldung".
    4. Geben Sie den Aliasnamen der neuen JAAS-Anmeldekonfiguration an und klicken Sie dann auf Anwenden. Dieser Name der Anmeldekonfiguration wird zum Erstellen eines neuen LoginContext-Kontextes an die Implementierung von javax.security.auth.login.LoginContext übergeben.

      Klicken Sie auf Anwenden, um die Änderungen zu speichern und den zusätzlichen Knotennamen, der dem ursprünglichen Aliasnamen vorangestellt wird, hinzuzufügen. Wenn Sie auf OK klicken, werden die letzten Änderungen nicht in der Datei security.xml gespeichert.

    5. Klicken Sie unter "Weitere Eigenschaften" auf JAAS-Anmeldemodule.
    6. Klicken Sie auf Neu.
    7. Geben Sie den Klassennamen für das Modul an. Hier sollten Sie aufgrund der Einschränkung bei der Sichtbarkeit von Klassenladern das Proxy-Anmeldemodul von WebSphere Application Server angeben.
    8. Geben Sie die Implementierung des Anmeldemoduls als delegate-Eigenschaft des Proxy-Anmeldemoduls an. Der Klassenname des Proxy-Anmeldemoduls von WebSphere Application Server ist com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy.
    9. Wählen Sie in der Liste Authentifizierungsstrategie aus und klicken Sie auf Anwenden.
    10. Klicken Sie unter "Weitere Eigenschaften" auf Angepasste Eigenschaften. Die Anzeige Angepasste Eigenschaften für das ausgewählte Anmeldemodul erscheint.
    11. Erstellen Sie eine neue Eigenschaft mit dem Namen delegate und dem Wert der richtigen Implementierung des Anmeldemoduls. Sie können auch andere Eigenschaften angeben, z. B. debug mit dem Wert true. Diese Eigenschaften werden der Anmeldemodulklasse als Optionen für die Methode "initialize" der Anmeldemodulinstanz übergeben.
    12. Klicken Sie auf Speichern.

      Für eine Installation von WebSphere Application Server Network Deployment müssen Sie sicherstellen, dass eine Dateisynchronisation ausgeführt wird, um die Änderungen an andere Knoten weiterzuleiten.

    JAAS-Anmeldemodule können an verschiedenen Position der Verzeichnisstruktur von WebSphere Application Server abgelegt werden. Die folgende Liste enthält Empfehlungen für die Positionen von JAAS-Anmeldemodulen:
    • In einer EAR-Datei (Enterprise Archive) für eine bestimmte Java EE-Anwendung (Java Platform, Enterprise Edition).

      Wenn Sie das Anmeldemodul in die EAR-Datei aufnehmen, steht es nur dieser Anwendung zur Verfügung.

    • In der gemeinsam genutzten Bibliothek von WebSphere Application Server.

      Wenn Sie das Anmeldemodul in die gemeinsam genutzte Bibliothek aufnehmen, müssen Sie die Anwendungen angeben, die Zugriff auf das Modul haben. Nähere Informationen zu gemeinsam genutzten Bibliotheken finden Sie im Artikel "Gemeinsam genutzte Bibliotheken verwalten".

    • Im Verzeichnis für Java-Erweiterungen.

      Wenn Sie das JAAS-Anmeldemodul im Verzeichnis für die Java-Erweiterungen ablegen, steht das Anmeldemodul allen Anwendungen zur Verfügung.

      [z/OS]Diese Position wird für WebSphere Application Server for z/OS oder WebSphere Business Integration Server Foundation nicht empfohlen.

      [IBM i]Kopieren Sie die Klassendatei in das Verzeichnis /QIBM/UserData/Java400/ext, um sie dem Klassenpfad für die erweiterten Java-Verzeichnisse hinzuzufügen. Erteilen Sie der Datei außerdem die Berechtigung *PUBLIC *RX. Wenn Sie die Datei jedoch dem Verzeichnis /QIBM/UserData/Java400/ext hinzufügen, fügen Sie die Datei dem Standardklassenpfad für die erweiterten Java-Verzeichnisse hinzu, der für das gesamte Betriebssystem zugänglich ist.

    Obwohl das Verzeichnis für die Java-Erweiterungen die größte Verfügbarkeit für das Anmeldemodul bietet, sollten Sie das Anmeldemodul in die EAR-Datei der Anwendung kopieren. Falls andere Anwendungen auf dasselbe Anmeldemodul zugreifen müssen, bietet sich die Verwendung gemeinsam genutzter Bibliotheken an.

  3. Ändern Sie die Textdatei.

    [AIX Solaris HP-UX Linux Windows][z/OS]WebSphere Application Server unterstützt das Standardformat der JAAS-Anmeldekonfiguration, eine unverschlüsselte Textdatei, aus der JAAS-Standardimplementierung. Es wird jedoch kein Tool bereitgestellt, mit dem Textdateien dieses Formats editiert werden können. Sie können die JAAS-Anmeldekonfiguration in der unverschlüsselten Textdatei Stammverzeichnis_des_Anwendungsservers/properties/wsjaas.conf definieren. Alle Syntaxfehler können dazu führen, dass die Syntaxanalyse der Textdatei mit der JAAS-Anmeldekonfiguration fehlschlägt. Dieses Problem kann wiederum dazu führen, dass andere Anwendungen fehlschlagen.

    [IBM i]WebSphere Application Server unterstützt das Standardformat der JAAS-Anmeldekonfiguration, eine unverschlüsselte Textdatei, aus der JAAS-Standardimplementierung. Es wird jedoch kein Tool bereitgestellt, mit dem Textdateien dieses Formats editiert werden können. Sie können die JAAS-Anmeldekonfiguration in der Datei Profilstammverzeichnis/properties/wsjaas.conf definieren. Alle Syntaxfehler können dazu führen, dass die Syntaxanalyse der Textdatei mit der JAAS-Anmeldekonfiguration fehlschlägt. Dieses Problem kann wiederum dazu führen, dass andere Anwendungen fehlschlagen.

    [AIX Solaris HP-UX Linux Windows][z/OS]Java-Clientprogramme, die den JAAS für die Authentifizierung nutzen, müssen mit der angegebenen JAAS-Konfigurationsdatei aufgerufen werden. Diese Konfigurationsdatei wird in der Datei Stammverzeichnis_des_Anwendungsservers/bin/launchClient.bat wie folgt definiert:
    set JAAS_LOGIN_CONFIG=-Djava.security.auth.login.config=%install_root%\properties\wsjaas_client.conf
    Wenn zum Aufrufen des Java-Clientprogramms nicht die Datei launchClient.bat verwendet wird, stellen Sie sicher, dass die richtige JAAS-Konfigurationsdatei mit dem Flag -Djava.security.auth.login.config an die Java Virtual Machine übergeben wird.

    [IBM i]Java-Clientprogramme, die JAAS für die Authentifizierung nutzen, müssen mit der angegebenen JAAS-Konfigurationsdatei aufgerufen werden. Die Konfigurationsdatei wird im QShell-Script launchClient gesetzt. Wenn Sie zum Aufrufen des Java-Clientprogramms nicht das Script launchClient verwenden, stellen Sie sicher, dass die richtige JAAS-Konfigurationsdatei mit dem Flag -Djava.security.auth.login.config an die Java Virtual Machine übergeben wird.

Ergebnisse

Es wurde eine neue JAAS-Anmeldekonfiguration erstellt oder eine alte JAAS-Anmeldekonfiguration entfernt. Eine Unternehmensanwendung kann die neu erstellte JAAS-Anmeldekonfiguration verwenden, ohne den Anwendungsserverprozess neu zu starten.

[AIX Solaris HP-UX Linux Windows][z/OS]Die in der Datei Stammverzeichnis_des_Anwendungsservers/properties/wsjaas.conf definierten neuen JAAS-Anmeldekonfigurationen führen nicht zu einer automatischen Aktualisierung. Starten Sie die Anwendungsserver neu, um die Änderungen auszuwerten. Diese JAAS-Anmeldekonfigurationen gelten jeweils für einen bestimmten Knoten und stehen Anwendungsservern, die auf anderen Knoten ausgeführt werden, nicht zur Verfügung.

[IBM i]Die in der Datei Profilstammverzeichnis/properties/wsjaas.conf definierten neuen JAAS-Anmeldekonfigurationen führen nicht zu einer automatischen Aktualisierung. Starten Sie die Anwendungsserver neu, um die Änderungen auszuwerten. Diese JAAS-Anmeldekonfigurationen gelten jeweils für einen bestimmten Knoten und stehen Anwendungsservern, die auf anderen Knoten ausgeführt werden, nicht zur Verfügung.

Nächste Schritte

Erstellen Sie neue JAAS-Anmeldekonfigurationen, die von Unternehmensanwendungen für die Durchführung einer angepassten Authentifizierung verwendet werden. Verwenden Sie diese neu definierten JAAS-Anmeldekonfigurationen für die programmgesteuerte Anmeldung.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



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