Sie können ein angepasstes JAAS-Anmeldemodul (Java™ Authentication
and Authorization Service) vor oder nach dem Anmeldemodul des Liberty Profile-Servers
konfigurieren.
Vorbereitende Schritte
Vergewissern Sie sich, dass Sie eine JAR-Datei mit dem angepassten
JAAS-Anmeldemodul haben, die die Schnittstelle javax.security.auth.spi.LoginModule wie im Abschnitt
Angepasste JAAS-Anmeldemodule für eine Systemanmeldekonfiguration entwickeln beschrieben implementiert.
Außerdem wird angenommen, dass das angepasste JAAS-Anmeldemodul eine Hashtabelle, Callbacks
oder gemeinsam genutzte Statusvariablen verwendet, die vom
Liberty Profile-Server für die Übergabe von Daten an das Systemanmeldemodul bereitgestellt werden.
Informationen zu diesem Vorgang
Durch die Verwendung eines angepassten Anmeldemoduls können Sie entweder zusätzliche Authentifizierungsentscheidungen treffen
oder dem Subjekt Informationen hinzufügen, um in Ihrer Anwendung
differenziertere Berechtigungsentscheidungen treffen zu können. Eine detailliertere Übersicht finden Sie unter
JAAS-Konfiguration und JAAS-Anmeldemodule.
Sie können ein angepasstes JAAS-Anmeldemodul auch mit den Entwicklertools konfigurieren. Informationen hierzu finden Sie unter
JAAS im Liberty-Profil mit Entwicklertools konfigurieren. Auf der WASdev.net-Website finden Sie mehrere Sicherheitskonfigurationsbeispiele als Referenz bei der Konfiguration der Sicherheit Ihrer Anwendungen in Liberty Profile. Weitere Informationen finden
Sie unter JAAS im Liberty-Profil mit Entwicklertools konfigurieren.
Führen Sie zum Konfigurieren eines angepassten JAAS-Anmeldemoduls die folgenden Schritte aus:
Vorgehensweise
- Aktivieren Sie das Liberty-Feature appSecurity-2.0
in der Datei server.xml.
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
- Erstellen Sie eine Klasse mit dem Namen
com.sample.CustomLoginModule, die die Schnittstelle
LoginModule implementiert, und packen Sie sie in die Datei
CustomLoginModule.jar.
- Erstellen Sie ein <library>-Element, das ein <fileset>-Element verwendet und angibt,
wo sich die Datei CustomLoginModule.jar befindet. Die id für "library" (Bibliothek)
lautet in diesem Beispiel customLoginLib.
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- Erstellen Sie ein Element des Typs <jaasLoginModule>. Die
id in diesem Beispiel lautet
custom.
- Konfigurieren Sie das angepasste Anmeldemodul so, dass eine erfolgreiche Authentifizierung erforderlich ist.
Setzen Sie dazu
das Attribut controlFlag auf REQUIRED.
- Setzen Sie das Attribut libraryRef auf customLoginLib,
die im vorherigen Schritt konfigurierte
id des Elements
<library>. Dieses Anmeldemodul hat zwei Optionen: UserRegistry ist
ldap und mapToUser ist user1.
<jaasLoginModule id="myCustom"
className="com.sample.CustomLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib">
<options myOption1="value1" myOption2="value2"/>
</jaasLoginModule>
- Erstellen Sie ein Element <jaasLogincontextEntry> mit der ID (id) und einem eindeutigen Namen (name) der systemdefinierten JAAS-Konfigura tion: system.WEB_INBOUND. Sie können diese JAAS-Konfiguration auch auf
system.DEFAULT, WSLogin oder Ihre eigene
JAAS-Konfiguration setzen. Fügen Sie dem Attribut loginModuleRef die im vorherigen Schritt erstellte
id (custom) des Elements jaasLoginModule hinzu. Wenn Sie diese id als ersten Eintrag in die Liste aufnehmen,
wird dies als erstes JAAS-Anmeldemodul aufgerufen. Sie müssen außerdem die anderen
Standardanmeldemodule auflisten: hashtable, userNameAndPassword, certificate
und token.
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
Anmerkung: Der Name der Option darf nicht mit einem Punkt (.), mit config. oder service beginnen und muss eindeutig sein. Außerdem ist der Eigenschaftsname
id oder ID nicht zulässig.
Weitere Informationen zu den Elementen <jaasLoginContextEntry>, <jaasLoginModule>, <options>
und <library> finden Sie unter Konfigurationselemente in der Datei 'server.xml'.