Concepto de Autorización
Comprender el concepto de autorización en SAP requiere el conocimiento del rol y perfil de autorización en el registro maestro de usuario.
Las autorizaciones de los usuarios son creadas usando roles y perfiles. Los administradores crean los roles y el sistema provee el soporte para la creación de las autorizaciones asociadas.
Una Autorización es un permiso para realizar cierta acción en un sistema SAP.
Una autorización siempre se asocia con solo un objeto de autorización y está formada por el valor para los campos del objeto de autorización.
Las acciones y los accesos a los datos están protegidas a través de los objetos de autorización en el sistema SAP y los objetos de autorización se encuentran en el sistema SAP:
Para facilitar un poco la organización, los objetos de autorización están divididos en diferentes clases.
Los objetos de autorización permiten verificaciones complejas que involucran multiples condiciones que permiten a un usuario realizar una acción. Las condiciones son especificadas en los campos de autorización para el objeto de autorización y son evaluados mediante la condición lógica AND, es decir, que se deben cumplir todas las condiciones para que la verificación de autorización sea exitosa.
Los objetos de autorización y los campos que lo componen tienen nombres técnicos descriptivos.
Un objeto de autorización puede incluir a 10 campos de autorización.
Pueden existir múltiples autorizaciones para un objeto de autorización. Algunas ya vienen incluidas en el sistema SAP, pero también puede tener muchas creadas específicamente por requerimiento de los clientes.
Cuando un usuario se loguea a un cliente de un sistema SAP, sus autorizaciones son cargadas en el contexto de usuario. El contexto de usuario se encuentro en el BUFFER del servidor de aplicaciones, y se puede consultar desde la transacción SU56.
La transacción SU56 es utilizada para monitorear el número de objetos que están en el BUFFER referente a los roles de autorización y perfiles del usuario.
Cuando un usuario llama a una transacción, el sistema verifica si el usuario tiene la autorización necesaria en el contexto de usuario para acceder a la transacción.
Las verificaciones de autorización utilizan las autorizaciones existentes en el contexto de usuario, por lo que si se asignan nuevas autorizaciones al usuario, podría ser necesario que se loguease nuevamente al sistema SAP para poder utilizar estas nuevas autorizaciones.
Si la verificación de autorización es exitosa, el sistema muestra la pantalla inicial de la transacción. Cuando el usuario realiza una acción , los datos son enviado dispatcher el cual los pasa al work process para que ejecute el procesamiento.
Las verificaciones de autorización (AUTHORITY-CHECK) que son realizadas durante la ejecución en el work process son programadas por los desarrolladores ABAP dentro del código para proteger los datos y las acciones que van a realizar.
Si se tienen todas las autorizaciones requeridas para la autorización de verificación (código de retorno = 0), los datos y las acciones son procesados. Si falta alguna de las autorizaciones requeridas, el procesamiento no se realiza y el usuario recive un mensaje informando de que las autorizaciones son insuficientes.
Esto se controla mediante el código de retorno, el cual es diferente de cero si no se tiene autorización.
Todas las autorizaciones son permisos, no existen autorizaciones para prohibir. En SAP todas las autorizaciones que no estén explícitamente permitidas, están automáticamente prohibidas.
Mantenimiento de roles:
La Transacción PFCG se utiliza para el mantenimiento de roles. Simplifica la creación de autorizaciones y sus respectivas asignaciones a los usuarios.
Es una de las más usadas en cuanto a seguridad del sistema dado que mediante la misma se crean los roles con las autorizaciones que luego serán asignadas a los usuarios.
Un rol puede ser asignado a varios usuarios y un cambio en el rol afecta a todos estos usuarios. Los usuarios pueden ser asignados a más de un rol. El mantenimiento de roles crea las autorizaciones con los valores de campos requeridos para los objetos de autorización que son verificados en la transacción elegida.
El mantenimiento de roles automáticamente crea las autorizaciones que están asociadas con las transacciones especificadas en el árbol de menú. De todas maneras todos los valores de autorización deben ser verificados manualmente y ajustados si fuese necesario para que concuerden con los requerimientos y permisos que se deben otorgar con el rol.
En la pantalla display authorization data podemos ver y modificar el contenido de las autorizaciones, es decir, los valores propuestos para los campos de los objetos autorización.
El significado de los indicadores es el siguiente:
- Luz Verde: El objeto de autorización tiene un valor propuesto para cada uno de los campos.
- Luz Amarilla: El objeto de autorización necesita mantenimiento manual al menos para uno de los campos.
- Luz Roja: Los niveles organizacionales no están definidos.
Algunos campos aparecen en muchas autorizaciones y se les denomina NIVELES ORGANIZACIONALES. Si editamos una entrada en el nivel organizacional (Botón Organizational Levels), los cambios afectarán a todos los objetos de autorización que los contiene.
Niveles Organizacionales. son campos determinados por SAP en el Concepto de Autorización que se refieren a la estructura de la compañía. Estos campos aparecen en la mayoría de las autorizaciones. Por lo tanto dentro de un rol estos campos pueden aparecer muchas veces. El botón Organizational levels. En la transacción PFCG facilita su mantenimiento.
Una vez que han sido mantenidas las autorizaciones, el perfil de autorización puede ser generado con el botón Generate. Las autorizaciones se combinan en un perfil. Los perfiles deben ingresarse en los registros maestros de los usuarios, lo que se denomina Maestros de Usuarios (User Master Record Comparission)
La transacción SU01 para el mantenimiento de usuarios, al igual que la transacción PFCG permite la asignación de usuarios a roles. Los usuarios pueden recibir más de un rol.
La asignación de roles a los usuarios no otorga automáticamente las correspondientes autorizaciones a los usuarios. Para asignar las autorizaciones, es necesario realizar una comparación de registros de usuarios mediante la cual los perfiles de los roles son insertados en el registro maestro de usuario.
Una comparación de registros maestros de usuarios, determina si los perfiles de autorización deben ser agregados o eliminados del usuario basándose en la asignación de roles para este. Durante la comparación se agregaran perfiles al maestro de usuario si nuevos roles son agregados.
Si la asignación de roles es removida manualmente o por una fecha de vencimiento del rol, son eliminados del registro maestro de usuario.
Si múltiples asignaciones de roles va a ser actualizada, puedes realizar una comparación en la transacción PFCG seleccionando Utilies ->Mass comparison, o llamando Transacción PFUD. Se pueden seleccionar los roles que se deseen o actualizar todas las asignaciones con el carácter ( * ) .
También se puede activar una comparación de registros maestros de usuarios periódicamente si seleccionas Utilities->Mass comparision. Seleccionar opción Schedule o Check job for full reconciliation. El sistema mostrara una ventana de búsqueda para el job de background PFCG_TIME_DEPENDENCY. Si no encuentra el job, tenemos la opción de crear uno. El valor por default es que todos los registros maestros de usuarios serán comparados una vez por día.
Es importante planear con anticipación los roles cuando estamos frente a un proyecto a largo plazo ya que generalmente se dejan al último y complica la salida a productivo, lo que provoca que se liberen a los usuarios con muchos permisos o bien se les nieguen y no puedan operar. Lo correcto es crear los roles en el desarrollo, importarlos al ambiente de testing, pasarlos a un grupo de funcionales que conozcan el negocio y los prueben para ver si acceden a todas las operaciones que están ligadas a cada rol. Esta tarea suele ser tediosa pero debe realizarse de manera organizada así evitaremos que los usuarios entren a transacciones y datos no autorizados. Nosotros como administradores debemos de llevar una planilla con todos los roles creados y las asignaciones que tienen a cada uno de los usuarios, para que sea más fácil el mantenimiento de los usuarios que no es una tarea menor.