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:
- Schließen Sie die Liberty-Features appSecurity-2.0 und servlet-3.0 in die Datei server.xml ein.
- Konfigurieren Sie eine
Benutzerregistry für Ihre Anwendung.
- 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>
Ordnen 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.
Konfigurieren Sie die RunAs-Authentifizierung über SAF-Ressourcenprofile, die für z/OS-Benutzer spezifisch sind.
Aktivieren Sie die RunAs-Delegierung über SAF. <safAuthorization enableDelegation="true" />
Weisen 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