Vous êtes sur la page 1sur 17

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

Tabla de contenidos
Introduccin ...................................................................................................................... 1 Pasos previos ..................................................................................................................... 2 Arquitectura del Mdulo Comn de Autenticacin ................................................................... 2 Mdulos de Login JAAS ..................................................................................................... 2 Mdulo Standalone ..................................................................................................... 2 Mdulo Corporativo .................................................................................................... 4 Gestin de Errores .............................................................................................................. 6 Definicin del ExceptionHandler a utilizar. .............................................................. 6 Operaciones a ejecutar ante un error .............................................................................. 6 Gestin de excepciones estndar. ................................................................................... 7 Canales de Acceso .............................................................................................................. 7 Datos de usuario suministrados por el mdulo ......................................................................... 8 Usuarios de tipo Empleado Pblico ............................................................................ 9 Usuarios de tipo Ciudadano ...................................................................................... 9 Usuarios de tipo Colaborador .................................................................................... 9 Constantes ......................................................................................................................... 9 Detalle de escenarios ......................................................................................................... 14 Ciudadano ............................................................................................................... 15 Empleado publico ..................................................................................................... 15 Colaborador ............................................................................................................. 15 glosario ........................................................................................................................... 15 A. Principals de cada escenario ..................................................................................... 17

Introduccin
El Mdulo Comn de Autenticacin es el sistema back-end que facilita la autenticacin de usuarios, de forma transparente, contra todos los sistemas de datos manejados por el Principado de Asturias. El Mdulo Comn de Autenticacin acta como un intermediario (un sistema fachada) evitando a las aplicaciones la comunicacin con mltiples sistemas y la manipulacin de datos heterogneos.

Figura 1. Esquema del Mdulo Comn de Autenticacin

La comunicacin entre las aplicaciones y el Mdulo Comn de Autenticacin se realiza a travs de un servicio web: authService. Para facilitar el acceso a este servicio, en la distribucin del FW-PA se incluye una librera: security-client.jar. El cliente para el Mdulo Comn de Autenticacin se integra con el sistema de autenticacin del FWPA (con el Filtro de Seguridad), a travs de un mdulo JAAS (ver apartado Seguridad en el Manual de Desarrollo de Aplicaciones J2EE del FW-PA).

Pasos previos

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

Antes de poder utilizar el Mdulo Comn de Autenticacin , se necesita: 1. Solicitar la URL del servicio web del Mdulo Comn de Autenticacin. 2. Dar de alta la aplicacin a desarrollar en la base de datos del Mdulo Comn de Autenticacin. 3. Cargar los roles de la aplicacin y asignarlos a los usuarios que sean convenientes.

Arquitectura del Mdulo Comn de Autenticacin


El Mdulo Comn de Autenticacin permite realizar la autenticacin de usuarios para cualquier aplicacin que se utilice en el Principado de Asturias. Esencialmente, los tipos de usuarios que se pueden autenticar son: Empleados de la administracin (o de entidades colaboradoras) y Ciudadanos. En funcin del tipo de usuario que acceda a la aplicacin, el proceso de autenticacin (datos necesarios y datos devueltos) ser diferente. Otros parmetros que tambin se tendrn en cuenta son: nivel de seguridad y canal de acceso.

Figura 2. Conexin con el Mdulo Comn Autenticacin

La comunicacin con el Mdulo Comn de Autenticacin (a travs del servicio web del mismo), se realiza mediante el Mdulo de Login (JAAS LoginModule): PrincastCorporativeLoginModule. Este mdulo se encargar de enviar los datos de autenticacin al Mdulo Comn y recibir la respuesta adecuada. Esta respuesta puede ser un error (excepcin de tipo JAAS LoginException) si no se pudo autenticar correctamente al usuario, o un conjunto de datos (JAAS Principal) del usuario, entre los que se incluyen: identificador principal, datos personales de carcter general, roles, etc.

Mdulos de Login JAAS


La conexin de una aplicacin con el Mdulo Comn de Autenticacin se realiza, de forma declarativa, a travs de la configuracin JAAS. Para ello, basta con definir, en el fichero jaas-config.xml una entrada que configure adecuadamente el mdulo a utilizar (ver apartado Seguridad en Manual de Desarrollo de aplicaciones J2EE del FW-PA). En la librera security-client.jar se incluyen dos mdulos de login: el mdulo corporativo (PrincastCorporativeLoginModule) que da acceso al Mdulo Comn de Autenticacin y un mdulo simulador (PrincastStandaloneLoginModule) que permite trabajar contra un fichero de datos XML.

Mdulo Standalone
Aquellas aplicaciones con necesidades de seguridad, que no dispongan de conectividad con los back-ends del Principado de Asturias, en concreto con el Mdulo Comn de Autenticacin, pueden utilizar el mdulo de autenticacin standalone, basado en un fichero de permisos. Como cualquier otro mdulo JAAS, el mdulo standalone se configura en el fichero config.xml. jaas-

<jaas> <application name="Carrito" controlFlag="required"> <module>es.princast.framework.modules.security.standalone.StandaloneLoginModule</

<options> <option> <name>USERS.FILE</name> <value>WEB-INF/authorized-users.xml</value> </option> <option> <name>NO.CACHING</name> <value>false</value> </option> <option> <name>ENCODED.PASSWORDS</name> <value>false</value> </option> Para configurar un mdulo Standalone , es importante tener en cuenta: 1. La clase del mdulo es: es.princast.framework.modules.security.standalone.StandaloneLoginModule. 2. Se debe indicar la ubicacin del fichero de usuarios. Este fichero se configura bajo la opcin de nombre: USERS.FILE. Desde la versin 1.5 del FW-PA, el path de este fichero se resuelve de forma automtica utilizando la clase PrincastPathResolver. 3. Por defecto, el mdulo utiliza una cach para evitar releer el fichero de usuarios en cada acceso. Es posible deshabilitar esta cach (aunque no recomendable por motivos de eficiencia) configurando con el valor true la opcin: NO.CACHING. 4. Las contraseas, en el fichero de usuarios, se pueden escribir en plano o encriptadas. Para que el mdulo pueda trabajar con contraseas encriptadas, se debe configurar con el valor true la opcin ENCODED.PASSWORDS. Las contraseas deben estar encriptadas con el algoritmo SHA1 y una fuerza de cifrado de 160 bits.

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

Authorized-users.xml
A partir de la versin 1.5 del FW-PA la sintaxis del fichero authorized-users.xml cambia, no se mantiene la compatibilidad hacia atrs con versiones anteriores del fichero. En el fichero de usuarios se incluirn los datos de todos los usuarios que se autenticarn correctamente en la aplicacin, junto con sus credenciales, principals, roles y dominios.

<users> <user username="cliente" password="cliente" type="CITIZEN"> <principals> <principal name="USERNAME" value="cliente"/> <principal name="SURNAME1" value="Lopez"/> <principal name="SURNAME2" value="Otro"/> <principal name="NIF/NIE" value="12345678Z" identifier="true"/> <principal name="ID THIRD PARTY" value="12345"/> <principal name="AGENT USER TYPE" value="CITIZEN USER TYPE"/> <principal name="ORGANIZATIONAL UNIT ID" value="1001"/> <principal name="ORGANIZATIONAL UNIT NAME" value="Consejera de Infraestructuras </principals> <roles>

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del <role name="Citizen"> Comn de Autenticacin. Mdulo <domainRole name="grupo1" value="grupo1" procedure="no"/> </role> </roles> </user> </users> Se escribir una etiqueta <user> por cada uno de los usuarios. En dicha etiqueta se indicar el tipo de actor, su nombre de usuario y su contrasea. Bajo la etiqueta <principals> se detallar cualquier dato relevante acerca del usuario (nombre, apellidos, dni, etc.), en el ejemplo superior, para los nombres de los principals se han utilizado constantes de la clase SecurityConstants, de tal forma que los datos devueltos por este modulo son 100% compatibles con los que podra devolver el modulo corporativo (Mdulo Comn de Usuarios), aunque esto no es obligatorio, se puede utilizar cualquier nombre o valor para los principals. Uno de los principals puede ser marcado como identificador principal del usuario, si no se marca ninguno, se utilizar el username. Por ltimo, se enumerarn todos los roles del usuario, utilizando al etiqueta <roles>. Dentro de cada rol se especifican los dominios con el elemento <domainRole>, son agrupaciones lgicas de roles, por ejemplo un dominio puede ser todos los usuarios de la oficina de comarcal de Oviedo. El atributo procedure indica si un grupo es un procedimiento, esto sirve para las aplicaciones de tramitacin, donde es necesario saber los procedimientos que tiene cada usuario y se modelan mediante dominios con el atributo procedure="yes" (por defecto tiene valor a no).

ExceptionHandler
Junto con el modulo standalone se suministra un ExceptionHanlder especfico: es.princast.framework.modules.security. standalone.exceptions.SecurityExceptionHandler. Para ms informacin al respecto, vase el apartado siguiente: Gestin de Errores.

Mdulo Corporativo
El mdulo de login corporativo es un mdulo JAAS (LoginModule) que ejecuta las tareas de autenticacin contra el Mdulo Comn de Autenticacin, utilizando el servicio web authService. Para utilizar este mdulo, basta con escribir una entrada en el fichero jaas-config.xml para su configuracin:

<jaas> <application name="USERMGMT" controlFlag="required"> <module>es.princast.framework.modules.security.corp.client.PrincastCorporativeLog <options> <option> <name>wsURL</name> <value>http://@wsurl.host@:@wsurl.port@/Auth12F/authService</value> </option> <option> <name>canal-prompt</name> <value>tipo_acceso</value> </option> <option> <name>cliente-ip-prompt</name> <value>ip_cliente</value> </option>

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del <option> Mdulo Comn de Autenticacin. <name>tipo-persona-prompt</name> <value>tipo_persona</value> </option> <option> <name>nif-prompt</name> <value>nif</value> </option> <option> <name>cif-prompt</name> <value>cif</value> </option> <option> <name>persona-fisica-id</name> <value>F</value> </option> <option> <name>persona-juridica-id</name> <value>J</value> </option> <option> <name>canal-web-id</name> <value>web</value> </option> <option> <name>canal-certificado-id</name> <value>web</value> </option> <option> <name>canal-telefonico-id</name> <value>telefonico</value> </option> <option> <name>canal-presencial-id</name> <value>presencial</value> </option> </options> </application> </jaas> Los puntos ms importantes de esta configuracin son:

1. El nombre de la clase del mdulo de login es: es.princast.framework.modules.security.corp.client.PrincastCorporativeLoginModule 2. Bajo la opcin wsURL debe definirse la direccin del servicio web authService. 3. El resto de opciones indican los nombres de parmetros de request bajo los que se suministrarn datos del usuario a autenticar. Es conveniente copiar estos mismos valores.

Atencin
Es importante que en la aplicacin, bajo el parmetro de configuracin: app-config, se defina el mismo valor que el indicado en el atributo name de la configuracin JAAS. En este ejemplo: USERMGMT.

ExceptionHandler

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

Junto con el modulo standalone se suministra un ExceptionHanlder especfico: es.princast.framework.modules.security.corp.exceptions.SecurityExceptionHandler. Para ms informacin al respecto, vase el apartado siguiente: Gestin de Errores.

Gestin de Errores
Si, por cualquier motivo, en el Mdulo Comn de Autenticacin, o en el propio LoginModule JAAS, se produce un error, ste ser transmitido, en forma de una excepcin, al Filtro de Seguridad. Finalmente, existe un componente llamado ExceptionHandler que se encargar de redirigir al usuario a la pgina adecuada, en funcin del tipo de error.

Figura 3. Gestin de Errores de Autenticacin

Definicin del ExceptionHandler a utilizar.


Para definir que gestor de excepciones se quiere utilizar basta con, en cualquier mdulo de configuracin registrado para el contexto SECURITY, definir la propiedad: EXCEPTION.HANDLER. El valor de esta propiedad ser el nombre, completamente cualificado, del gestor de excepciones. Si no se define un gestor de excepciones, se utilizar el gestor por defecto: es.princast.framework.modules.security.common.exceptions.StandardExceptionHandler. Los gestores de excepciones especficos, suministrados con los dos mdulos de login: corporativo y standalone, son compatibles con el mdulo estndar.

Operaciones a ejecutar ante un error


Cuando se produce un error, las posibles redirecciones que puede hacer el Gestor de Excepciones Estndar son: Redirigir a pgina de login. Supone la redireccin a una pgina en la que se solicita el par usuario/ contrasea o cualquier otra informacin que pudiera ser necesaria para autenticar. Redirigir a pgina de no login. Supone la redireccin a una pgina en la que se informa de que la autenticacin anterior no tuvo xito. Generalmente se indicar el motivo del error y se solicitarn los datos que sean necesarios para un nuevo intento. Redirigir a pgina de no roles. Supone que el usuario se ha autenticado correctamente pero que no tiene privilegio suficiente para acceder a un determinado recurso. Redireccin a pgina de cambio de contrasea. Si la contrasea suministrada es correcta, pero ha expirado, se puede forzar al usuario a que la actualice. Redireccin a pgina de error general. Si la situacin de error es distinta de las anteriores, se redirecciona a una pgina de error. Todas estas redirecciones se definen en el fichero princast-security-rules.xml , utilizando las etiquetas <forward> . Si, por alguna razn, no se ha definido una pgina especfica para tratar una situacin concreta, en ese caso, la redireccin se har sobre la pgina de error. Si no se ha definido tampoco una pgina de error general, se enviar un cdigo http de error: 515 .

Gestin de excepciones estndar.

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

Las excepciones que puede controlar el gestor estndar, junto a las operaciones a realizar en cada uno de los casos son las que se indican en la siguiente tabla:

Tabla 1. Tabla de excepciones de login


Tipo Excepcin Se dispara cuando... Operacin a ejecutar... WrongProxiedUserIdentification a un par tramitador/ Redirecciona al forward: noSe autentica ciudadano y falla la autenticacin login. del tramitador. InsufficientDataException algn dato necesario para la Redirecciona al forward: noFalta autenticacin login. WrongPasswordException Error en el par usuario/contrasea Redirecciona al forward: nologin. RequiredPasswordException Primer intento de acceso a un Redirecciona recurso protegido login. UnknownUserException Usuario desconocido. (username) Redirecciona login. al al forward: forward:

X509CertificateExpectedException Requerido certificado digital de Redirecciona a la IP y/o puerto de cliente. certificado digital (SSL-3) InsufficientPrivilegesException El usuario est autenticado Redirecciona al forward: nopero no autorizado. No tiene roles. privilegios suficientes para acceder al recurso. RandomPwdPosRequiredException una autenticacin por Redirecciona Se requiere posiciones de contrasea. login. LoginException Error de autenticacin general. Redirecciona error. al al al forward: forward: forward:

UnmanagedLoginException Error incontrolado en el proceso Redirecciona de autenticacin. error. LoginWarning

Situacin anmala en el proceso Si el warning # Password de login. Expired, redirecciona a forward: change-password

Canales de Acceso
El Canal de Acceso define el medio por el que un usuario accede a un recurso protegido. En la mayora de los casos, este canal, ser el canal web, aunque, es posible que el acceso se realice intermediado a travs de un tramitador presencial o telefnico. El canal de acceso que se est utilizando se indicar, al Mdulo Comn de Autenticacin , utilizando el parmetro http tipo_acceso . De momento, se definen tres canales de acceso posibles: Canal web Es el canal de acceso por defecto. Supone que el usuario est entrando a la aplicacin a travs de una pgina de la propia aplicacin. Se supondr que se accede a travs de este canal cuando no exista en la peticin http el parmetro tipo_acceso, o bien, cuando ste valga la constante web. Para este canal, se permiten los niveles de seguridad 0, 1 y 2 si el actor es un ciudadano

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del (ACTOR = CITIZEN en princast-security-rules.xml), o Mdulo Comn de Autenticacin. niveles 0 y 1 si el actor es un empleado pblico (ACTOR = EMPLOYEE en princast-security-rules.xml) Canal Telefnico Este canal se utiliza para accesos intermediados a travs de un sistema CRM ( Siebel) procedentes de un call center. Para indicar el uso de este canal, se utilizar el parmetro tipo_acceso, con el valor telefonico. nicamente se permite tipo actor Ciudadano y niveles de seguridad 0 y 1. Este canal es idntico al anterior, con la salvedad de que el acceso procede de una oficina de atencin presencial y no de un call center. Se utilizar el valor presencial para el parmetro tipo_acceso. nicamente se permite tipo de actor Ciudadano y el nivel de seguridad 2.

Canal Presencial

El acceso a una aplicacin a travs del canal web se puede realizar desde cualquier ordenador conectado a la red, sin embargo, el acceso a travs de los canales intermediados (telefnico y presencial) nicamente se puede hacer desde determinados ordenadores cuyas IPs sean reconocidas por el Mdulo Comn de Autenticacin . Por lo tanto, es necesario, si se quieren utilizar estos canales, dar de alta en el Mdulo Comn de Autenticacin, todas las IPs que van a tener acceso a la aplicacin (y el canal que pueden utilizar).

Datos de usuario suministrados por el mdulo


Si el proceso de login se realiza con xito, y el mdulo puede autenticar correctamente al usuario, se devolvern, en forma de Principals JAAS, un conjunto de datos recabados acerca del usuario. Estos datos se ponen a disposicin de la aplicacin a travs de los mecanismos de seguridad J2EE estndar y a travs del objeto JAAS Subject, alamacenado en el scope http Session, bajo la clave SecurityGlobals.SUBJECT. Los PrincipalsJAAS que se cargan al autenticar a un usuario son: Identificador del Usuario (PrincastIdentifier) Se trata del identificador nico del usuario. Este valor ser el que se obtenga cuando se ejecute el mtodo request.getUserPrincipal(). En todos los tipos de escenario, este valor ser el NIF del usuario.

Datos personales Se trata de un mapa de datos personales. En determinados (PrincastCompositePrincipal) escenarios (Colaborador) se puede devolver ms de un objeto de este tipo, aunque lo habitual es que haya slo uno. Roles (PrincastRole) Identifica el rol que tiene el usuario. Es habitual que se devuelva ms de un objeto de este tipo. Identifica los dominios de un usuario. Pueden ser de dos tipos dominios puros, es decir agrupaciones de usuarios (procedure=no). O procedimientos, que son tipos de tramites que puede hacer el usuario (procedure=yes) Se pueden incluir warnings si se da una situacin anmala en el proceso de autenticacin. Por ejemplo, la contrasea est caducada. Incluye informacind e carcter general acerca del escenario de autenticacin utilizado. Los datos que devuelve son: nivel de seguridad, canal de acceso, tipo de actor, etc.

Dominios (PrincastDomain)

Warnings (PrincastWarning)

Informacin de escenario (ScenarioPrincipal)

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del En general los datos que se devuelvenComnresultado del proceso de autenticacin dependen del tipo de Mdulo como de Autenticacin. actor que se est autenticando. Los datos concretos, en funcin del tipo de actor son:

Usuarios de tipo Empleado Pblico


Los usuarios de este tipo nicamente pueden autenticarse en los niveles de seguridad 0 y 1. Los empleados pblicos siempre se autorizan con su nombre de usuario y su contrasea. De un empleado pblico se mantienen los siguientes datos personales: NIF (ser el identificador principal), nombre, apellidos, unidades organizativas a las que pertenece y una lista de roles que posee. Cuando un empleado se autentica correctamente, las aplicaciones podrn obtener de la sesin, a travs del Subject, (ver apartado anterior) todos sus datos (en el caso de los roles solamente se podrn leer los roles del empleado en la aplicacin en la que se autentica). Los actores de este tipo, tendrn siempre, por defecto, el rol Empleado.

Usuarios de tipo Ciudadano


Los ciudadanos pueden autenticarse en cualquiera de los tres niveles de seguridad (0, 1 2), es decir, se puede proteger un recurso (en el fichero princast-security-rules.xml) con usuario/contrasea y/o con certificado digital (siempre y cuando sean ciudadanos los que van a acceder a dicho recurso). Una vez autenticado el ciudadano, se ofrecer a la aplicacin (a travs del Subject) los siguientes datos personales: NIF (como identificador principal), nombre, apellidos, unidades organizativas (asociadas al ciudadano en la aplicacin, pueden ser varias), roles y, opcionalmente, otros datos que se obtengan en el proceso (identificador de tercero, etc.). Los actores de este tipo, tendrn siempre, por defecto, el rol Ciudadano.

Usuarios de tipo Colaborador


Los colaboradores se pueden identificar nicamente en los niveles de seguridad 0 y 1. La autenticacin de un colabora-dor es siempre un proceso de login mltiple. En una sola operacin, se autenticar al propio colaborador y al ciudadano al que representa. La autenticacin se realiza con par usuario/contrasea para el colaborador y con par NIF/posiciones de contrasea CIF/posiciones de contrasea. Al autenticar correctamente a un colaborador se reciben dos juegos de datos personales (dos instancias del Principal: PrincastCompositePrincipal), uno que contiene los datos del tramitador y otro que contiene los datos del ciudadano. Estos dos Principals se distinguen por el valor almacenado bajo la entrada: SecurityConstants.AUTHENTIFIED_USER_TYPE(recordemos que este tipo de Principals son mapas de valores). Si el Principalcontiene datos del tramitador (une empleado), el valor de este parmetro ser: SecurityConstants.AGENT_USER_TYPE y si contiene datos del ciudadano: SecurityConstants.CITIZEN_USER_TYPE. Los roles en este tipo de actor sern el superconjunto de los roles del ciudadano y del tramitador (empleado).

Constantes
Los datos personales, tanto de empleados como de ciudadanos, ofrecen a la aplicacin como objetos de tipo PrincastCompositePrincipal. Estos objetos son mapas de valores, en los cuales, cada entrada contiene un dato concreto de usuario. Los datos concretos que un principal de estas caractersticas puede tener son los siguientes: /**

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del * Clave que identifica el protocolo de acceso a un recurso Mdulo Comn de Autenticacin. */ public static final String PROTOCOL = "PROTOCOL"; /** * Constante que identifica identificadores de cualquier tipo. */ public static final String ID = "ID";

/** * Constante que identifica el documento de identificador de una persona fsica (N */ public static final String NIFNIE = "NIF/NIE"; /** * Constante que identifica el documento de identificador de una persona jurdica */ public static final String CIF = "CIF"; /** * Constante que identifica un nombre de una persona fsica o jurdica. */ public static final String NAME = "NAME"; /** * Constante que identifica el primer apellido de una persona fsica. */ public static final String SURNAME1 = "SURNAME1"; /** * Constante que identifica el primer apellido de una persona jurdica. */ public static final String SURNAME2 = "SURNAME2";

/** * Constante que define el nombre del identificador nico de una persona en la bas * Principado de Asturias */ public static final String ID_THIRD_PARTY = "ID THIRD PARTY"; /** * Constante que define el identificador de Unidades Organizativas */ public static final String ORGANIZATIONAL_UNIT_ID = "ORGANIZATIONAL UNIT ID"; /** * Constante que define el nombre de Unidades Organizativas */ public static final String ORGANIZATIONAL_UNIT_NAME = "ORGANIZATIONAL UNIT NAME"; /** * Constante que identifica el nombre de un agente tramitador */ public static final String PROXY_AGENT_USERNAME = "PROXY AGENT";

10

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin. /** * Constante de identifica el nombre de un usuario */ public static final String USERNAME = "USERNAME"; /** * Constante que identifica un certificado digital */ public static final String X509_DIGITAL_CERTIFICATE = "javax.servlet.request.X509Certificate"; /** * Constante que identifica un conjunto de datos personales */ public static final String PERSONAL_DATA = "PERSONAL DATA"; /** * Constante que define el nivel de seguridad 0 */ public static final String SECURITY_LEVEL_0 = "0"; /** * Constante que define el nivel de seguridad 1 */ public static final String SECURITY_LEVEL_1 = "1"; /** * Constante que define el nivel de seguridad 2 */ public static final String SECURITY_LEVEL_2 = "2"; /** * Constante que identifica la contrasea de un usuario */ public static final String PASSWORD = "PASSWORD"; /** * Constante que identifica una direccin IP */ public static final String IP = "IP"; /** * Constante que identifica un tipo de actor */ public static final String ACTOR_TYPE = "ACTOR TYPE"; /** * Constante que identifica un nivel de seguridad */ public static final String LOGIN_LEVEL = "LOGIN LEVEL"; /** * Constante que identifica un conjunto de roles

11

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del */ Mdulo Comn de Autenticacin. public static final String ROLES = "ROLES"; /** * Constante que identifica un Principal primario (identificador nico) */ public static final String PRIMARY_PRINCIPAL = "PRIMARY_PRINCIPAL"; /** * Constante que identifica un conjunto de Principals secundario */ public static final String SECONDARY_PRINCIPALS = "SECONDARY_PRINCIPALS"; /** * Constante que identifica una aplicacion */ public static final String ID_APP = "ID APP"; /** * Constante que identifica un tipo de actor Empleado Pblico. */ public static final String PUBLIC_EMPLOYEE_ACTOR = "EMPLOYEE"; /** * Constante que identifica un tipo de actor Empleado Ciudadano. */ public static final String CITIZEN_ACTOR = "CITIZEN"; /** * Constante que identifica un tipo de actor Colaborador (tramitador). */ public static final String PARTNER_ACTOR = "COLABORADOR"; /** * Constante que identifica un canal de acceso */ public static final String CHANNEL = "CHANNEL"; /** * Constante que identifica el canal de acceso por Portal web. */ public static final String PORTAL_CHANNEL = "PORTAL"; /** * Constante que identifica la razn social de una persona jurdica. */ public static final String RAZON_SOCIAL = "RAZON SOCIAL"; /** * Constante que identifica al tipo de persona fsica. */ public static final String PERSONA_FISICA_TYPE = "F"; /**

12

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del * Constante que identifica al tipo de persona jurdica Mdulo Comn de Autenticacin. */ public static final String PERSONA_JURIDICA_TYPE = "J"; /** * Constante que identifica el canal de acceso presencial. */ public static final String PRESENTIAL_CHANNEL = "PRESENTIAL"; /** * Constante que identifica el canal de acceso telefnico. */ public static final String PHONE_CHANNEL = "PHONE"; /** * Constante que identifica posiciones de una contrasea. */ public static final String PASSWORD_POSITIONS = "PASSWORD_POSITIONS"; /** * Constante que indica el numero de posiciones aleatorias de uan contrasea * a utilizar en la autentificacin. */ public static final int RANDOM_POSITIONS_SIZE = 3; /** * Constante que identifica al tipo de identificador fiscal. */ public static final String IF_TYPE = "IF_TYPE"; /** * Constante que identifica el identificador fiscal NIF. */ public static final String IF_NIF_TYPE = "NIF"; /** * Constante que identifica el identificador fiscal CIF. */ public static final String IF_CIF_TYPE = "CIF"; /** * Constante que identifica el identificador fiscal NIE. */ public static final String IF_NIE_TYPE = "NIE";

/** * Constante que identifica el Principal que indica que una contrasea ha expirado */ public static final String PASSWORD_EXPIRED = "PASSWORD EXPIRED";

/** * Constante que identifica el conjunto de Principals que suponen warnings de la o */ public static final String LOGIN_WARNING = "LOGIN WARNINGS";

13

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Mdulo Comn de Autenticacin.

/** * Constante que identifica el conjunto de Principals que suponen datos del usuari */ public static final String USER_DATA = "USER DATA";

/** * Constante que identifica el conjunto de Principals que suponen datos del escena */ public static final String SCENARIO_DATA = "SCENARIO DATA";

/** * Constante que identifica el tipo de usuario cuyos datos contiene un Principal c * @see es.princast.framework.facilities.security.PrincastCompositePrincipal */ public static final String AUTHENTIFIED_USER_TYPE = "USER TYPE";

/** * Constante que identifica un Principal que contiene datos de un ciudadano autent */ public static final String CITIZEN_USER_TYPE = "CITIZEN USER TYPE";

/** * Constante que identifica un Principal que contiene datos de un agente tramitado */ public static final String AGENT_USER_TYPE = "AGENT USER TYPE"; /** * Constante que identifica un Principal que contiene datos de un empleado */ public static final String EMPLOYEE_USER_TYPE = "EMPLOYEE USER TYPE"; /** * Longitud mnima permitida para las contraseas */ public static final int MIN_PASSWORD_LENGTH = 8;

/** * Conjunto de caracteres no permitidos en las contraseas */ public static final String PASSWD_FORBIDDEN_CHARS = "@#~$%&/()?+`}{*^[]-_<>\\ /** * Caracter que representa un "hueco vaco" en una contrasea. */ public static final char PASSWD_EMPTY_CHAR = PASSWD_FORBIDDEN_CHARS.charAt(0);

Detalle de escenarios
Las operaciones necesarias para controlar el acceso de un usuario pueden ser sensiblemente diferentes en funcin de las circunstancias concretas de cada acceso. Un conjunto de parmetros que definen un medio de acceso comn es un escenario. En funcin del escenario de autenticacin que est en curso,

14

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del se aplicar una lgica diferente. En funcin del escenario, los datos devueltos por el mdulo pueden ser Mdulo Comn de Autenticacin. tambin diferentes.

Ciudadano
Los escenarios de ciudadano indican el acceso a un recurso protegido para el tipo de actor CITIZEN. Estos accesos estn reservados a ciudadanos, lo cuales, pueden acceder a la aplicacin a travs de cualquier canal (presencial, telefnico, web). Los recursos, para ciudadanos, pueden estar protegidos con bajo cualquier nivel de seguridad: 0, 1 2. La lgica de autenticacin puede variar en funcin del canal de acceso (parmetro tipo_canal). Los datos finales (resultado de la autenticacin) son los mismos para todos los casos.

Portal
El escenario de login de portal se aplica cuando un usuario (ciudadano) accede a un recurso protegido, directamente, a travs del portal (Internet). Se trata del escenario por defecto (parmetro tipo_canal=web o nulo). Se puede autenticar al ciudadano utilizando par NIF/contrasea o certificado digital.

Telefnico
En este escenario, el ciudadano accede al recurso a travs de un tramitador Siebel, estando el ciudadano al otro lado de la lnea telefnica. El tipo de canal (parmetro tipo_canal = telefonico) toma el valor: telefonico. Se realizar autenticacin, adems, de la direccin IP del tramitador. El control de acceso se realiza exclusivamente por el par: NIF/posiciones aleatorias de la contrasea (del ciudadano).

Presencial
En este caso, el ciudadano accede, de forma presencial, a la aplicacin a travs de un tramitador. El tipo de canal (parmetro tipo_canal = presencial) toma el valor: presencial. Se realizar autenticacin, adems, de la direccin IP del tramitador. El control de acceso se realiza, por parte del tramitador, utilizando el DNI del ciudadano.

Empleado publico
El escenario de acceso para empleados pblicos se identifica por el tipo de actor bajo el que se define el recurso: EMPLOYEE. Este escenario est reservado para recursos a los que nicamente puede acceder un empleado para realizar su trabajo diario. A propsito de este escenario, un tramitador (empleado que realiza un trabajo en nombre de un ciudadano) no se considera un empleado. En este caso, el acceso se controla nicamente con el par: usuario/contrasea.

Colaborador
Si a un recurso puede acceder un ciudadano, pudiendo estar este intermediado por un empleado o colaborador, se aplica el tipo de actor: COLABORADOR. En este tipo de escenarios se debe realizar una autenticacin doble: del tramitador y del ciudadano. La autenticacin del tramitador siempre se realiza con el par: usuario/contrasea. La del ciudadano, con el par NIF/posiciones aleatorias de contrasea o CIF/ posiciones aleatorias de contrasea (si se trata de una persona jurdica).

glosario
15

Actor

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Usuario de que puede acceder a un recurso protegido. Un Actor Mdulo Comntipo Autenticacin. puede ser: ciudadano, empleado pblico o colaborador. El tipo de actor determinar la lgica de autenticacin empleada, as como los datos requeridos y los datos personales devueltos a la aplicacin. Nombre del servicio web delMdulo Comn de Autenticacin. El servicio authService es la fachada para acceder al mdulo. Va de acceso a un recurso protegido. El canal de acceso puede ser: web, presencial o telefnico. Las constantes de seguridad (clase SecurityConstants) son el conjunto de valores que se utilizan para nombrar parmetros de login y para identificar los datos que se devuelven a la aplicacin cuando se realiza una autenticacin correcta. Un escenario es un conjunto de parmetros que definen una lgica de autenticacin, parmetros de entrada y datos de salida comunes. Los escenarios se definen en funcin del tipo de actor, el canal de acceso y el nivel de seguridad. Tipo de excepcin java que desciende de la clase JAAS LoginException. Indica cualquier situacin controlada por la cual no se puede autenticar correctamente al usuario: contrasea equivocada, privilegios insuficientes, etc. El gestor de errores (ExceptionHandler) es el objeto en el cual se delega la manipulacin de cualquier excepcin producida durante el proceso de autenticacin. El gestor de excepciones ser capaz de redireccionar el flujo de la aplicacin a la URL adecuada para cada tipo de error. El Identificador (PrincastIdentifier) es el dato que permite identificar unvocamente al usuario autenticado. Identificador de tercero. Es un identificador interno que tienen los ciudadanos que trabajan con el Principado de Asturias. Clase que implementa el interfaz JAAS: LoginModule. Es un tipo de clase que puede realizar la autenticacin de un usuario y cargar en un objeto todos los datos que se obtengan de dicha operacin. El nivel de seguridad es un nmero que identifica el tipo de control de acceso que se aplicar a un recurso determinado. Nivel 0 = No hay control de seguridad. Nivel 1 = Control por par usuario /contrasea. Nivel 2 = Con-trol con certificado digital de cliente. Cualquier dato sobre el usuario obtenido al realizar el proceso de Login. Conjunto de datos personales del usuario autenticado. Se trata de un map que contiene pares dato-valor. Algunos de estos datos pueden ser: nombre, apellidos, NIF, unidades organizativas, etc. Conjunto de datos del escenario de autenticacin utilizado en un proceso de login. Estos datos pueden ser: nivel de seguridad, canal, actor, etc.

authService Canal de Acceso

Constantes de Seguridad

Escenario

Excepcin de Login

Gestor de Errores

Identificador

Mdulo de Login

Nivel de Seguridad

Principal Principal Compuesto

Principal de Escenario

16

Rol Siebel

MANUAL DE DESARROLLO DE APLICACIONES J2EE. Cliente del Privilegio del usuario en una Mdulo Comn de Autenticacin. aplicacin. Sistema CRM del Principado de Asturias a travs del cual, los tramitadores pueden acceder a las aplicaciones de portal en nombre de un ciudadano. Objeto JAAS que contiene todos los Principals de un usuario autenticado. Situacin anmala en el proceso de autenticacin. Un warning no supone un error. Si se da un warning el acceso esta garantizado para el usuario.

Subject Warning

A. Principals de cada escenario


Figura A.1. Tabla de Principals devueltos por cada escenario

17

Vous aimerez peut-être aussi