< Anterior | Siguiente >

Lección 4.2: Habilitar autorización basada en usuario

En el módulo de autenticación de esta guía de aprendizaje, ha creado dos usuarios: operator1 y admin1. Puede asignar diversos permisos a estos usuarios con autorización JAAS (Java Authentication and Authorization Service).

Definición de la política de autorización JAAS (Java Authentication and Authorization Service) mediante principales de usuario

Puede asignar permisos a los usuarios que ha creado anteriormente. Asigne al usuario operator1 permisos de lectura solo en todas las correlaciones. Asigne al usuario admin1 todos los permisos. Utilice el archivo de política de autorización JAAS para otorgar permisos a los principales.
Edite el archivo de autorización JAAS. El archivo xsAuth2.policy se encuentra en el directorio inicio_samples/security:
grant codebase http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction
Principal com.ibm.ws.security.common.auth.WSPrincipalImpl "defaultWIMFileBasedRealm/operator1" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction
Principal com.ibm.ws.security.common.auth.WSPrincipalImpl "defaultWIMFileBasedRealm/admin1" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
En este archivo, la base de código http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction es un URL reservado especialmente para ObjectGrid. Todos los permisos de ObjectGrid otorgados a los principales deben utilizar esta base de código especial. Se asignan los permisos siguientes a este archivo:
  • La primera sentencia de otorgamiento otorga permiso de correlación read al principal operator1. El usuario operator1 solo tiene permiso de lectura de correlación en la correlación Map1 de la instancia de la cuadrícula ObjectGrid.
  • La segunda sentencia de otorgamiento otorga permiso a todas las correlaciones al principal admin1. El usuario admin1 tiene todos los permisos en la correlación Map1 de la instancia de la cuadrícula ObjectGrid.
  • El nombre de principal es defaultWIMFileBasedRealm/operator1, pero no Operator1. WebSphere Application Server añade automáticamente el nombre de reino al nombre de principal cuando se utilizan repositorios federados como registro de cuentas de usuario. Ajuste este valor, si es necesario.

Definición del archivo de política de autorización JAAS mediante las propiedades de JVM

Utilice los pasos siguientes para establecer propiedades de JVM para los servidores xs1 y xs2, que están en el clúster xsCluster. Si utiliza una topología distinta de la topología de ejemplo que se utiliza en esta guía de aprendizaje, establezca el archivo en todos sus servidores de contenedor.
  1. En la consola administrativa, pulse Servidores > Servidores de aplicaciones > nombre_servidor > Java y gestión de procesos > Definición de proceso > Máquina virtual Java.
  2. Añada los siguientes argumentos de JVM genéricos:
    -Djava.security.auth.policy=inicio_samples/security/xsAuth2.policy
  3. Pulse Aceptar y guarde los cambios.

Ejecución de la aplicación de ejemplo para probar la autorización

Puede utilizar la aplicación de ejemplo para probar los valores de autorización. El usuario administrador continúa teniendo todos los permisos en la correlación Map1, incluida la visualización y adición de empleados. El usuario operator solo debe poder visualizar los empleados, ya que a dicho usuario solo se ha asignado permiso de lectura.
  1. Reinicie todos los servidores de aplicaciones que ejecutan servidores de contenedor.
  2. Abra la aplicación EmployeeManagementWeb. En un navegador web, abra http://<host>:<puerto>/EmployeeManagermentWeb/management.jsp.
  3. Inicie la sesión en la aplicación como administrador. Utilice el nombre de usuario admin1 y la contraseña admin1.
  4. Intente visualizar un empleado. Pulse Visualizar un empleado y busque la dirección de correo electrónico authemp1@acme.com. Se visualiza un mensaje que indica que no se puede encontrar el usuario.
  5. Añada un empleado. Pulse Añadir un empleado. Añada el correo electrónico authemp1@acme.com, el nombre Joe y el apellido Doe. Pulse Someter. Se visualiza un mensaje que indica que se ha añadido el empleado.
  6. Inicie la sesión como el usuario operator. Abra una segunda ventana de navegador web y abra http://<host>:<puerto>/EmployeeManagermentWeb/management.jsp. Utilice el nombre de usuario operator1 y la contraseña operator1.
  7. Intente visualizar un empleado. Pulse Visualizar un empleado y busque la dirección de correo electrónico authemp1@acme.com. Se visualizará el empleado.
  8. Añada un empleado. Pulse Añadir un empleado. Añada el correo electrónico authemp2@acme.com, el nombre Joe y el apellido Doe. Pulse Someter. Se visualiza el mensaje siguiente:
    Se produce una excepción al Añadir el empleado. Consulte a continuación para ver mensajes de
    excepción detallados.
    La siguiente excepción se encuentra en la cadena de la excepción:
    java.security.AccessControlException: Acceso denegado
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    Este mensaje se visualiza porque el usuario operator1 no tiene permiso para insertar datos en la correlación Map1.
Si está ejecutando una versión de WebSphere Application Server anterior a la versión 7.0.0.11, es posible que vea un error java.lang.StackOverflowError en el servidor de contenedor. Este error se debe a un problema de IBM Developer Kit. El problema se ha solucionado en el IBM Developer Kit proporcionado con WebSphere Application Server Versión 7.0.0.11 y posterior.

Punto de comprobación de la lección

En esta lección, ha configurado la autorización asignando permisos a usuarios específicos.

< Anterior | Siguiente >