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:
- Aktivieren Sie die Liberty-Features appSecurity-2.0 und
servlet-3.0 in der Datei server.xml.
- 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 Liberty: Befehl "securityUtility". 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 im Abschnitt Java Servlets 3.0.