Header Ads Widget

Ticker

6/recent/ticker-posts

SCIM: Creación de la capa de identidad para Internet

 

scim-construyendo-la-capa-de-identidad-para-internet-doerrfeld-bill-nordic-apis

En 2014, un grupo de trabajo llegó a un consenso para la versión 2.0 de SCIM , un estándar simple pero poderoso que cada vez más organizaciones digitales grandes están comenzando a adoptar para la administración de identidades entre dominios. Apenas el mes pasado, Internet dio un salto adelante en la estandarización de las especificaciones SCIM, ahora publicadas oficialmente por el Grupo de trabajo de ingeniería de Internet como RFC7643 y RFC7644 .

En este artículo presentamos el protocolo SCIM , seguimos el progreso del estándar e identificamos nuevos estándares de recuperación de recursos documentados en el RFC de septiembre de 2015 . Guiados por el colaborador del grupo de trabajo de IETF Erik Wahlstrom, presentaremos los conceptos básicos de SCIM e identificaremos las lecciones aprendidas del diseño de la API de SCIM que han dirigido una mayor iteración del proyecto en su conjunto. En artículos futuros, profundizaremos en el uso del estándar SCIM para crear cuentas de usuario en un servicio virtual.

¿Qué es SCIM?

Las empresas están muy distribuidas : las aplicaciones y los datos se envían y almacenan por todas partes, desde servidores en la nube, sistemas asociados hasta servidores internos. En un entorno disperso, es fácil perder el control de dónde están los datos. Pero a medida que la privacidad de los datos se convierte cada vez más en un tema candente, recuperar el control de la identidad es una prioridad absoluta.

Ingrese SCIM. SCIM (Sistema para la gestión de identidades entre dominios) se ha creado como una forma de estandarizar la forma en que las empresas crean, actualizan y eliminan datos de identidad: un estándar para la gestión del ciclo de vida de la identidad en línea al permitir un método estándar para intercambiar identidad con otros socios o sistemas.

SCIM es un protocolo de aprovisionamiento ligero que define específicamente dos cosas:

  • Esquema : el perfil de identidad puede ser un usuario, grupo, máquina u otra entidad de recursos. SCIM define cómo se ven esos recursos y cómo están estructurados.
  • Protocolo : el método de transporte; ¿Cómo enviamos los datos del usuario a diferentes sistemas?

Estandarizado por el Grupo de Trabajo de Ingeniería de Internet ( IETF ), los contribuyentes al proyecto incluyen empresas como Nexus, Oracle, SailPoint, Salesforce, Google, Cisco, Ping Identity y Microsoft. Parece que el estándar SCIM está obteniendo el entusiasmo y la participación que se merece, lo que indica una hoja de ruta hacia la ubicuidad futura.


Vea a Erik Wahlstroem de Nexus Technology y el grupo de trabajo SCIM IETF

Casos de uso para SCIM

Hay dos sistemas distintos involucrados en el uso de SCIM: un sistema que crea o lee datos de identidad del usuario y el sistema que almacena estos datos. En un mundo de regulaciones en competencia, a menudo se necesitan diferentes niveles de confianza entre las partes. En Alemania, por ejemplo, para enviar información personal, necesita el consentimiento del usuario cada vez que lo hace. SCIM no se mete en esta madriguera, sin preocuparse por las obligaciones legales. Asume que existe el derecho a compartir información entre los dos jugadores. Suponiendo que esta confianza ya se ha establecido entre las dos entidades utilizando otras metodologías de seguridad., SCIM se puede utilizar para intercambiar información de identidad para una variedad de casos de uso. A continuación se muestran tres ejemplos:

1: Sincronización entre sistemas corporativos

¿Qué sucede cuando un nuevo empleado se une a una corporación? Es probable que un gerente de recursos humanos agregue un nuevo perfil de usuario a su base de datos. Como sería tedioso crear perfiles redundantes en todos los sistemas internos y en la nube, lo ideal es que la empresa quiera sincronizar automáticamente los datos en todos los sistemas. La estandarización del control de identidad con SCIM habilita un método para la creación y eliminación de datos de identidad universal.

2: Aprovisionamiento bajo demanda

Para las empresas que utilizan CRM como Salesforce, terminas pagando una tarifa mensual por cada cuenta. Pero, ¿qué sucede cuando los empleados se van, los equipos de ventas cambian y, por lo tanto, se modifica la cantidad de usuarios? SCIM podría ayudar a las empresas a ahorrar dinero instigando el aprovisionamiento bajo demanda, en el que cuando se crea una cuenta de Salesforce, se crea una cuenta de SCIM. Cuando un usuario abandona, la cuenta se puede eliminar fácilmente y los costos operativos disminuyen .

3: Transferencia entre nubes

¿Alguna vez ha tenido dificultades para cambiar de cuenta en las aplicaciones de Google? Aún más problemático es transferir los activos de la empresa existentes entre varias plataformas en la nube. Supongamos que una empresa quisiera migrar de Office 365 a Google; realmente no hay una manera fácil de hacerlo. Sin embargo, si todos los proveedores admitieran el estándar SCIM, la información del usuario podría moverse más fácilmente.

Comparación de esquemas y SPML

Antes de SCIM ha habido intentos de estandarizar el control de identidad entre dominios. SPML, desarrollado por OASIS , ha sido un protocolo abierto desde 2003. Sin embargo, es pesado, está basado en XML y no define un esquema , lo que significa que cada vez que se envían datos, los sistemas del otro extremo no entienden realmente qué se supone que el recurso debe verse como.

SCIM, por otro lado, permite a los desarrolladores crear sus propios esquemas y define dos de inmediato: usuario y grupo . También se han elaborado estándares para extender esto dentro de la especificación central con el esquema de usuario empresarial , para atender a un gerente de TI con privilegios únicos. SCIM también tiene un esquema que define esquemas, lo que permite que los sistemas se comuniquen entre sí para averiguar qué recursos admiten y cómo se ven. Un metaesquema ayuda a determinar las capacidades de cada servidor: ¿puede crear usuarios? ¿Filtrar usuarios? Ésta es una gran diferencia entre SPML y SCIM.

Asegurando-la-fortaleza-API-blog-post-CTA-01

La API SCIM

SCIM se maneja a través de una API basada en REST para aprovisionamiento, cambio y desaprovisionamiento, todo lo cual se encuentra fuera del ámbito de OAuth y SAML. Con el auge de las API web y los microservicios , algunos han considerado que SAML es demasiado pesado con su XML detallado. SCIM más bien pide tokens de autenticación y acceso en JSON compacto, que se pasa a través de encabezados HTTP.

La API de SCIM se puede probar desde una línea de comandos, es compatible con cURL y con cortafuegos. Wahlstrom señala que las API basadas en REST se pueden usar como proxy a través de un firewall y pueden implementar fácilmente la seguridad estándar utilizando certificaciones SSL y TLS y cifrado de datos . El estándar SCIM no define necesariamente un método de autenticación, pero recomienda OAuth2.

El esquema principal de SCIM menciona 5 puntos finales únicos:

RECURSOPUNTO FINALOPERACIONESDESCRIPCIÓN
Usuario/ UsuariosOBTENER, PUBLICAR, PONER, PARCHEAR, ELIMINARRecuperar / Agregar / Modificar usuarios
Grupo/ GruposOBTENER, PUBLICAR, PONER, PARCHEAR, ELIMINARRecuperar / Agregar / Modificar grupos
Configuración del proveedor de servicios/ ServiceProviderConfigsOBTENERRecuperar la configuración del proveedor de servicios
Esquema/ EsquemasOBTENERRecuperar el esquema de un recurso
A granel/A granelCORREOModificar recursos de forma masiva

Formateado a partir de la documentación de la API de SCIM

Por ejemplo, la publicación en el /Userspunto final se puede utilizar para crear un usuario. En este caso, un desarrollador recibiría una respuesta correcta HTTP 201 que incluye una ID, un identificador único creado para cada recurso que también obtiene su propia URL. Esto actúa como un enlace permanente , lo que permite a un desarrollador acceder a la misma información del usuario desde una GETrespuesta donde la información del usuario siempre se almacena, independientemente de las ediciones futuras. Incrementar el descubrimiento con la ayuda de esquemas es esencial para la comunicación socio-socio .

Como el almacenamiento de usuarios puede ser enorme, las especificaciones de SCIM incluyen funciones como filtrado, paginación y clasificación. A continuación, exploraremos algunas otras características y veremos por qué fueron estandarizadas por el grupo de trabajo de SCIM.

Lea también: Intercambio de datos en IoT

Características

Como describe Wahlstroem, han pasado por muchas iteraciones de SCIM. Después de muchas decisiones y votaciones (que a menudo implicaban tararear en grupo para llegar a un consenso), el grupo de trabajo del IETF alcanzó los estándares para los siguientes conjuntos de características. Las conclusiones de estas lecciones de diseño definitivamente podrían aplicarse a otros escenarios de desarrollo, así que preste atención.

  • Extensibilidad : al desarrollar un estándar, no puede complacer a todos; inevitablemente habrá valores atípicos que soliciten características extendidas fuera del alcance del proyecto. Con este fin, el equipo de SCIM adoptó la regla 80-20 y solo especificó el 80% más común de los casos de uso. Centrarse en la entrega de casos básicos es extremadamente esencial para diseñar estándares, ya que los casos de esquina del percentil del 20% a menudo toman la mayor parte de su tiempo y son mucho más difíciles de implementar.
  • Control de versiones de API y esquema : los estándares SCIM colocan el control de versiones de la API en la URL . Esto significa que se realiza un seguimiento de un registro de control de versiones para cada recurso específico, lo que proporciona un registro histórico de todas las entradas de identidad. Aunque el equipo consideró el control de versiones en el encabezado, optaron por la URL para retener el enlace permanente para la detección permanente del perfil en una única ubicación fija. Esto hace que sea más fácil de entender para los ejecutores y facilita el seguimiento de los registros con /v1/Users/username/v2/Users/usernamey así sucesivamente.
  • ETag débiles para el control de versiones de datos de usuario : los ETag se utilizan mucho en el mundo web, como para almacenar en caché dentro de su navegador, por ejemplo. En SCIM, la función HTTP de ETag débiles se usa para rastrear el control de versiones de archivos específicos. Los ETag débiles permiten que los sistemas retengan los mismos datos incluso en diferentes opciones de formato. Esto puede ocurrir si un nuevo desarrollador que usa una variante del analizador JSON cambia la ubicación de dos atributos diferentes. Los ETag débiles permiten que los sistemas sepan que los datos son los mismos.
  • Manejo de errores : la definición de códigos de error puede ser un proceso tedioso, pero vale la pena para aumentar la satisfacción del desarrollador final. A los usuarios no les gusta mirar sin comprender un mensaje de error 404; las respuestas de error deben ser legibles por máquinas legibles por humanos , por lo que el grupo define códigos de error sólidos y detallados en la especificación SCIM.
  • Sobrecarga del método HTTP : a algunos firewalls y proxies no les gustan todos los verbos HTTP; a menudo, los servidores y los servidores cliente no admiten DELETEni PATCHllaman. Entonces, el estándar SCIM resuelve esto al permitir POSTque se realice una llamada con una X-HTTP-Method-Override: DELETEfunción, una clave importante para permitir que se realicen solicitudes a diferentes servicios con soporte de verbo variable.

Conclusión: progresar en un estándar necesario

Un gran beneficio de SCIM es que los clientes pueden poseer sus propios datos e identidades. El inicio de sesión único simplificado (SSO) es un paso importante para la nube y el aumento de la interoperabilidad entre los sistemas. SCIM es un paso importante para la privacidad y, según Wahlstroem, un paso vital en la construcción de una capa de identidad en Internet. Según la última Solicitud de comentarios , "la intención de SCIM es reducir el costo y la complejidad de las operaciones de administración de usuarios al proporcionar un esquema de usuario común, un modelo de extensión y un protocolo de servicio definido por este documento".

Estén atentos para más artículos, en los que profundizaremos en el uso del estándar SCIM para crear cuentas de usuario en un servicio virtual.

Recursos

  • Página de inicio de SCIM
  • Solicitud de comentarios de SCIM 7644
  • Anuncio SCIM / RFC de Nexus
  • ID independiente, Phil Hunt
  • Tutorial de SCIM, identidad de ping
  • Introducción a las diapositivas de presentación SCIM, Twobo Technologies
  • Gestión de la identidad del usuario en aplicaciones basadas en la nube con SCIM
  • Hilo de discusión por correo electrónico de SCIM, IETF

Publicar un comentario

0 Comentarios