Vous êtes sur la page 1sur 3

Mdulo de Administracin de Usuarios (Ambiente ORACLE 11g)

Sistemas basados en servicios RESTful

Los sistemas basados en servicios REST han desplazado a los servicios web como SOAP y WSDL.

Una implementacin concreta de un servicio web REST sigue cuatro principios de diseo
fundamentales:

Utiliza los mtodos HTTP de manera explicita


No mantiene estado
Expone URIs con forma de directorios
Transfiere XML, JSON o ambos.

Seguridad en servicios REST

HTTP Basic
o Mecanismo estndar de autentificacin HTTP
o Se envan las credenciales en cada peticin dentro de la cabecera Authorization.
o Si intenta acceder a un recurso protegido sin Authorization el servidor responde
con un estatus 401.
o Ventajas
Estandar HTTP. Funciona out-of-the-box.
Es RESTful, no obliga a mantener el estado en el servidor.
o Desventajas
Login y Password se transmiten sin cifrar, sugerencia usar HTTPs.
Mejora HTTP Digest realiza hash MD5.
Enviamos datos cuya privacidad es crtica en cada peticin.
Cookies
o Extensin al protocolo HTTP que permite almacenar datos persistentes entre
peticin/respuesta.
o Casi todos los frameworks de programacin del servidor pueden generar
automticamente cookies pseudoaleatorias bastante largas para ser usadas como
id de sesin.
o En casi todos los frameworks las cookies de sesin son transparentes al
desarrollador. Se nos da un API mediante el que podemos almacenar/recuperar
objetos de sesin.
o Ventajas sobre HTTP Basic.
Las sesiones basadas en cookies vienen ya implementadas en la mayora
de plataformas de desarrollo web en el servidor.
Si alguien intercepta la comunicacin es mucho ms sencillo invalidar la
sesin que obligar al usuario a cambiar el password.
Token
o Cuando se hace login correctamente el servidor nos devuelve un token(Valor
idealmente nico e imposible de falsear).
o A partir de este momento para cualquier operacin restringida debemos enviar el
token en la peticin.
o Es similar a la idea de cookies, solo que implementada por nosotros en lugar del
navegador.
o Ventajas
Se pueden usar tambin en aplicaciones nativas, ejemplo: Moviles.
El dominio del servicio de autenticacin puede ser distinto al del API.

HTTP Basic

Los sistemas sern implementados con servicios REST, donde los clientes consumen recursos, para
evitar la intrusin de clientes indeseables se plantea un esquema SSO mediante un token de
seguridad almacenado en Base de Datos, de tal forma que todos los clientes que soliciten un
recurso debern previamente tener un token asignado el cual debe existir en la Base de Datos.

De esta manera se tiene un SSO donde se encuentran los datos de autenticacin de todos los
clientes conectados a la red de servicios de todas las aplicaciones.

Para esto en cada aplicacin se debe configurar el mismo data source en archivo de configuracin
de beans manejado por Spring ej: root_context.xml donde se especificara que esquema de base
de datos se debe usar.

Para esto se debe generar un esquema de Base de Datos donde se almacenaran las credenciales.

El modulo o forma de autenticacin dentro de las aplicaciones que usen JdbcTokenStore puede ser
de diferente manera con su propio esquema de usuarios, el modo de compartir la sesin con otras
aplicaciones es mediante el token que es el esquema que se debe compartir.

Mdulo de Administracin de Usuarios

Para el mdulo de Administracin de usuarios se plantea un esquema basado en ambientes UNIX,


donde cada usuario creado automticamente crea un grupo con su mismo nombre. Si se desea
crear un grupo se asignan usuarios ya creados al grupo.

Para el acceso a los sistemas se plantea dar permisos por usuario y por grupo a los distintos
sistemas y mens especficos.

Tambin se plantea el manejo de permisos sobre las pginas asociadas a los mens, esto con los
permisos de Lectura/Escritura/Modificacin/Actualizar, ya sea por grupo o usuario, esto es, 1111
dependiendo el permiso que se requiera asignar.

Se genera el esquema en la Base de Datos ORACLE con las tablas del modelo de administracin de
usuarios.

C_USUARIO: Tabla de registro de usuarios, cada usuario genera un grupo con su mismo
login.
C_GRUPO: Se genera un grupo por usuario, y adems se puede crear un grupo y asignar
usuarios ya existentes en C_USUARIO.
C_SISTEMA: Tabla donde se almacenaran los sistemas creados por el equipo de desarrollo,
de tal manera que el acceso a usuario sea un SSO.
C_MENU: Mens de acceso en los sistemas.
T_ACCESO: Relacin de Sistema-Men que se asignara a un usuario junto con los permisos
otorgados ha dicho men.
I_SISTEMA_MENU: Relacin de todos los Mens asignados a cada sistema.

Diseo de Clases e Interfaces

Se crea una Interfaz por Entidad de tal manera que se arme un mensaje JSON bien formado para la
comunicacin con el FRONT END.

El formato JSON para la administracin de usuarios es el siguiente:


{"C_LOGIN":"XX","C_PASSWORD":"123",
"SISTEMAS":[{"NP_ID":1, ETC:valueETC,

"MENUS":[{"NP_ID":1,ETC:valueETC},{"NP_ID":3},{"NP_ID":4}]}]}//
,{},{}]}

Donde se auto-mapea con el Bean de tal manera que la asignacin sea inmediata.

Para el desarrollo se usaron anotaciones especiales propias del framework que sirven para objetos
JSON (@JsonProperty).

Vous aimerez peut-être aussi