Liberty-Repository[8.5.5.6 oder höher]

Programmgestützte JAAS-Anmeldung im Anwendungs-Client-Container von Liberty Profile konfigurieren

Der Anwendungs-Client-Container von Liberty Profile kann so konfiguriert werden, dass eine programmgestützte JAAS-Anmeldung verwendet wird.

Vorbereitende Schritte

Sehen Sie sich die verschiedenen Methoden zur Authentifizierung von Benutzern im Anwendungs-Client-Container an und entscheiden Sie dann, welche Option für die programmgestützte Anmeldung sich für Ihre Umgebung am besten eignet. Weitere Einzelheiten finden Sie im Abschnitt Authentifizierung im Anwendungs-Client-Container von Liberty Profile.

Informationen zu diesem Vorgang

Die programmgestützte Anmeldung: ist ein Typ von Formularanmeldung, die für die Authentifizierung Anmeldeformulare in der Anwendungsdarstellung unterstützt. Dieser Ansatz setzt voraus, dass der Anwendungsentwickler die Berechtigungsnachweise des Benutzers erfasst und diesen Benutzer authentifiziert. Bei dieser Methode wird das JAAS-Framework genutzt, um die Berechtigungsnachweise eines Benutzers zur Authentifizierung an den Server zu senden. Das JAAS-Framework setzt sich aus der Erstellung eines Anmeldekontextes durch Festlegung einer JAAS-Anmeldekonfiguration und der Verwendung eines Callback-Handlers für die Erfassung der Berechtigungsnachweise des Benutzers zusammen. Wenn ein Subjekt aus dem Anmeldekontext abgerufen wird, können Sie eine Liberty-Sicherheits-API verwenden, um dieses Subjekt im Thread festzulegen, sodass es für Ihren abgehenden Aufruf an den Server verwendet wird.
Die JAAS-Anmeldekonfiguration legt fest, wie und welche Anmeldemodule für die Authentifizierung verwendet werden. Im Folgenden sind die JAAS-Anmeldekonfigurationen beschrieben, die von Liberty Profile im Client bereitgestellt werden:
  • WSLogin-JAAS-Anmeldekonfiguration: Eine generische JAAS-Anmeldekonfiguration, die eine Anwendungsclient-Containeranwendung von Liberty Profile verwenden kann, um die auf einer Benutzer-ID und einem Kennwort basierende Authentifizierung durchzuführen. Diese Konfiguration unterstützt jedoch den im Implementierungsdeskriptor des Clientanwendungsmoduls angegebenen CallbackHandler-Handler.
  • ClientContainer-JAAS-Anmeldekonfiguration: Diese JAAS-Anmeldekonfiguration erkennt den CallbackHandler-Handler im Implementierungsdeskriptor des Clientanwendungsmoduls, sofern dieser angegeben ist. Wenn im Implementierungsdeskriptor kein Handler angegeben ist, wird der über das Programm angegebene Handler verwendet.

    Die in der JAAS-Anmeldekonfiguration angegebenen Anmeldemodule implementieren eine bestimmte Authentifizierungstechnologie. Ein Anmeldemodul kann Berechtigungsnachweise eines Benutzers über die Schnittstelle javax.security.auth.callback.CallbackHandler erfassen. Liberty Profile stellt eine Implementierung ohne Eingabeaufforderungen der Schnittstelle CallbackHandler mit dem Namen com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl bereit. Diese Implementierung ermöglicht einem Anwendungsentwickler, die Berechtigungsnachweise direkt in der Anwendung anzugeben, sodass der Benutzer nicht zur Eingabe aufgefordert wird. Die CallbackHandler-Implementierung kann auf zwei Arten angegeben werden:

    • Sie können Ihre Implementierung über das Programm als Argument für den Konstruktor javax.security.auth.login.LoginContext angeben, z. B.:
      LoginContext logincontext = new LoginContext("ClientContainer", new WSCallbackHandlerImpl(“user”, "password"));
    • Sie können den Namen Ihrer Implementierung im Implementierungsdeskriptor des Clientanwendungsmoduls (application-client.xml) angeben, z. B.:
      <callbackhandler>com.acme.callbackhandler.WSCallbackHandlerImpl/<callbackhandler>
Anmerkung: Die WSLogin-Anmeldekonfiguration erkennt die zweite Option mit der Angabe eines CallbackHandler-Handlers im Implementierungsdeskriptor nicht.

Vorgehensweise

  1. Fügen Sie das Feature appSecurityClient-1.0 Ihrer Datei client.xml hinzu.
    <feature>appSecurityClient-1.0</feature>
  2. Konfigurieren Sie SSL für Ihren Client:
    1. Optional: Verwenden Sie den Befehl securityUtility, um ein SSL-Zertifikat für den Client zu erstellen, z. B.:
      securityUtility createSSLCertificate --client=myClient --password=liberty
    2. Empfohlen: Verwenden Sie den Befehl securityUtility, um ein xor-codiertes Kennwort zu erstellen. Geben Sie beispielsweise Folgendes ein, um das Kennwort liberty zu codieren:
      securityUtility encode liberty
    3. Fügen Sie Ihrer Datei client.xml ein Element keyStore hinzu. Im folgenden Beispiel wird die SSL-Standardkonfiguration verwendet:
      <keyStore id="defaultKeyStore" password=“{xor}MzY9Oi0rJg==“/> <!-- pwd:
      liberty -->
  3. Erstellen Sie im Anwendungscode ein Element Subject, das die JAAS-Anmeldekonfiguration ClientContainer und den Callback-Handler WSCallbackHandlerImpl verwendet.
    1. Fügen Sie den folgenden Code hinzu, bevor die Anwendung eine abgehende Anforderung absetzt. Ändern Sie userName und userPassword in gültige Berechtigungsnachweise für einen Benutzer, der in der Benutzerregistry des Zielservers vorhanden ist.
      CallbackHandler wscbh = new WSCallbackHandlerImpl(“userName”, “userPassword”);
      LoginContext ctx = null;
      try  {
            ctx = new LoginContext(“ClientContainer”, wscbh);
      } catch (LoginException le) {
            le.printStackTrace();
      }
      try  {
            		ctx.login();
      } catch (LoginException le) {
            le.printStackTrace();
      }
      				Subject subject = ctx.getSubject();
  4. Legen Sie das im vorherigen Schritt abgerufene Subject-Element im Thread fest und verwenden sie dieses Subject-Element, um eine EJB zu suchen. Verwenden Sie die API WSSubject.doAs oder doAsPrivilieged, um diese Aktion auszuführen. Das Subject-Element im com.ibm.websphere.security.auth.WSSubject.doAs bzw. com.ibm.websphere.security.auth.WSSubject.doAsPrivileged-Codeblock wird für J2EE-Ressourcenberechtigungsprüfungen (Java™ Platform, Enterprise Edition) verwendet.
    WSSubject.doAs(subject, new PrivilegedAction() {
        		public Object run() {
               try  {
                      // EJB suchen und aufrufen
               } catch (Exception ex) {
                      ex.printStackTrace();
               }
               return null;
        }
    });

Nächste Schritte

Wie im Server können Sie ein angepasstes Anmeldemodul verwenden, um weitere Authentifizierungsentscheidungen zu treffen, oder dem Subjekt Informationen hinzufügen, um differenziertere Authentifizierungsentscheidungen in Ihrer Clientanwendung zu treffen.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_config_jaas_prog_login
Dateiname: twlp_config_jaas_prog_login.html