Posts Tagged ‘Transacción’

Creación de un rol – ejemplo

Thursday, April 23rd, 2009

La idea en este post es entender un proceso simple de creación de un rol,  cómo asignar una transacción a un usuario, los objetos de autorización correspondientes, etc.

Para hacer esto vamos a crear un ejemplo simple en donde vamos a crear un rol con permisos para administrar usuarios en SAP R/3.

1- Lo primero… Darle un nombre, los nombres de todos lo objetos personalizados o creados por el usuario final en SAP comienzan con la letra Z de manera estándar, la realidad es que podemos utilizar cualquier letra pero agrupar todo tras la Z es una buena manera de identificar los roles propios en caso de tener que realizar un upgrade o por cualquier motivo diferenciarlos del resto, por eso en nuestro caso el rol se llamará Z:PRUEBA (podría haber sido por ejemplo ZUSERS o Z_ABM_USUARIOS, etc). Hacemos click en el botón de Rol Simple y pasamos a la siguiente pantalla:

image

2- Una vez en la próxima ventana podemos asignar una descripción al rol y proseguir a la pestaña de “Menú”, en donde haciendo click en el botón “Transacción” incorporaremos una transacción al Rol y por consiguiente a su menú:

image

3- Una vez hecho el click nos disponemos a escribir el nombre de la transacción que queremos incorporar, también podemos hacer esto desde las opciones de Tomar Menús las cuales incorporaran las transacciones desde los menús estándar de SAP, utilizando su estructura predefinida, pero eso se los dejo para que experimenten ustedes.

image

4- Una vez incorporada la transacción al menú podemos ir a la pestaña de autorizaciones:

image

5- Una vez en el menú de autorizaciones hacemos click en Modificar Autorizaciones, y accederemos a una nueva pantalla, nos preguntará si queremos grabar el rol, esta acción es necesaria para poder tratar los objetos de autorización del mismo con lo cual contestaremos que si. La otra alternativa sería utilizar el “diskette” que se encuentra en la barra superior para grabar nuestro trabaja hasta el momento.

image

6- Una vez estemos en la nueva pantalla (a veces demora),  podemos ver los objetos de autorización agrupados por tipo de objeto.

image

7- Una vez que hacemos click en el símbolo [+] podemos ver el nombre del objeto de autorización (en este caso el primero es S_TCODE) y una breve descripción del mismo. Haciendo otra vez click en el [+] podemos ver los campos y sus valores. En este caso vemos el campo TCD y el valor SU01 que es la transacción que anteriormente agregamos en el menú y con la que automáticamente SAP carga el objeto. Resumiendo las transacciones que agregamos en el menú automáticamente son incluidas dentro de los valores del objeto S_TCODE.

image

8-Debajo de este objeto podemos encontrar 3 grupos más con sus respectivos objetos. Estos objetos de autorización son los que la transacción SU01 verifica en tiempo de ejecución (son los definidos en la transacción SU24, puede que existan más o menos chequeos que los aquí establecidos).

image

9- Tenemos que definir todos los valores de los objetos de manera de hacerlos acorde a la funcionalidad a otorgar. Por ejemplo si queremos brindar solo la posibilidad de visualizar usuarios deberíamos concentrarnos en los objetos S_ADDRESS1 (poder visualizar datos de dirección del usuario) y S_USER_GRP (permisos por grupo de usuarios) definiéndolos con la actividad 03 (visualizar) y la definición del grupo correspondiente o “*” para todos los grupos y el tipo de dirección Bc01.

image

10- Una vez realizadas todas las modificaciones se deben grabar las modificaciones (icono de diskette en la barra superior) y generar los perfiles de autorización correspondientes (ícono generar al lado del tacho de basura)

image image

11- Los otros objetos de autorización no brindan permisos adicionales en el caso de solo querer visualizar los datos de un usuario, pueden hacer la prueba y efectivamente van a ser capaces de usar la transacción SU01, pero hay funcionalidades adicionales que solo pueden ser brindados por estos otros, por ejemplo ver los permisos del usuario (roles) con los objetos S_USER_AGR, S_USER_AUT, S_USER_PRO, etc.

12- Una vez creado el rol puede definirse los usuarios que tendrán asignado el mismo desde dentro de la misma transacción PFCG o el proceso inverso desde la transacción SU01 (ingresando desde el usuario y definiendo los roles para el mismo. Una vez realizada la modificación en la PFCG se debe ejecutar la comparación de usuarios (botón) para que se actualicen efectivamente los permisos en los buffers de usuarios.

image

13- Si fuera el caso de requerir la funcionalidad de bloquear/desbloquear usuarios, por ejemplo, se otorgaría en el mismo objeto S_USER_GRP la actividad 05 y automáticamente una vez generado de nuevo el rol (y en ocasiones una vez que se comparen los roles) el usuario tendría el permiso a realizar esa acción.

El presente actúa a modo de ejemplo y podría tener muchas modificaciones para ser un rol de utilidad, pero la idea es entender como es el proceso de creación de un rol, y que el mismo aplica a roles más complejos y transacciones tanto de Base como de Negocio.

VN:F [1.8.2_1042]
Rating: 4.8/5 (5 votes cast)
VN:F [1.8.2_1042]
Rating: +1 (from 1 vote)

Tips: Bloqueo de Transacciones

Wednesday, April 22nd, 2009

Entre tantas opciones de seguridad que tenemos en la herramienta SAP ECC nos encontramos que tenemos la posibilidad de bloquear el uso de una transacción para todos los usuarios independientemente de sus autorizaciones (siempre y cuando no tengan autorización para desactivar el bloqueo), a través de la transacción SM01, en la misma podemos indicar el código de transacción a bloquear y a partir de confirmar el mismo no se permitirá la ejecución de esa transacción por ningún usuario hasta que no se vuelva a desbloquear.

Esta opción es útil para impedir la ejecución de transacciones que consideremos críticas y no querramos que en ese ambiente nadie ejecute, o tal vez para impedir temporalmente la ejecución de una transacción específica (ocurre durante la ejecución de algunos procesos en batch, o actualizaciones del sistema).

VN:F [1.8.2_1042]
Rating: 0.0/5 (0 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)

¿Cómo funciona la seguridad en SAP?

Monday, March 2nd, 2009

La seguridad de SAP es algo compleja, eso creo que ya lo dijimos, pero todas las cosas pueden ser complejas hasta que las entendemos. En este post vamos a tratar de lograr eso.

Algunos temas los empezamos a tratar en posts anteriores, pero no el proceso completo que pasamos a relatar.

1- El usuario ingresa en SAP R/3 y se le permite su acceso

2- Se cargan desde el maestro de usuarios los roles que el usuario posee (tabla AGR_USERS), a partir de los mismos se obtienen los perfiles que tienen las autorizaciones para esos roles (AGR_1016). Aunque es altamente probable que el sistema SAP directamente miré la tabla UST04 (usuarios y perfiles). En caso de perfiles compuestos estos se encuentran definidos en la tabla UST10C. A su vez la relación entre autorización y perfiles está en la UST10S, y por último los valores que se le otorgan a los objetos de autorización se encuentran en la tabla UST12 (probablemente SAP internamente utilice algunas otras tablas o no haga un uso de todas estas, pero es interesante repasarlo porque puede ser de utilidad para ustedes).

3-  Esta información recopilada es almacenada en el buffer del usuario, el cual tiene para cada usuario todas las autorizaciones que el mismo posee cuando está logueado en el sistema, esta información puede consultarse para el propio usuario o para otro distinto mediante la transacción SU56 o si se necesita un mayor análisis en la tabla USRBF2 (y vínculos a la tabla UST12).

4- A partir de este momento el usuario ya tiene acceso al sistema y todos sus permisos están cargados. El sistema se encuentra a la espera de una acción por parte del mismo.

5- El usuario decide ejecutar una transacción, por ejemplo la FB02 (modificar documento contable).

6- SAP verifica SIEMPRE que el usuario en su buffer posea el permiso para la transacción. Para esto chequea que el objeto de autorización S_TCODE posea el campo TCD y entre sus valores se encuentre el FB02. Este chequeo no depende de la transacción si no que se ejecuta SIEMPRE que una es llamada.

7- Si se posee el valor FB02 se permite la ejecución del código de la transacción y se procede con el mismo, en caso negativo se rechaza automáticamente la solicitud informándole al usuario.

8- Dependiendo de la transacción a ejecutar, la misma puede chequear como primera instancia (antes de la ejecución del código) que se posea un objeto de autorización con un valor determinado para más de un campo. Este objeto, campos y valores se especifican en la definición de la misma a través de la transacción SE93 o la tabla TSTCA donde también pueden consultarse. Este chequeo actúa igual que el del código de transacción y se realiza previo a la ejecución del programa correspondiente a la transacción. En el caso de la transacción FB02 se chequea el objeto F_BKPF_BUK y la actividad (campo ACTVT) con valor 02 (modificación), el campo Sociedad (BUKRS) en esta instancia, no se verifica ya que el valor de chequeo está en blanco). Cabe destacar que no todas las transacciones realizan este chequeo inicial.

9- A partir de este momento se inicia la ejecución del código.

10- El código ABAP de la transacción se ejecuta hasta que dentro del mismo aparezca la instrucción AUTHORITY_CHECK.

11- A través de esta instrucción el programa verifica que los valores especificados para cada campo en la misma se encuentren en el buffer del usuario que la ejecuta. En caso de tenerlos se permite que se continúe la transacción y en caso de ausencia no se permite continuar o se bloquea el acceso a determinada información. Es a decisión del programador de la transacción en que momento se realiza el chequeo, a veces se verifica cuando uno ingresa un valor (por ejemplo la sociedad en la FB02) en donde se verifica el mismo objeto que antes F_BKPF_BUK, pero pidiendo la actividad 02 (modificar) y la sociedad para la cual va a realizarse la modificación (BUKRS).

NOTA 1: Tengamos que cuenta que los campos de un objeto de autorización siempre se verifican en conjunto, quiero decir que la actividad 02 (modificar) solo autoriza a la Sociedad que se encuentra dentro de la misma autorización. Podría ocurrir que dentro de un mismo rol tengamos permiso para modificar una Sociedad pero solo para Visualizar otra. Por eso es importante tener en cuenta que estas son verificadas “en bloque”

NOTA 2: También es importante destacar que es posible y hasta habitual que un usuario tenga más de un ROL asignado, en este caso se produce lo que se conoce como “suma de autorizaciones” y esto quiere decir que los valores solicitados de objetos de autorización pueden encontrarse en cualquiera de los roles que el usuario tiene asignado. Ejemplo: Si en el rol 1 el usuario tiene el acceso a la transacción FB02 (objeto S_TCODE), y en el objeto F_BKPF_BUK la actividad con valor 03 y la sociedad en 0001, pero el programa solicite 02 y 0001 el usuario no podría ingresar a la transacción. Ahora si agregamos un segundo rol al usuario sin ningún objeto S_TCODE pero con el objeto F_BKPF_BUK con valor de actividad 02 y sociedad 0001 el usuario ahora si va a poder tener acceso a ejecutar esta transacción (el primer rol le da el S_TCODE con FB02 y el segundo el F_BKPF_BUK con actividad 02)

Por último cabe destacar que la transacción FB02 necesita de otros objetos de autorización para ser ejecutada pero el nombrado aquí fue solo a modo de ejemplo. En un próximo post veremos un ejemplo completo.

VN:F [1.8.2_1042]
Rating: 4.8/5 (5 votes cast)
VN:F [1.8.2_1042]
Rating: +1 (from 1 vote)

Algunas Transacciones Importantes

Monday, February 2nd, 2009

Por ahora vamos a ir detallando algunas transacciones que pueden ser importantes para quien trabaje administrando o analizando la seguridad,  más adelante vamos a incorporar otras siguiendo algún criterio de criticidad de las mismas, pero por lo pronto:

SU01 = Sirve como ABM de Usuarios, desde este transacción se da el alta a nuevos usuarios, se los puede borrar definitivamente, se pueden modificar sus datos, bloquearlos, asignarles Roles, entre varias actividades más

SU01D = Igual a la anterior pero solo para visualización de datos de usuarios.

SU10 = Esta transacción sirve para hacer modificaciones en masa de usuarios, desde la misma pueden modificarse campos en los mismos, borrar un conjunto de roles o asignar en masa roles a usuarios. Hay que tener mucha precaución al trabajar con la misma por el impacto que puede ocasionar.

PFCG = Esta transacción sirve como ABM de Roles (Papeles o Grupos de Autorización), dentro de la misma se crean nuevos roles, se modifican existentes, o se los borra, también desde esta transacción con los permisos adecuados uno puede asignar estos roles a los usuarios. Al trabajar con roles hay que tener en cuenta que si erroneamente borramos uno NO HAY una papelera de reciclaje o similar.

SU02 = Modificación/Creación de Perfiles de Usuario. Si bien está cuasi-obsoleta todavía pueden crearse roles y asignar los mismos a los usuarios con lo cual sigue siendo importante.

SU1, SU2, SU3 =  Actualización de Datos propios del usuario (incluida la contraseña). Aquí el usuario puede modificar sus propios datos personales, en versiones anteriores de SAP (4.6 o 4.7) o en las más nuevas dependiendo como esté configurado el sistema si se da acceso libre a modificar su propia contraseña es posible que un usuario cambie más de una vez la suya en un mismo día para evitar tener que hacer una modificación por caducidad de la misma (precaución)

SUIM = Sistema de información de Usuarios. Esta transacción va a merecer no solo un post entero, si no que probablemente más de uno para explicarla en su totalidad. Pero básicamente podemos decir que es el lugar desde donde se pueden realizar consultas sobre los permisos de los usuarios con diferentes parámetros. Es de extrema utilidad para el usuario que revisa o analiza la seguridad de un sistema SAP.

SU53 = Permite ver el último error de autorización que tuvo el usuario en el ambiente SAP (u otro usuario que previamente hubiera ejecutado la SU53). Es de suma utilidad para el análisis de errores de seguridad y una herramienta muy conocido por los administradores de seguridad. Probablemente un post entero sea dedicado a la gestión de errores de autorización.

Estas son algunas transacciones básicas… más adelante seguiremos viendo algunas otras.

VN:F [1.8.2_1042]
Rating: 4.0/5 (2 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 2 votes)

La seguridad en SAP – Roles y permisos

Friday, January 23rd, 2009

Tema complicado si los hay… explicar como funciona la seguridad en SAP… trataré de hacer lo más simple posible algo lo suficientemente complicado.

Una vez que accedimos a SAP si nuestro usuario no tiene efectivamente ningún tipo de permiso al sistema (solo el acceso) no vamos a poder realizar ninguna actividad sobre el mismo.

La manera de asignar estos permisos es a través de Roles (alias Papeles, alias Grupos de Autorización).

Los Roles, son un medio para permitir que un usuario acceda a una transacción o pueda ejecutar una función determinada dentro de alguna transacción.

Para entender el concepto hace falta explicar el concepto de Objeto de Autorización: Es un objeto que nos brinda SAP como marco para crear Autorizaciones y es la unidad fundamental de la seguridad en SAP.

Un Objeto de Autorización tiene el siguiente formato:

Nombre del Objeto: S_TCODE (Permiso de acceso a las transacciones)
Campo: TCD (Código de Transacción)

Este es el objeto por excelencia (S_TCODE), en donde uno determina las transacciones a las que el usuario debería tener acceso. Para ser más claros:

Paso 1: El usuario pfernandez necesita acceder a las transacciones SU01 (ABM de Usuarios) y SU10 (Gestión de Usuarios en Lote)

Paso 2: Ante la necesidad se crea un ROL de nombre Z:GESTION_USUARIOS al cual se le asignan las dos transacciones en el menú a través de la transacción PFCG.

Paso 3: Automáticamente SAP crea una autorización para el rol Z:GESTION_USUARIOS para el objeto S_TCODE, al que le agrega en el campo TCD los valores: SU01 y SU10.

Paso 4: Se asigna al usuario pfernandez el rol Z:GESTION_USUARIOS dándole a través del mismo el acceso a las transacciones SU01 y SU10

Paso 5: El usuario  pfernandez, accede al sistema con su usuario y contraseña y una vez dentro, ejecuta la transacción SU01.

Paso 6: SAP analiza el pedido de ejecución de la transacción SU01, y se fija que entre los permisos de pfernandez se encuentre el objeto de autorización S_TCODE con el campo TCD con el valor SU01. Si es correcto permite el acceso a la transacción.

Cabe destacar que el control del objeto S_TCODE está implícito en SAP y se realiza siempre que se llama a una transacción, por eso el objeto S_TCODE es tan “popular” dentro de la segurida SAP

Esta explicación es a fines educativos solamente, más adelante vamos a ver que la generación de un rol, es mucho más compleja que los pasos seguidos anteriormente, pero da una idea general de como es el proceso.

También recuerden que según la versión de SAP con la que trabajemos a veces pueden llamarse Roles, o pueden ser Grupos de Autorización o en algún lugar también pueden ser Papeles.

Una explicación sobre perfiles la podemos ver en el siguiente post

En un próximo post también, vamos a explicar como es el proceso de autorización completo y con ejemplos de mayor complejidad.

Ejemplo en SAP del uso de la transacción PFCG

VN:F [1.8.2_1042]
Rating: 4.5/5 (2 votes cast)
VN:F [1.8.2_1042]
Rating: +1 (from 1 vote)

¿Qué es una transacción? ¿Cómo se trabaja con SAP?

Wednesday, January 21st, 2009

En entradas anteriores de este blog ya vimos cómo es un landscape típico de SAP, y que es un mandante. Todos estos conceptos pueden ampliarse y procuraremos hacerlo en sucesivos posts o ante alguna duda de ustedes, pero mientras tanto sigamos avanzando.

Para ingresar al sistema hacemos click sobre el SAP Frontend o más comunmente conocido como SAP Logon, este va a ser el encargado de traer SAP a nuestro escritorio. Técnicamente hablando es la capa de presentación de la herramienta.

Ahora una vez dentro de la herramienta nuestra manera de interactuar con la aplicación es a través de transacciones. Las mismas son básicamente nombres que intentan ser mnemotécnicos para llamar a programas o funcionalidades. Hablando más simple quiero decir:

- Existe una transacción que se llama FB02 que por ejemplo permite modificar un documento contable.

- Otra por ejemplo se llama SU01 que permite dar de alta un usuario en el sistema

Desde la aplicación vamos a disponer de un menú donde podemos acceder a las transacciones agrupadas en carpetas por funcionalidad, o vamos a poder ejecutar directamente desde una caja de texto en la parte superior izquierda invocándola por nombre de transacción.

Entonces a modo de introducción tendría que quedar claro que las transacciones son el medio por el que los usuarios finales interactuan con el sistema y a través de las cuales realizan sus diversas actividade en el sistema, como ser Aprobar una compra (funcional), Crear un nuevo usuario (Seguridad) o Administrar el desempeño del equipo (Basis).

Como primer conclusión podemos decir que “en principio” si queremos restringir el acceso a una funcionalidad tenemos que empezar restringiendo una transacción.

Más adelante vamos a ver que esto es mucho más complicado de lo que inicialmente suena, pero por ahora es bueno tener esa idea instalada.

En un próximo post seguiremos profundizando en el tema.

VN:F [1.8.2_1042]
Rating: 4.0/5 (3 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)