Gestión de autorizaciones

domingo, 31 de julio de 2011

Do NOTHING here!!!!

El sistema de autorizaciones SAP permite gestionar los permisos lectura y escritura sobre los elementos que todo usuario tiene asignados. 

El sistema se vehicula a través de papeles o roles (simples o compuestos) que agrupan una serie de objetos de autorización. Cada objeto de autorización incorpora permisos para un elemento de nuestro sistema. Cada uno de estos objetos será el elemento mínimo que nos permitirá conceder un permiso para ejecutar la tarea, sea ésta el acceso a una transacción, a un área de ventas, a un grupo de compras, etc.


El siguiente esquema muestra cómo actúa el sistema de autorizaciones y está extraído de la help de SAP:

Autorizaciones SAP
Concepto de autorización según la help de SAP

Es decir, cada transacción, cada sociedad, cada centro… en definitiva cada tarea a la cual tiene acceso un usuario se encuentra definida de un campo de autorización. Este campo se encuentra en un objeto de autorización, y éste a su vez en un rol. Todas las tareas a las cuales tiene permiso un usuario se definen como la suma de objetos de autorización que conforman uno o más roles.

Proyectos de autorización

Montar un proyecto de autorizaciones es complejo y conlleva el análisis de los trabajos que realiza cada usuario para asignar las autorizaciones que le son necesarias. En un proyecto de este tipo hay que:
  • Analizar las tareas que realiza cada usuario.
  • Agrupar usuarios según tareas comunes.
  • Crear roles que se ajusten a cada tarea. En mi opinión los roles deberían ser lo más específicos posibles.
  • Asociar las autorizaciones específicas a cada rol. Hay que poner especial atención en las transacciones que se incorporan en cada rol y procurar siempre que se pueda que la misma transacción y, en general, la misma autorización no se encuentra en diferentes roles.
  • Asignar los roles según las tareas que realiza cada usuario.
  • Dentro de cada usuario hacer un análisis de incompatibilidades de transacciones. Esto es determinar aquellas autorizaciones que juntas nunca las debe poseer el mismo usuario. Esto pasa a veces cuando el usuario tiene dos roles que incluyen la misma autorización. Por ejemplo, la persona que se encarga de hacer pedidos de cliente no debe también poseer autorización para facturarlos. En ese aspecto nos puede ayudar la información de la tabla SUKRI. Esta tabla se entrega vacía y es responsabilidad del cliente su llenado a través de la transacción SU98
  • Una vez detectadas las incompatibilidades, solucionarlas ajustando los roles existentes, creando nuevos roles o eliminando roles dentro del perfil de usuario.
Para mayor información sobre proyectos de autorización aconsejo la lectura de este artículo del blog de seguridadsap.

Asignar autorizaciones a transacciones.

Una vez montado el proyecto, ¿cómo  mantenemos y asignamos nuevas transacciones a cada rol?
  • Para empezar debemos saber qué autorización necesita el usuario. Para eso pediremos al usuario que tan pronto SAP le envíe el mensaje de “falta de autorización” ejecute la transacción SU53 que nos muestra el objeto de autorización necesario. Una vez tengamos esto podemos decidir por modificar el rol directamente o a través del usuario. En seguridadsap explican cómo hacerlo directamente (transacción PFCG). Pero en este post yo voy a mostrar los pasos para asignar autorización a través del usuario.
  • Entramos en el perfil del usuario y visualizamos la pestaña ‘Roles’. Aquí veremos todos los roles que tiene asignado el usuario.
Herramientas / Gestión / Actualización de usuarios / SU01 – Usuarios

Perfil usuario

  • Identificamos el rol a modificar y hacemos doble click sobre él.
  • Se nos abre una ventana para este rol. Nos movemos hacia la pestaña ‘Menú’ y lo modificamos añadiendo las transacciones a las que queremos dar autorización.

    Menú usuario
  • Nos movemos a la pestaña ‘Autorizaciones’ y pulsamos el botón ‘Modificar datos de autorización’.
  • Buscamos el objeto de autorización ‘S_TCODE’ dentro del árbol del rol. Para ello vamos a Tratar / Buscar. Pero si no lo encontramos o no es posible modificarlo, entonces podemos optar por añadir manualmente la transacción a través del botón ‘Manualmente’.

    S_TCODE Añadir transacción
  • Seleccionamos el objeto y añadimos nuestras transacciones.

    Añadir transacción
  • Grabamos y generamos (botón ‘generar’) el cambio.
Más información  en el capítulo 5 del libro Así es SAP R/3 de J.A. Hernández Muñoz y en la help de SAP

Imagen inicial | Lauren Manning

14 comentarios:

  1. Gracias por los aportes BlogdeSap, están muy bien explicados.

    Saludos

    ResponderEliminar
  2. Gracias a ti Nícol por tus comentarios.
    Óscar

    ResponderEliminar
  3. Estimado, yo tengo 1 transacion en la cual quiero validar el ingreso de datos entre 2 o mas usuarios, el problema es que en el campo proveedor, si un usuario esta usando un proveedor, que otros usuarios no puedan utilizarlos, es decir que si un usuario U001 esta usando el proveedor P001 y el usuario entra a la transaccion e ingrese el proveedor P001 le aparezca un mensaje "EL proveedor P001 esta siendo usado por el usuario U001".

    Hay alguna manera de hacer esto???

    Gracias.

    ResponderEliminar
    Respuestas
    1. Eso podrás hacerlo en un programa propio, pero veo difícil que puedas hacerlo en una transacción propietaria de SAP. Prueba a buscar alguna user exit. En todo caso, a través de la gestión de autorizaciones, no sabría cómo.

      Eliminar
  4. Hola Oscar,
    estoy creando un usuario sap con ciertos roles a traves de un software de administracion de identidades. Al implementar la creación en SAP recibo el siguiente mensaje

    SAP BAPI function error - SAP Function call to "BAPI_USER_ACTGROUPS_ASSIGN" failed with error type "E" and error message "Falta autorización de asignación de grupo de usuarios para roles"

    Los usuarios tiene en general Roles y Perfiles SAP, es correcto que solo informe los roles SAP de este usuario o es obligatorio tambien indicar los Perfiles?
    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Fernando. Hasta donde yo sé es suficiente asignar roles. Los perfiles los genera automáticamente SAP a partir de los roles.

      Eliminar
  5. Hola buen día, no se si me puedan ayudar, necesito ayuda en encontrar alguna autorización que bloquee la creación o configuración de layouts en general, que solo puedan crear su propia configuración para su propio usuario sin que afecte los demás.

    ResponderEliminar
    Respuestas
    1. Creo que puedes utilizar la autorización S_ALV_LAYO

      Eliminar
  6. Hola Oscar, gracias por la info
    Tengo una duda
    Un usuario quiere poder ver los pedidos de compra pertencientes a un centro independientemente de quien fuera el creador,
    es esa opción posible?
    Por donde debo tirar para guiarle?
    Gracias

    ResponderEliminar
    Respuestas
    1. ¿Te refieres a la transacción ME2C o parecidas?

      Eliminar
  7. Hola
    como puedo asginar los objetos sin que el el usuario tenga que entrar transacción por transacción y estar dependiendo de SU53?

    ResponderEliminar
    Respuestas
    1. Puedes hacerte una copia de alguno de los roles estándar que tiene SAP y trabajar a partir de él.

      Eliminar
  8. Es posible que otra persona desde su orďenador pueda hacer cambios en datos maestros de un interlocutor.

    ResponderEliminar
    Respuestas
    1. Sí, por supuesto que es posible si tiene autorizaciones para hacer cambios en el maestro de clientes. Ten en cuenta que en SAP el acceso a la información es compartido por todas las personas que tienen un usuario de SAP y que la información no se almacena en tu ordenador personal sino en servidores centrales.

      Eliminar