Header Ads Widget

Ticker

6/recent/ticker-posts

Simplifique la gestión del ciclo de vida de la identidad con SCIM

 En un mundo de aplicaciones en crecimiento, SCIM ayuda con las dificultades del aprovisionamiento de usuarios


Todo desarrollador de aplicaciones espera que su aplicación se vuelva viral. Cree una aplicación, déjela suelta y observe cómo crece. En el mundo del consumidor, las aplicaciones crecen orgánicamente en popularidad a medida que las personas las comparten. En el mundo empresarial, sin embargo, TI necesita un control estricto sobre quién tiene acceso a qué aplicaciones.

A medida que crece la cantidad de aplicaciones utilizadas en una organización, administrar el acceso a cada aplicación se convierte en un desafío. TI debe ser un guardián, pero el aprovisionamiento de usuarios puede ser una carga tremenda.

El departamento de TI debe aprovisionar manualmente todas las cuentas o crear soluciones personalizadas basadas en API para el aprovisionamiento. La mayoría de las aplicaciones proporcionan API de usuario que permiten operaciones CRUD básicas. Sin embargo, mantener integraciones personalizadas entre un almacén de usuarios central (normalmente un proveedor de identidad) y cada aplicación utilizada en una organización se vuelve insostenible para un administrador de TI. Aquí es donde entra en juego el estándar SCIM.

¿Cómo puede SCIM simplificar el aprovisionamiento?

SCIM utiliza protocolos modernos como REST y JSON para definir un esquema de usuario central y las API necesarias para administrar las operaciones del usuario. El estándar SCIM define un cliente, normalmente un proveedor de identidad como Azure Active Directory y un rol de servidor, normalmente una aplicación como Zscaler, Workplace by Facebook o Dropbox.

En SCIM, hay tres atributos obligatorios para un usuario ( id , externalId y meta ), un conjunto de atributos de usuario opcionales de uso común (por ejemplo, nombre , correos electrónicos , jobTitle ) y un marco para extender los atributos de un usuario en función de los requisitos de la aplicación. Este modelo proporciona un lenguaje común para que las aplicaciones y los proveedores de identidad se comuniquen al mismo tiempo que proporciona la flexibilidad necesaria para cumplir con los requisitos específicos de la aplicación.

Comprensión del estándar SCIM

El estándar SCIM puede ser mucho para consumir, por lo que he desglosado algunos de los conceptos clave. Recuerde que gran parte del estándar SCIM es opcional. Puede comenzar con un extremo simple / Usuario que permite crear, actualizar y eliminar un usuario.

Recursos definidos en el estándar SCIM

El estándar SCIM proporciona un esquema predeterminado para administrar usuarios y grupos. El esquema de usuario principal requiere tres atributos como mínimo: id , externalId y meta . Todos los demás atributos son opcionales. El esquema de usuario empresarial amplía el esquema principal para incluir propiedades de usuario adicionales de uso común. Si, por ejemplo, su aplicación procesa pagos, puede usar el esquema de usuario empresarial para recopilar el centro de costos asociado con el usuario.

Esquema de usuario principal (urn: ietf: params: scim: schemas: core: 2.0: User)

nombrelugarfotos
nombre para mostrarzona horariadirecciones
apodoactivogrupos
URL del perfilcontraseñaderechos
títulocorreos electrónicosroles
tipo de usuarionúmeros de teléfonophoneNumbers
X509Certificados
nombre de usuarioIdioma preferidoSoy s

Esquema de usuario empresarial (urn: ietf: params: scim: esquemas: extensión: empresa: 2.0: usuario)

número de empleadocostCenterorganización
divisiónDepartamentogerente

Autorización de autenticación

El estándar SCIM deja la autenticación y la autorización relativamente abiertas. Puede utilizar cookies, autenticación básica, autenticación de cliente TLS o algunos de los otros métodos que se enumeran aquí. Deben tenerse en cuenta las consideraciones de seguridad y las mejores prácticas de la industria al elegir un método de autenticación / autorización. Evite los métodos inseguros como el nombre de usuario y la contraseña en favor de métodos más seguros como los tokens de portador.

Puntos finales

Hay varios puntos finales definidos en SCIM RFC. Puede comenzar con el punto final / User y luego expandirse desde allí. El punto final / Schemas es útil cuando se utilizan atributos personalizados o si su esquema cambia con frecuencia. Permite a un cliente recuperar automáticamente el esquema más actualizado. El punto final / Bulk es especialmente útil cuando se apoya a grupos. Le permite realizar solicitudes por lotes.

PUNTO FINALDESCRIPCIÓN
/UsuarioRealice operaciones CRUD en un objeto de usuario.
/GrupoRealice operaciones CRUD en un objeto de grupo.
/ ServiceProviderConfigProporciona detalles sobre las funciones del estándar SCIM que son compatibles. Por ejemplo, indicaría qué recursos son compatibles y el método de autenticación.
/ ResourceTypesEspecifica metadatos sobre cada recurso.
/ EsquemasEl conjunto de atributos admitidos por cada cliente y proveedor de servicios puede variar. Mientras que un proveedor de servicios puede incluir "nombre", "título" y "correos electrónicos", otro proveedor de servicios puede utilizar "nombre", "título" y "números de teléfono". El punto final de los esquemas permite el descubrimiento de los atributos admitidos.
/AbultarLas operaciones masivas le permiten realizar operaciones en una gran colección de objetos de recursos en una sola operación (por ejemplo, actualizar membresías para un grupo grande)

El conjunto de atributos admitidos por cada cliente y proveedor de servicios puede variar. Mientras que un proveedor de servicios puede incluir nombre , cargo y correos electrónicos , otro proveedor de servicios puede usar nombre , cargo y números de teléfono . El punto final de los esquemas permite el descubrimiento de los atributos admitidos.

Mejores prácticas

Existen ciertas mejores prácticas para usar SCIM. Por ejemplo, el rendimiento es primordial para las grandes organizaciones. Para ayudar a mejorar el rendimiento, especialmente cuando se trata de grandes inquilinos, asegúrese de que las operaciones PATCH estén habilitadas si se admiten grupos. Además, asegúrese de que su punto final tenga un límite de frecuencia superior a 50 solicitudes / seg. Esto permitirá que las grandes organizaciones se incorporen rápidamente a su aplicación. Otras mejores prácticas incluyen:

  • Cada respuesta que devuelve un recurso debe garantizar que cada recurso tenga la propiedad id, excepto ListResponsecon cero miembros.
  • La respuesta a una consulta / solicitud de filtro siempre debe ser una ListResponse
  • No requiera una coincidencia que distinga entre mayúsculas y minúsculas en elementos estructurales en SCIM. En particular, los valores de laop operación PATCH .

Los errores suceden, por lo que anticipar estos errores es una idea buena. Para permitir una recuperación más fácil , considere admitir la eliminación suave o la suspensión de objetos de usuario para permitir la reversión de eliminaciones accidentales. El SCIM RFC admite configurar un objeto de usuario como inactivo y luego activar al usuario. Esto ayuda a garantizar que se puedan recuperar los usuarios que el cliente eliminó accidentalmente.

Ejemplo de operaciones CRUD en un usuario

En las imágenes a continuación, puede ver algunas solicitudes y respuestas de ejemplo para crear, leer y eliminar un usuario. SCIM estandariza estas operaciones por dos razones. Primero, para que cada cliente presente una solicitud en el mismo formato. En segundo lugar, para que los proveedores de servicios devuelvan el objeto en el mismo formato. Esto garantiza que un desarrollador de aplicaciones solo tenga que crear un punto final una vez. Después de esto, funcionará sin problemas con todos los demás clientes o proveedores de identidad.

Solicitar
POST / Usuarios

{
	"schemas": [
	    "urn:ietf:params:scim:schemas:core:2.0:User",
	    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
	"externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
	"userName": "Test_User_ab6490ee-1e48-479e-a20b-2d77186b5dd1",
	"active": true,
	"emails": [{
		"primary": true,
		"type": "work",
		"value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com"
	}],
	"meta": {
		"resourceType": "User"
	},
	"name": {
		"formatted": "givenName familyName",
		"familyName": "familyName",
		"givenName": "givenName"
	},
	"roles": []
}

Respuesta

TTP/1.1 201 Created
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "48af03ac28ad4fb88478", "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef", "meta": { "resourceType": "User", "created": "2018-03-27T19:59:26.000Z", "lastModified": "2018-03-27T19:59:26.000Z" }, "userName": "Test_User_ab6490ee-1e48-479e-a20b-2d77186b5dd1", "name": { "formatted": "givenName familyName", "familyName": "familyName", "givenName": "givenName", }, "active": true, "emails": [{ "value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com", "type": "work", "primary": true }] }

Solicitar
GET / Usuario

GET / Users/5d480a8e9f04aa38008
Response HTTP/1.1 200 OK { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "id": "5d48a0a8e9f04aa38008", "externalId": "58342554-38d6-4ec8-948c-50044d0a33fd", "meta": { "resourceType": "User", "created": "2018-03-27T19:59:26.000Z", "lastModified": "2018-03-27T19:59:26.000Z" }, "userName": "Test_User_feed3ace-693c-4e5a-82e2-694be1b39934", "name": { "formatted": "givenName familyName", "familyName": "familyName", "givenName": "givenName", }, "active": true, "emails": [{ "value": "Test_User_22370c1a-9012-42b2-bf64-86099c2a1c22@testuser.com", "type": "work", "primary": true }] }

Solicitar
eliminación / usuario

DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

Respuesta

HTTP/1.1 204 No Content

Cómo integrar un punto final SCIM con un proveedor de identidad

Una vez que haya creado sus puntos finales compatibles con SCIM 2.0, serán compatibles con varios proveedores de identidad. Explicaré cómo integrarse con Azure Active Directory:

1. Regístrese para un inquilino desarrollador de Azure Active Directory

2. Inicie sesión en el portal de Azure Active Directory .

3. Seleccione Aplicaciones empresariales en el panel izquierdo.

4. Seleccione + Nueva aplicación> Todo> Aplicación de nueva galería.

5. Agregue un nombre para su aplicación y seleccione Agregar para crear un objeto de aplicación. La nueva aplicación se agrega a la lista de aplicaciones empresariales y se abre en su pantalla de administración de aplicaciones.

6. En la pantalla de administración de la aplicación, seleccione Aprovisionamiento en el panel izquierdo.

7. En el menú Modo de aprovisionamiento , seleccione Automático .

8. En el campo URL del inquilino , ingrese la URL del punto final SCIM de la aplicación. Ejemplo:https://api.contoso.com/scim

9. Ingrese un token de portador de OAuth en el campo Token secreto.

10. Seleccione Probar conexión para que Azure Active Directory intente conectarse al punto final SCIM y haga clic en Guardar .

11. En la sección Mapeos , hay dos conjuntos seleccionables de mapeos de atributos: uno para objetos de usuario y otro para objetos de grupo. Seleccione cada uno para revisar los atributos que se aprovisionan desde Azure Active Directory a su aplicación.

12. En Configuración , el campo Ámbito define qué usuarios y grupos se aprovisionan. Seleccione Sincronizar solo usuarios y grupos asignados al realizar la prueba. Asegúrese de que sus usuarios estén asignados a la aplicación.

Si su punto de conexión SCIM es aplicable a más de una organización, puede solicitar que se publique un conector en la galería de aplicaciones de Azure AD. Esto permite que los administradores se integren con su punto final y proporcionen usuarios / grupos rápidamente.

Recursos útiles para comenzar

Publicar un comentario

0 Comentarios