sábado, 11 de mayo de 2013

MANEJO Y ORGANIZACIÓN DE IDENTIDADES


¿Que es una identidad?

Una identidad puede ser entendida como un OBJETO unico e irrepetible, como una persona, sobre la cual existe informacion vinculada, que en parte, hace unico a este individuo. Esta informacion puede ser por ejemplo:
  • El RUT de la persona
  • Su fecha de nacimiento
  • La empresa a la cual trabaja
  • El identificador de empleado
  • Nacionalidad
  • Telefono de contacto
  • Direccion de correo electronico
  • Etc.

¿En donde reside esta informacion?

Comunmente en una empresa, esta informacion reside en un repositorio de informacion como Active Directory, ORACLE, Directorios LDAP, bases de datos SQL, Excel o incluso archivos de Texto. Entonces es simple, escribimos toda la informacion de identidades de nuestros usuarios o clientes sobre uno de estos directorios y la utilizamos para consultar esta informacion. Pero, ¿Que pasa si los numeros de telefono estan en una base de datos compatible con nuestra central telefonica y esta no puede utilizar AD?. Bueno, tendriamos que usar una base de datos SQL por ejemplo y almacenar el nombre del usuario y sus numeros telefonicos.
Hagamos el ejercicio colocando informacion basica en dos posibles contenedores de identidades:
Datos en SQL ServerDatos en Active Directory
Identificador del empleadoIdentificador del empleado
Telefono de casaNombre
Telefono de OficinaApellido
Telefono MovilClave
FaxDireccion
 Organizacion
 Logon Name
En este caso tenemos informacion en dos contenedores y por lo tanto podemos utilizar Active Directory para el login de los usuarios y SQL server para el almacenaje de los numeros de telefono. Active directory puede almacenar los numeros de telefono, pero como nuestra central telefonica no es compatible obligatoriamente tuvimos que agregar esta base de datos, ¿Se nos complica un poco la vida?, a este ejemplo agreguemos a ORACLE como nuestro CRM (Recordemos que Microsoft cuenta con Dynamics) el cual usamos para mantener organizados los recursos de la empresa.
Agreguemos entonces la informacion de identidad de nuestro ERP
Datos en SQL ServerDatos en Active DirectoryCRM ORACLE
Identificador del empleadoIdentificador del empleadoIdentificador del empleado
Telefono de casaNombreDatos de clientes
Telefono de OficinaApellidoPosibles ventas
Telefono MovilClaveCierres de ventas
FaxDireccion 
 Organizacion 
 Logon Name 
Ya tenemos 3 fuentes en donde existe informacion de un mismo usuario, pero dado a las tecnologias que usamos, no podemos homologar en una sola fuente de datos, mas aun cuando ya hemos pagado por las licencias de estos productos, o debemos mantener reglas internas de la organizacion.
Este es un ejemplo de una tipica empresa, y si bien he agregado 3 fuentes, pueden existir infinidad de otras fuentes de datos que mantengan informacion importante y que nos gustaria homologar.
¿Como funciona MIIS SP2?
Microsoft Identity Integration Services se presenta como una tecnologia enfocada a tomar toda esta informacion, almacenarla y controlarla. Lo que logramos al usar MIIS es crear una identidad global que al consultarla nos muestre toda esta informacion UNIFICADA. Esta informacion es manejada a traves de Agentes de administracion los cuales capturan toda la informacion que necesitemos desde los diferentes repositorios, y la colocan en una base de datos central Llamada METAVERSO.
El resultado de trabajar con MIIS es lograr que una identidad segmentada en varios repositorios se vea asi:
Datos en SQL ServerDatos en Active DirectoryCRM ORACLEMIIS Metaverso
Identificador del empleadoIdentificador del empleadoIdentificador del empleadoIdentificador del empleado
Telefono de casaNombreDatos de clientesNombre
Telefono de OficinaApellidoPosibles ventasApellido
Telefono MovilClaveCierres de ventasClave
FaxDireccion Direccion
 Organizacion Organizacion
 Logon Name Logon Name
   Telefono de casa
   Telefono de Oficina
   Telefono Movil
   Fax
   Datos de clientes
   Posibles ventas
   Cierres de ventas
¿Se ve interesante verdad?, con esto tenemos nuestra identidad en un solo lugar, la cual como es una base de datos SQL podemos consultar sin problemas y obtener toda la informacion sin tener que desarrollar complejas aplicaciones que lean y sincronicen informacion. Esto en MIIS se llama sincronizacion de informacion a traves de datos en el espacio del conector (un conector es el punto intermedio entre la fuente de datos y la identidad alojada en el Metaverso).

Dandole un buen uso a nuestra informacion

Que pasa si por ejemplo tenemos un sitio de Sharepoint que es el Sitio web que pueden acceder nuestro clientes. Como servicio nosotros queremos ofrecer en nuestro sitio la posibilidad que el cliente se loguee a traves de un Active Directory que contenga la siguiente informacion:
  • Nombre
  • Apellido
  • Clave
  • Ejecutivo de la cuenta del cliente
  • Cierres de negocio
  • Telefono de la oficina y fax del Ejecutivo 
Lo mas comun seria crearle cuentas de Active Directory a todos nuestros clientes en una Unidad Organizativa destinada a eso, y DESARROLLAR una solucion que consulte a nuestros 3 repositorios de informacion, pero…. ¿Y si alguien HACKEA nuestro servidor de clientes?, significa que el usuario que pudo tomar el control tiene forma de acceder a nuestro servidor SQL de datos telefonicos, a nuestro Active Directory interno e inclusive a nuestro CRM!!!!!!. Este usuario simplemente explotando alguna vulnerabilidad puede robarnos toda la informacion financiera de nuestra empresa a unos cuantos clics de distancia.
¿Como evitamos esto?, Bueno podemos instalar un Active Directory de Frontera al cual escribamos uno a uno TODA LA INFORMACION QUE REQUIERA NUESTRO SITIO WEB. Asi restringimos un poco lo que nos pueda robar pero aun tenemos el siguiente problema:
  1. Un cuarto repositorio de informacion con datos de identidad parcializados y comunmente repetidos.
  2. Una carga manual con el consiguiente costo administrativo
  3. La capacidad de que la informacion no este correcta (error humano)
  4. Caducidad de la informacion (cambio de telefono, nombre de cuenta o clientes)
  5. Otros errores
Pero un momento… No teniamos TODA esta informacion en nuestro MIIS?, SI!!!!!, asi que aprovechemos esta informacion
Entonces usamos un proceso de MIIS que se llama sincronizacion de salida (Outbound Sync), esto significa que la informacion que tenemos almacenada en nuestro Metaverso, la podemos enviar facilmente a nuestro Active Directory de frontera de manera UNILATERAL (significa que no permitimos el acceso a la informacion del Metaverso pero estamos realizamos un "push" de informacion al Active Directory de frontera) y SOLO ENVIAMOS LA INFORMACION NECESARIA, con lo que reducimos a nuestro atacante a robar solo informacion "descartable". 
Resumiendo, el usar MIIS nos permite directamente:
  1. Enviar automaticamente SOLO la informacion que necesitamos a un directorio determinado
  2. Evitar el error humano y el costo administrativo de manejar un repositorio adicional de informacion
  3. Reducir la superficie de ataque para nuestras aplicaciones de frontera (DMZ)
  4. Mantener la informacion Actualizada y centralizada
  5. Combinar informacion. 

No hay comentarios.:

Publicar un comentario