miércoles, 22 de agosto de 2012

Definición de políticas de complejidad de claves en E-business Suite R12

Por requerimientos de auditoria en mi trabajo, es necesario establecer políticas de seguridad para las claves de los usuarios. En concreto los requerimientos para las claves de usuario son:

1. Deben tener un largo mínimo de 6 caracteres
2. Deben ser alfanuméricas, sin caracteres consecutivos
3. Una clave no puede repetirse en los próximos 150 días
4. Cada 30 días caducan las contraseñas

Revisando en la documentación de R12 encontré la siguiene nota de MOS: How to Implement (Signon Password Custom) Profile Option in Oracle Applications 11i / R12 [ID 362663.1].

La nota es bastante buena pero para mi que recién vengo entrando al mundo del ERP me tomó más tiempo del necesario encontrar las opciones. Por ello decidí hacer algo más detallado en base a lo anterior.

La nota habla de cargar una clase java al ERP. Esta parte es sencilla y bastante detallada, solo tomé el código, lo guardé en un archivo AppsPasswordValidationCUS.java y seguí las instrucciones pero de todas formas las detallo a continuación: 

1. Una vez creado el archivo se carga al ERP:
    
     loadjava -user apps/apps -verbose -resolve -force AppsPasswordValidationCUS.java


2. Ejecutar adadmin para recompilar el esquema apps. Para ello ejecutamos adadmin, nos pedirá algunos datos de rutina como las claves de los usuarios SYSTEM y apps. Cuando estemos listo aparecerá el menú de adadmin. Elegimos la opción 3->1 para recompilar APPS




3.Ejecutamos el siguiente SELECT para chequear que la clase java se cargó en la base de datos sin problemas:

  SELECT dbms_java.longname(object_name), status   
  FROM user_objects
  WHERE object_type = 'JAVA CLASS' 
  AND dbms_java.longname(object_name) like '%AppsPasswordValidationCUS';

Si devuelve VALID estamos listos para pasar a la interfaz del ERP y establecer el nuevo validador de claves.

4. Actualizar la opción del perfil para aplicar la política de claves. Para esto ingresamos con sysadmin y entramos a System Administrator -> Profile -> System y buscamos el texto "%Signon%"



Acá veremos todas las opciones de perfil relacionadas a claves



5. Establecemos las opciones necesarias para nuestra validación de claves:

Signon Password Custom = oracle.apps.fnd.security.AppsPasswordValidationCUS
Signon Password No Reuse = 150 (días)



6. Para satisfacer el requerimiento de que las claves caduquen cada 30 días, debemos hacerlo por cada usuario en la opción System Administrator ->  Security : User -> Define



7. Y listo! A partir de ahora cada vez que el usuario cambie la clave se le exigirán las nuevas medidas de seguridad que definimos.

jueves, 5 de julio de 2012

Cambiar clave de APPS en R12

Cambio de clave de APPS en E-Business Suite 12


Estoy seguro de que esta situación es común para muchos DBA's... comenzamos con la Administración de Bases de datos Oracle y de repente un día llega un motor SQL Server y pasamos a ser administradores de ambos motores.. y así después se van agregando otras cosas en el camino. En mi camino apareció el E-Business Suite 12, el ERP de Oracle y mi labor es.. cambiar la clave del usuario APPS.
¿Cambio de clave?, debe ser trivial supuse... será un ALTER USER en la base de datos y listo!!.. nada más alejado de la realidad.
Resulta que esta tarea requiere de una herramienta específica.. el utilitario FNDCPASS. Ahora describiré los pasos necesarios para cambiar la clave. Usé como referencia la nota 437260.1 de Metalink


1. El ERP debe estar abajo para realizar el cambio de clave. Se recomienda no tener conexiones de usuarios a los cuales se les vaya a cambiar la clave.


2. Se recomienda respaldar las tablas FND_USER y FND_ORACLE_USERID.


3. Cargan las variables de ambiente. Si este fue configurado correctamente deberían ser visibles las variables de ruta necesarias.


En este ejemplo cambiaremos las claves de los esquemas APPS y APPLSYS. El comando a usar será:


FNDCPASS <logon> 0 Y <system/password> SYSTEM <username> <new_password>


Donde:
<logon>                      Es el usuario y clave Oracle, ej: apps/apps
<system/password> Son el usuario y claves del usuario system
<username>              Usuario de APPLSYS. Por lo general es APPLSYS
<new_password>     Nueva clave del APPS


Ahora realizaré este cambio en ambiente de testing:


Primero bajamos el ambiente, en mi caso la clave del apps es apps:


cd $ADMIN_SCRIPTS_HOME
sh adstpall.sh apps/apps




Chequeamos que los concurrentes estén abajo:


ps -fea | grep FN



En este caso aun siguen algunos concurrentes arriba. Esperamos a que ya no estén estos procesos y comenzamos con el cambio de clave:


FNDCPASS apps/apps 0 Y system/manager SYSTEM  APPLSYS  claveapps


Debemos obtener una salida como la siguiente:



Revisamos que no haya errores en los archivos de salida, si es así, ¡estamos listos!. Cambiemos la clave del resto de los usuarios:

FNDCPASS apps/claveapps 0 Y system/manager ALLORACLE clavetodos




Ahora subimos el ERP con la nueva clave de APPS:


Revisamos que el portal del ERP esté sin problemas y ¡listo!, nada traumático...