Mit dem JAAS-Anmeldeframework (Java™ Authentication
and Authorization Service) können Sie eine JAAS-Anmeldekonfiguration erstellen, die verwendet werden
kann, um die Anmeldung für die Identitätszusicherung in Liberty durchzuführen.
Informationen zu diesem Vorgang
Wenn Sie die Identitätszusicherung mit Überprüfung der Vertrauensstellung
konfigurieren, kann eine Anwendung die JAAS-Anmeldekonfiguration verwenden, um eine programmgesteuerte
Identitätszusicherung durchzuführen. Weitere Einzelheiten finden Sie unter IdentityAssertionLoginModule.
Fehler vermeiden: Auf der WASdev.net-Website finden Sie mehrere Sicherheitskonfigurationsbeispiele als Referenz bei der Konfiguration der Sicherheit Ihrer Anwendungen in Liberty.
Weitere Informationen finden Sie unter JAAS in Liberty mit Entwicklertools konfigurieren.
Vorgehensweise
- Delegieren Sie die Trustvalidierung an einen vom Benutzer implementierten Plug-in-Punkt.
Die Überprüfung der Vertrauensstellung wird von einem angepassten Anmeldemodul durchgeführt.
Dieses angepasste Anmeldemodul führt alle erforderlichen Überprüfungen der Vertauensstellung durch und legt dann die
Informationen zur Vertrauensstellung und zur Identität in den gemeinsam genutzen Statusdaten fest, die an das Anmeldemodul für Identitätszusicherung übergeben werden. Im folgenden gemeinsam genutzten Statusschlüssel ist eine Zuordnung erforderlich:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
Wenn die Statusinformationen fehlen, wird eine Ausnahme des Typs
WSLoginFailedException von der Klasse
IdentityAssertionLoginModule gemeldet.
Die Zuordnung im gemeinsam genutzten Statusschlüssel muss einen Trustschlüssel mit dem folgenden Schlüsselnamen enthalten:
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trust
Wenn dieser Schlüssel auf
true gesetzt ist, ist die Vertrauensstellung etabliert.
Wenn der Schlüssel auf
false gesetzt ist, besteht keine Anerkennung,
und die Klasse
IdentityAssertionLoginModule generiert eine Ausnahme vom Typ
WSLoginFailedException.
Die Zuordnung im gemeinsam genutzten Schlüssel muss außerdem für eine der folgenden Ressourcen definiert werden:
Wenn ein Principal und ein Zertifikat angegeben sind, wird der Principal
verwendet und eine Warnung ausgegeben.
- Erstellen Sie eine JAAS-Konfiguration für Anwendungsanmeldungen. Die JAAS-Konfiguration enthält das vom Benutzer implementierte angepasste
Anmeldemodul für die Anerkennungsüberprüfung und das IdentityAssertionLoginModule.
Fügen Sie zum Konfigurieren einer Anwendungsanmeldekonfiguration anschließend den folgenden Code in der Datei
server.xml hinzu:
<jaasLoginContextEntry id="CustomIdentityAssertion" name="CustomIdentityAssertion" loginModuleRef="customIdentityAssertion,identityAssertion" />
<jaasLoginModule id="customIdentityAssertion" className="com.ibm.ws.security.authentication.IdentityAssertionLoginModule" controlFlag="REQUIRED" libraryRef="customLoginLib"/>
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="IdentityAssertionLoginModule.jar"/>
</library>
Diese JAAS-Konfiguration wird von der Anwendung für die
Identitätszusicherung verwendet.
- Führen Sie die programmierbare Identitätszusicherung durch. Ein Programm kann die JAAS-Anmeldekonfiguration jetzt für die Durchführung einer
programmgesteuerten Identitätszusicherung verwenden. 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 momentan aktiven Prozess gesetzt werden. Das folgende Beispiel veranschaulicht diesen Prozess:
NameCallback handler = new NameCallback(new MyPrincipal("Joe"));
LoginContext lc = new LoginContext("customIdentityAssertion", handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// Ab hier ist die RunAs-Identität "Joe".
Anmerkung: Die Klasse MyPrincipal ist die Implementierung der Schnittstelle
java.security.Principal im Beispiel.
Ergebnisse
Mit dem JAAS-Anmeldeframework (Java Authentication and Authorization Service)
können Sie eine JAAS-Anmeldekonfiguration erstellen, mit der eine Anmeldung mit Identitätszusicherung (IDAssertion)
durchgeführt werden kann.