Mit dem JAAS-Anmelde-Framework (Java™
Authentication and Authorization Service)
können Sie eine JAAS-Anmeldekonfiguration erstellen, mit der eine Anmeldung mit Zusicherung der Identität (IDAssertion)
durchgeführt werden kann.
Vorbereitende Schritte
Sie können einem Anwendungs- oder Systemprovider erlauben, die Zusicherung der Identität mit Überprüfung der Vertrauenswürdigkeit (Trustvalidierung)
durchzuführen.
Hierfür verwenden Sie das JAAS-Anmelde-Framework, in dem die Trustvalidierung
in einem Anmeldemodul und die Erstellung der Berechtigungsnachweise in einem anderen Modul durchgeführt wird.
Mit den beiden angepassten Anmeldmodulen können Sie eine
JAAS-Anmeldekonfiguration erstellen, die für eine Anmeldung mit Zusicherung der Identität verwendet werden kann.
Es sind zwei angepasste Anmeldemodule erforderlich:
- Vom Benutzer implementiertes Anmeldemodul für Trust Association (Trustvalidierung)
- Dieses Anmeldemodul führt die vom
Benutzer geforderte Prüfung der Vertrauensstellung (Trustprüfung) durch. Wenn die Vertrauensstellung
bestätigt wurde, müssen der Status der Trustprüfung und die Anmelde-ID in einer Tabelle der gemeinsam genutzten Statusinformationen
des Anmeldemoduls gespeichert werden, damit das Anmeldemodul für die Erstellung des Berechtigungsnachweises
diese Informationen verwenden kann. Diese Tabelle muss in der folgenden Eigenschaft gespeichert werden:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
(Diese Eigenschaft setzt sich wie folgt zusammen:)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(Wird auf true gesetzt, wenn die Vertrauensstellung bestätigt wird, andernfalls auf false)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
(Enthält den Principal der Identität)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(Enthält das Zertifikat der Identität)
- Anmeldemodul für Zusicherung der Identität (Erstellung des Berechtigungsnachweises)
- Das Anmeldemodul com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule
erstellt die Berechtigungsnachweise. Dieses Modul stützt sich auf die Informationen zum Vertrauensstatus
in den gemeinsam genutzten Statusinformationen des Anmeldekontextes.
Dieses Anmeldemodul ist durch Java-2-Sicherheitslaufzeitberechtigungen für Folgendes geschützt:
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.initialize
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.login
Das Anmeldemodul für die Zusicherung der Identität sucht nach den Trustinformationen
in der Eigenschaft für gemeinsam genutzte Statusinformationen (com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state), die
den Truststatus und die Identität für die Anmeldung enthält und sich wie folgt zusammensetzen sollte:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(Hat den Wert true, wenn die Vertrauensstellung bestätigt ist, andernfalls false)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
(Enthält den Principal der Anmeldeidentität, wenn ein Principal verwendet wird)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(Enthält einen Bereich einer Zertifizierungskette, die die Anmeldeidentität enthält, sofern ein Zertifikat verwendet wird)
Es wird eine Ausnahme vom Typ WSLoginFailedException zurückgegeben, wenn Status-, Trust- oder ID-Informationen fehlen.
Das Anmeldemodul führt anschließend die Anmeldung unter Verwendung der Identität durch, und das Subjekt enthält die neue
Identität.
Vorgehensweise
- Delegieren Sie die Trustvalidierung an einen vom Benutzer implementierten Plug-Punkt. Die Trustvalidierung muss in einem angepassten Anmeldemodul durchgeführt werden. Dieses
angepasste Anmeldemodul muss die erforderliche Trustvalidierung durchführen, anschließend
die Trust- und Identitätsinformationen in den gemeinsam genutzten Statusinformationen speichern, die an das Anmeldemodul für die Zusicherung der
Identität übergeben werden. Der Schlüssel für die gemeinsam genutzten Statusinformationen com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
muss eine Zuordnung enthalten.
Wenn der Status fehlt, wird eine Ausnahme vom Typ WSLoginFailedException vom Modul IdentityAssertionLoginModule ausgelöst.
Diese Zuordnung muss Folgendes enthalten:
- Trustschlüssel mit dem Namen com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trust.
Wenn der Schlüssel den Wert true hat, ist das Vertrauen bestätigt. Hat der Schlüssel den Wert
false, ist das Vertrauen nicht bestätigt. Wenn der Trustschlüssel nicht auf
true gesetzt ist, löst das Anmeldemodul für die Zusicherung der Identität eine Ausnahme vom Typ
WSLoginFailedException aus.
- Identitätsschlüssel gesetzt: Im Schlüssel com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
kann ein java.security.Principal gesetzt werden.
- Im Schlüssel com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates kann
ein java.security.cert.X509Certificate[] gesetzt sein.
Wenn ein Principal und ein Zertifikat angegeben sind, wird der Principal verwendet und eine Warnung ausgegeben.
- Erstellen Sie eine neue JAAS-Konfiguration für Anwendungsanmeldung. Die
JAAS-Konfiguration enthält das vom Benutzer implementierte Anmeldemodul für Trustvalidierung und das Anmeldemodul für die Zusicherung der Identität.
Zum Konfigurieren einer
Anwendungsanmeldekonfiguration führen Sie anschließend in der Administrationskonsole die folgenden Schritte aus:
- Klicken Sie auf Sicherheit > Globale Sicherheit.
- Klicken Sie auf Java Authentication and Authorization Services > Anwendungsanmeldungen.
- Wählen Sie Neu aus.
- Legen Sie einen Alias für die JAAS-Konfiguration fest.
- Klicken Sie auf Anwenden.
- Wählen Sie JAAS-Anmeldemodule aus.
- Wählen Sie Neu aus.
- Geben Sie den Modulklassennamen des vom Benutzer implementierten
und definierten Anmeldemoduls für Trustvalidierung ein.
- Klicken Sie auf Anwenden.
- Geben Sie den Modulklassennamen von com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule ein.
- Stellen Sie sicher, dass die Modulklassennamen in der richtigen Reihenfolge angegeben sind.
Das vom Benutzer implementierte Anmeldemodul für Trustvalidierung muss die
und das Anmeldemodul IdentityAssertionLoginModule die zweite Klasse in der Liste sein.
- Klicken Sie auf Speichern.
Die JAAS-Konfiguration wird jetzt von der Anwendung für die Zusicherung der Identität verwendet.
- Führen Sie die programmierbare Zusicherung der Identität (IdentityAssertion) durch. Ein Programm kann die JAAS-Anmeldekonfiguration jetzt verwenden, um eine programmgesteuerte Identitätszusicherung durchzuführen.
Das Anwendungsprogramm kann einen Anmeldekontext für die in Schritt 2 erstellte JAAS-Konfiguration erstellen und sich anschließend
mit der zugesicherten ID bei diesem Anmeldekontext anmelden.
Wenn die Anmeldung erfolgreich ist, kann diese Identität
im derzeit aktiven Prozess gesetzt werden. Das folgende Beispiel zeigt einen solchen Code:
MyCallbackHandler handler = new MyCallbackHandler(new MyPrincipal(“Joe”));
LoginContext lc = new LoginContext(“MyAppLoginConfig”, handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// Ab hier ist die RunAs-Identität Joe.
Ergebnisse
Mit dem JAAS-Anmelde-Framework (Java Authentication and Authorization Service)
können Sie eine JAAS-Anmeldekonfiguration erstellen, mit der eine Anmeldung mit Zusicherung der Identität (IDAssertion)
durchgeführt werden kann.