Posts Tagged ‘autorización’

Objetos de Autorización: Transporte

Wednesday, March 25th, 2009

En este post vamos a describir los objetos de autorización relacionados con el sistema de transporte de SAP y dar una breve descripción de los mismos y sus posibilidades de configuración.

Principalmente los objetos de autorización que más nos van a interesar son:

S_TRANSPRT
Permite realizar tareas de creación, administración y visualización de órdenes de transporte, usualmente poseen distintos permisos al mismo los desarrolladores, parametrizadores, líderes, y administradores de transporte.

Los campos son Actividad (ACTVT) y Request Type (TTYPE) en base a los cuales podemos definir distintas actividades a realizar dependiendo del tipo de Orden (Request)

Las actividades son:

    01:  Agregar o Crear
    02: Modificar
    03: Visualizar
    05: Bloquear
    06: Borrar
    43: Libera
    50: Cambiar el mandante de origen
    60: Importar
    65: Reorganizar
    75: Liberar otras órdenes
    90: Cambiar Dueño

Los principales tipos de órden pueden ser (TTYPE):

    CLCP: Copia de Cliente
    CUST
    : Orden de Customizing
    DLOC
    : Orden local
    DTRA
    : Orden transportable
    MOVE
    : Relocation transports (all three types)
    TASK
    : Tareas
    TRAN
    : Transporte de Copias

De esta manera, si queremos definir solo permisos de visualización sobre las órdenes podemos establecer la actividad en 03 para todos los tipos de órden.

O configurar solo la modificación de tareas, o la liberación de las órdenes de customizing (CUST) o workbench (DTRA) de manera de que un rol solo pueda utilizar tareas previamente creadas y asignadas y el otro tenga el permiso de generar las órdenes y tareas, o reasignarlas.

El otro objeto que entra en juego en la administración es el S_CTS_ADMI
que posee un solo campo (CTS_ADMFCT) que representan tareas a las que se tiene permiso de ejecución. Estas pueden ser:

TABL - Modificación de rutas de transporte (importante resguardar esta autorización y no darla indiscriminadamente)

INIT – Iniciar el sistema de transporte después de una copia de mandante

SYSC – Permite definir el nivel de cambios en la transacción SCC1 y parametrizar el sistema de transporte

IMPT – Permiso de Import, aunque su uso ya no debiera aplicarse ya que existen códigos más especificos que detallamos a continuación.

IMPA - Importar todas las órdenes de transporte de la cola de import.

IMPS – Importar las órdenes de transporte al sistema destino individualmente.

INBX - Tratar el pool de trabajo de TMS Workflow

TADD - Transmitir órdenes de transporte a una cola de import (addtobuffer).

TDEL - Borrar órdenes de transporte de la cola de import.

TQAS - Activar o borrar ódenes de una cola de import

TADM -Ejecutar comandos del programa para control de transportes.

QTEA – Autorización para realizar transportes al sistema productivo.

En base a las mismas puede definirse una correcta segregación de funciones de las actividades diferenciándose al encargado de requerir el cambio, el que ejecuta la tarea, el que la libera en un ambiente, el que la importa en otro y así según las necesidades puntuales de control que la organización requiera.

VN:F [1.8.2_1042]
Rating: 4.0/5 (1 vote 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)

SAP_ALL o Permisos Amplios

Friday, January 30th, 2009

El perfil SAP_ALL, es un permiso del cual, si trabajamos con SAP lo vamos a escuchar nombrar innumerables veces, y más de una vez puede producir que abramos los ojos en sobremanera! ;-)

Este permiso básicamente consta de todas autorizaciones posibles en SAP ECC (Enterprise Central Components) con lo cual quien tenga este perfil asignado a su usuario va a poder realizar cualquier actividad sobre el sistema.

El perfil es un perfil compuesto (por el número de autorizaciones que tiene no puede ser un perfil simple), el cual otorga acceso a todas las transacciones del sistema y posee valores amplios (*) en todos los objetos de autorización estándar.

La problemática oculta tras este perfil es que muchas veces vamos a escuchar que es indispensable para realizar tareas de administración del sistema, entre otras cosas.

Esto NO es así, si bien escasos (muy escasos) procesos deben obligatoriamente ejecutarse con permisos sumamente amplios… más veces el requerimiento obligatorio es del usuario SAP*, que del perfil SAP_ALL. Con lo cual este solo debiera ser incorporado en el proceso de cambios de emergencia de ser necesario, y no como un permiso habitual asignado a los usuarios de administración (o cualquier otro).

¿Usted confiaría en un Jr de Sistemas para que tenga todos los permisos en el sistema? ¿para que apruebe las ordenes de compra? ¿Para que las haga? ¿Para que ejecute pagos?

VN:F [1.8.2_1042]
Rating: 4.0/5 (1 vote cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 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)