Anwendungsanmeldung zur Durchführung einer Identitätszusicherung mit JAAS anpassen

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.

Vorgehensweise

  1. 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:

    • Ein Identitätsschlüssel. Es kann ein java.security.Principal im folgenden Schlüssel definiert werden:
      com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
    • Ein Zertifikat: java.security.cert.X509Certificate[]. Dieses Zertifikat kann im folgenden Schlüssel definiert werden:
       com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates
    Wenn ein Principal und ein Zertifikat angegeben sind, wird der Principal verwendet und eine Warnung ausgegeben.
  2. 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.
  3. 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.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_dev_custom_idassertion.html