Configuration de l'authentification RunAs dans Liberty
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 :
Procédure
- 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.
- 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 :
Configurez l'authentification RunAs via des profils de ressource SAF, ce qui est spécifique aux utilisateurs z/OS.
Activez la délégation RunAs via SAF.
<safAuthorization enableDelegation="true" />
Affectez l'identité de l'utilisateur RunAs à la ressource et au rôle d'application. Pour ce faire, définissez l'identité de l'utilisateur RunAs dans la zone APPLDATA du profil de ressource SAF correspondant. Par défaut, le profil de ressource SAF correspondant à une application et un rôle donnés s'appelle {profilePrefix}.{appName}.{roleName} dans la classe SAF EJBROLE.
Il s'agit du même profil de ressource utilisé par Liberty SAF Authorization pour l'autorisation d'utilisateurs sur l'application et le rôle. Le nom du profil respecte la configuration safRoleMapper. Pour plus d'informations sur le mappage de noms de rôles et d'applications à des noms de profil SAF, voir Contrôle de la manière dont les rôles sont mappés aux profils SAF.
Voici quelques exemples de commandes RACF pour l'affectation de user5 en tant qu'utilisateur RunAs pour l'application myapp et le rôle Employee:RDEFINE EJBROLE BBGZDFLT.myapp.Employee UACC(READ) RALTER EJBROLE BBGZDFLT.myapp.Employee APPLDATA('user5') SETROPTS GENERIC(EJBROLE) REFRESH SETROPTS RACLIST(EJBROLE) REFRESH

Nom du fichier : twlp_sec_runas.html