Vous pouvez déléguer l'authentification à une autre identité en configurant la spécification RunAs pour Liberty.
Pourquoi et quand exécuter cette tâche
En mappant une identité d'utilisateur spécifique et un mot de passe facultatif
à un rôle RunAs, vous pouvez déléguer l'authentification à un utilisateur associé au rôle RunAs.
Pour configurer le rôle RunAs, vous devez activer les dispositifs Liberty appSecurity-2.0 et servlet-3.0 et
disposer d'un registre d'utilisateurs pour votre application.
Pour plus d'informations sur l'authentification RunAs, voir Authentification RunAs().
Pour configurer l'authentification RunAs, procédez comme suit :
- Activez les fonctions Liberty
appSecurity-2.0 et servlet-3.0 dans
le fichier server.xml.
- Configurez un registre d'utilisateurs pour
votre application.
- Spécifiez l'élément <run-as> dans le descripteur de
déploiement de votre application.
L'exemple suivant de fichier web.xml spécifie que les appels consécutifs doivent être délégués à l'utilisateur qui est mappé au rôle
Employee :
<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>
Mappez le rôle que vous avez spécifié à l'étape précédente à un utilisateur. Vous pouvez le faire soit dans ibm-application-bnd.xmi/xml, soit
dans le fichier de configuration server.xml. Dans l'élément
<run-as>, spécifiez un nom d'utilisateur. Si vous utilisez le fichier ibm-application-bnd.xml, le mot de passe est également requis ; si vous utilisez le fichier
server.xml, le mot de passe est facultatif. Si le mot de passe est requis, codez-le avec la commande securityUtility encode
dans le répertoire /bin. Pour plus d'informations sur la commande securityUtility, voir Commande securityUtility. L'exemple suivant utilise l'élément <run-as> dans l'élément
<application-bnd> du fichier server.xml, où le rôle
Employee a été mappé à l'utilisateur RunAs user5 :
<application-bnd>
<security-role name="Employee">
<user name="user1" />
<user name="user5" />
<run-as userid="user5" password="{xor}Lz4sLCgwLTs=" />
</security-role>
</application-bnd>
Remarque : - Etant donné que le mot de passe est facultatif dans le fichier server.xml, vous pouvez aussi utiliser le code suivant pour un utilisateur sans mot de passe :
<application-bnd>
<security-role name="Employee">
<user name="user1" />
<user name="user5" />
<run-as userid="user5" />
</security-role>
</application-bnd>
- Si vous spécifiez l'élément <application-bnd> dans le fichier
server.xml, votre application ne doit pas se trouver dans le dossier
dropins. Si vous laissez votre application dans le dossier dropins, vous devez désactiver la surveillance des applications en définissant le paramètre suivant dans votre fichier server.xml :
<applicationMonitor dropinsEnabled="false" />
Le nom d'utilisateur RunAs doit être unique et ne pas exister dans des comptes externes.
Si, par exemple, vous authentifiez un utilisateur auprès d'un fournisseur d'identités SAML
ou d'un fournisseur OpenID Connect, assurez-vous que le nom d'utilisateur RunAs
ne figure pas dans ces comptes externes.
Pour plus d'informations sur l'élément run-as,
consultez Java Servlets 3.0.