< 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: operator y manager. 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 operator permiso de solo lectura en todas las correlaciones. Asigne al usuario manager 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 xsAuth3.policy se encuentra en el directorio inicio_samples/security_extauth.
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=operator,O=acme,OU=OGSample" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
    principal javax.security.auth.x500.X500Principal
    "CN=manager,O=acme,OU=OGSample" {
    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 el permiso de correlación read al principal "CN=operator,O=acme,OU=OGSample". El usuario "CN=operator,O=acme,OU=OGSample" solo tiene permiso de lectura de correlación a la correlación Map1 de la instancia de la cuadrícula ObjectGrid.
  • La segunda sentencia de otorgamiento otorga todos los permisos de correlación al principal "CN=manager,O=acme,OU=OGSample". El usuario "CN=manager,O=acme,OU=OGSample" tiene todos los permisos a la correlación Map1 en la instancia de la cuadrícula ObjectGrid.

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_extauth/xsAuth3.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 manager 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. Para esta guía de aprendizaje, reinicie los servidores xs1 y xs2.
  2. Abra la aplicación EmployeeManagementWeb. En un navegador web, abra http://<host>:<puerto>/EmployeeManagermentWeb/management.jsp.
  3. Inicie sesión en la aplicación utilizando cualquier nombre de usuario y contraseña válidos.
  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. Edite el archivo inicio_samples/security_extauth/client3.props. Cambie el valor de la propiedad credentialGeneratorProps de manager manager1 a operator operator1. Después de editar el archivo, el servlet utiliza el nombre de usuario "operator" y la contraseña "operator1" para la autenticación en los servidores WebSphere eXtreme Scale.
  7. Reinicie el clúster appCluster para que se apliquen los cambios en el archivo inicio_samples/security_extauth/client3.props.
  8. Intente visualizar un empleado. Pulse Visualizar un empleado y busque la dirección de correo electrónico authemp1@acme.com. Se visualizará el empleado.
  9. 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.
    A continuación se muestra el texto detallado 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 operator 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 >