✒️ABAP Los chequeos de autorización
ABAP Los chequeos de autorización
Son objetos de SAP que nos permiten proteger los datos críticos del sistema de los accesos sin autorización. También se los conoce con el nombre de Authority Checks en inglés.
Un caso de uso típico de los chequeos de autorización es cuando se crea una nueva transacción de SAP y se desea restringir la utilización de la transacción a determinados usuarios de SAP. Una forma de realizar esto es mediante la implementación de chequeos de autorización.
Los chequeos de autorización se implementan en SAP a través de los objetos de autorización.
Tenemos la posibilidad de utilizar los objetos de autorización ya existentes en el sistema SAP o también podemos crear nuevos objetos de autorización.
Para administrar los objetos de autorización vamos a utilizar la transacción estándar SU21.
Los objetos de autorización se encuentran agrupados en clases que son las carpetas que visualizamos a la izquierda de la pantalla.
Dentro de las clases se encuentran los objetos de autorización.
Por ejemplo dentro de la clase BC_C encontramos el objeto de autorización SCARRID, que es el objeto de autorización para compañías aéreas, el cual tiene los campos CARRID y ACTVT.
El campo CARRID es la denominación breve de la compañía aérea y es parte de la clave de la tabla base de datos estándar de vuelos SFLIGHT.
Si hacemos clic en el botón de "Actividades permitidas" correspondiente al objeto de autorización, vamos a visualizar las actividades que se pueden hacer con este.
Para el objeto de autorización S_CARRID están permitidas las actividades 01 - Añadir o generar, 02 - Modificar y 03 - Visualizar.
Esto significa que si nuestro usuario de SAP tiene asignado el objeto de autorización S_CARRID, entonces si se utiliza el objeto de autorización previo a la generación, modificación o visualización del campo CARRID en cualquier progama SAP, vamos a pasar la validación del objeto de autorización.
La asignación del objeto de autorización S_CARRID a un usuario de SAP en particular, se hace a través de un rol mediante la transacción estándar SU01 solicitándolo al equipo de seguridad informática de SAP o a los administradores del sistema SAP BASIS.
Ahora bien los campos que forman parte del objeto de autorización, es decir los campos de autorización o también los llamados ámbitos de autorización deben existir previamente en SAP o también los podemos crear.
Para acceder a ellos vamos al menú Entorno / Campos autorización.
Aquí lo que vamos a visualizar son todos los campos existentes en el sistema SAP para verificar autorización.
Vamos a buscar el campo de autorización CARRID que e.s el que se utiliza en el objeto de autorización S_CARRID, para ellos hacemos clic en el icono buscar.
Transacción SU20: Podemos acceder a la pantalla de los campos para verificar autorización directamente a través de la transacción estándar SU20. Mediante esta tx vamos a crear, modificar, eliminar y visualizar los campos de autorización.
A continuación escribimos el nombre del campo de autorización que es CARRID y hacemos clic en el botón continuar.
Luego vamos a visualizar el campo de autorización CARRID para ello lo seleccionamos y hacemos clic en el botón visualizar.
Finalmente vamos a visualizar la información relativa al campo de autorización CARRID
2 | La Implementación de un Objeto de Autorización en un Programa ABAPLa sentencia AUTHORITY-CHECK se utiliza para validar si el usuario de SAP tiene autorización para acceder a un objeto en particular.
Siempre después de la ejecución de la sentencia AUTHORITY-CHECK debeos evaluar el contenido de la variable del sistema SY-SUBRC para determinar si el usuario tiene autorización o no la tiene.
Veamos a continuación mediante un ejemplo cómo implementar la sentencia AUTHORITY-CHECK en un programa. Para ello creamos un programa ABAP nuevo de test y hacemos clic en el botón Modelo.
En la ventana de diálogo que vemos a continuación seleccionamos AUTHORITY-CHECK escribimos el nombre del objeto de autorización que deseamos implementar, en este caso S_CARRID y hacemos clic en el botón de la tilde verde.
Luego se generará la plantilla del objeto de autorización.
Vamos a completar el código ABAP creando el parámetro P_CARRID en la pantalla de selección del programa, agregando la utilización del parámetro en el objeto de autorización y completando la actividad con '03'.
Ahora vamos a ejecutar el programa ABAP para probar la implementación del objeto de autorización.
Introducimos un valor en el campo de Compañía aérea de la pantalla de selección, escribimos /h en el campo de comandos para activar el modo debugging y hacemos clic en el icono de la tilde verde.
El sistema nos informa que se ha activado el modo debugging y ejecutamos el programa.
Después de ejecutarse la sentencia AUTHORITY-CHECK vemos que el contenido de la variable del sistema SY-SUBRC es cero por lo que el usuario tiene autorización.
Finalmente la salida por pantalla el programa muestra el mensaje "El usuario tiene autorización".
AUDIO ACLARATIVO: Existen tres módulos de funciones que nos permiten ejecutar una transacción saltando los chequeos de autorizaciones que posee, estos módulos de funciones son los siguientes: TRANSACTION_CALL_VIA_RFC pasando en el parámetro TCODE la transacción a ejecutar. El otro módulo de funciones es C160_TRANSACTION_CALL pasando en el parámetro I_TCODE la transacción a ejecutar. Por último tenemos RS_HDSYI_CALL_TC_VARIANT enviando en TCODE la transacción a ejecutar y además hay que desmarcar el flag de AUTHORITY CHECK.
3 | El Paso a Paso para le Creación de una Clase y un Objeto de Autorización
Para crear una nueva clase de objeto de autorización hacemos clic sobre el botón Crear de la barra de herramientas de la transacción SU21 y seleccionamos la opción Clase de objeto
A continuación vamos a completar la ventana de diálogo de creación de la clase con el nombre de la clase, un texto que describa el objetivo de la misma y hacemos clic en el botón grabar.
Finalmente habremos creado la clase.
Ahora para crear el objeto de autorización hacemos clic con el botón derecho del mouse sobre la clase y elegimos la opción Crear objeto de autorización.
Completamos el nombre del objeto, un texto para el nuevo objeto, los campos de autorización y grabamos.
 
 
 
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte