RunAs-Authentifizierung in Liberty konfigurieren

Während der Authentifizierung können Sie den Prozess an eine andere Identität delegieren, indem Sie die RunAs-Spezifikation für Liberty konfigurieren.

Informationen zu diesem Vorgang

Durch die Zuordnung einer bestimmten Benutzeridentität und eines optionalen Kennworts zu einer RunAs-Rolle können Sie den Authentifizierungsprozess an einen Benutzer mit der RunAs-Rolle delegieren.

Sie müssen die Liberty-Features appSecurity-2.0 und servlet-3.0 aktivieren und benötigen eine Benutzerregistry, damit Ihre Anwendung die RunAs-Rolle konfiguriert.

Weitere Informationen zur RunAs-Authentifizierung finden Sie unter RunAs()-Authentifizierung.

Führen Sie zum Konfigurieren der RunAs-Authentifizierung die folgenden Schritte aus:

Vorgehensweise

  1. Schließen Sie die Liberty-Features appSecurity-2.0 und servlet-3.0 in die Datei server.xml ein.
  2. Konfigurieren Sie eine Benutzerregistry für Ihre Anwendung.
  3. Geben Sie das <run-as>-Element im Implementierungsdeskriptor Ihrer Anwendung an.

    Im Folgenden sehen Sie ein Beispiel für die Datei web.xml, in der nachfolgende Aufrufe an den Benutzer delegiert werden, der der Rolle Employee zugeordnet ist:

         <servlet id="Servlet_1">
              <servlet-name>RunAsServlet</servlet-name>
              <display-name>RunAsServlet</display-name>
              <description>RunAsServlet</description>
              <servlet-class>web.RunAsServlet</servlet-class> 
              <run-as>
                   <role-name>Employee</role-name> 
              </run-as>
          </servlet>    
  4. Für verteilte PlattformenOrdnen Sie die Rolle, die Sie im vorherigen Schritt angegeben haben, einem Benutzer zu. Sie können die Zuordnung in der Datei ibm-application-bnd.xmi/xml oder in der Datei server.xml vornehmen. Sie müssen im Element <run-as> einen Benutzernamen angeben. Wenn Sie die Datei ibm-application-bnd.xml verwenden, ist außerdem das Kennwort erforderlich. Wenn Sie die Datei server.xml verwenden, ist das Kennwort optional. Wenn das Kennwort erforderlich ist, verschlüsseln Sie das Kennwort mit dem Befehl securityUtility encode im Verzeichnis /bin. Nähere Informationen zum Befehl securityUtility finden Sie im Artikel securityUtility, Befehl.

    Im Folgenden sehen Sie ein Beispiel für die Verwendung des Elements <run-as> im Element <application-bnd> der Datei server.xml, wobei die Rolle Employee dem RunAs-Benutzer user5 zugeordnet wurde:

         <application-bnd>
              <security-role name="Employee">
                   <user name="user1" />
                   <user name="user5" />
                   <run-as userid="user5" password="{xor}Lz4sLCgwLTs=" />
              </security-role>
         </application-bnd>   
    Anmerkung:
    • Da das Kennwort in der Datei server.xml optional ist, können Sie auch den folgenden Code für einen Benutzer ohne Kennwort verwenden:
          <application-bnd>
                <security-role name="Employee">
                     <user name="user1" />
                     <user name="user5" />
                     <run-as userid="user5" />
                 </security-role>
           </application-bnd>   
    • Wenn Sie das Element <application-bnd in der Datei server.xml angeben, darf sich Ihre Anwendung nicht im Ordner dropins befinden. Wenn Sie die Anwendung im Ordner dropins belassen, müssen Sie die Anwendungsüberwachung inaktivieren, indem Sie Folgendes in der Datei server.xml festlegen:
      <applicationMonitor dropinsEnabled="false" />

    Der RunAs-Benutzername muss eindeutig sein und darf nicht in externen Accounts vorhanden sein. Wenn Sie beispielsweise einen Benutzer bei einem SAML-Identitätsprovider oder OpenID Connect-Provider authentifizieren, vergewissern Sie sich, dass der RunAs-Benutzername nicht in den entsprechenden externen Accounts vorhanden ist.

    Weitere Informationen zum Element run-as finden Sie unter Java Servlets 3.0.

  5. Für z/OS-PlattformenKonfigurieren Sie die RunAs-Authentifizierung über SAF-Ressourcenprofile, die für z/OS-Benutzer spezifisch sind.
    1. Für z/OS-PlattformenAktivieren Sie die RunAs-Delegierung über SAF.
      <safAuthorization enableDelegation="true" />
    2. Für z/OS-PlattformenWeisen Sie die RunAs-Benutzeridentität der Anwendungsressource und -rolle zu. Dafür wird die RunAs-Benutzeridentität im Feld APPLDATA des entsprechenden SAF-Ressourcenprofils festgelegt. Das entsprechende SAF-Ressourcenprofil für eine bestimmte Anwendung und Rolle hat standardmäßig den Namen {Profilpräfix}.{Anwendungsname}.{Rollenname} in der SAF-Klasse EJBROLE.

      Dies ist dasselbe Ressourcenprofil, das auch bei der Liberty-SAF-Berechtigung für die Berechtigung von Benutzern für die Anwendung und Rolle verwendet wird. Der Name des Profils wird von der Konfiguration safRoleMapper verwaltet. Weitere Informationen zur Zuordnung von Anwendungs- und Rollennamen und SAF-Profilnamen finden Sie unter Zuordnung von Rollen zu SAF-Profilen steuern.

      Im Folgenden finden Sie einige RACF-Beispielbefehle für die Zuordnung von user5 als RunAs-Benutzer für die Anwendung myapp mit der Rolle Employee:
      RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ)
      RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5')
      SETROPTS GENERIC(EJBROLE) REFRESH
      SETROPTS RACLIST(EJBROLE) REFRESH

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_sec_runas.html