Configurar atributos de aserción SAML
Los atributos SAML son componentes clave de las aserciones SAML que transportan información específica sobre el usuario autenticado. Estos atributos pueden incluir identificadores de usuario, roles, permisos y otros datos relevantes del usuario que el Proveedor de Servicios (SP) puede necesitar para propósitos de autorización y personalización.
Comprendiendo los atributos SAML
En la autenticación SAML:
- Los atributos son pares nombre-valor que contienen información del usuario.
- Se incluyen en la aserción SAML enviada desde el Proveedor de Identidad (Logto) al Proveedor de Servicios.
- Ayudan a los Proveedores de Servicios a tomar decisiones informadas sobre el acceso y la personalización del usuario.
Mapeo de atributos en Logto
El mapeo de atributos te permite definir cómo la información del usuario de Logto debe mapearse a atributos específicos en la aserción SAML. Este mapeo asegura que tu Proveedor de Servicios reciba la información del usuario en el formato esperado y bajo los nombres de atributo esperados.
Cuando configuras el mapeo de atributos:
- Especificas qué propiedades de usuario de Logto deben incluirse en la aserción SAML.
- Defines nombres de atributos personalizados que espera tu Proveedor de Servicios.
- Los atributos mapeados se incluyen automáticamente en la aserción SAML durante la autenticación.
Atributos comunes
Algunos atributos SAML comúnmente utilizados incluyen:
- Sub (ID de usuario)
- Organizaciones (Organizations)
- Nombre
- Nombre de usuario preferido
Ver todos los datos de usuario disponibles en Logto
Al configurar correctamente el mapeo de atributos, aseguras que tu Proveedor de Servicios reciba toda la información necesaria del usuario para proporcionar el acceso y la personalización adecuados para tus usuarios.
Puedes mapear toda la información de usuario disponible en Logto a los atributos esperados por tu SP usando la configuración de mapeo de atributos.
Atributos estáticos
Algunos Proveedores de Servicios esperan atributos que tienen el mismo valor para cada usuario, como un ID que identifica tu cuenta o sitio en el lado del Proveedor de Servicios. Los atributos estáticos son pares nombre-valor fijos que Logto añade a cada aserción SAML de la aplicación, junto con los atributos de usuario mapeados.
Por ejemplo, una integración con NetSuite SuiteCommerce puede esperar los atributos account y site:
| Nombre del atributo | Valor |
|---|---|
account | Tu ID de cuenta NetSuite |
site | Tu ID de sitio web |
Configurar atributos estáticos en la Consola
- Ve a Consola > Aplicaciones y abre tu aplicación SAML.
- Abre la pestaña Mapeo de atributos y encuentra la tarjeta Atributos estáticos debajo de Mapeo de atributos base.
- Ingresa el nombre del atributo en Clave y su valor en Valor. Haz clic en Agregar otro para añadir más atributos. Para eliminar el último atributo, borra su clave y valor.
- Haz clic en Guardar cambios.
Configurar atributos estáticos con Management API
Establece staticAttributes cuando crees o actualices una aplicación SAML con la Management API:
curl \
--request PATCH \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{"staticAttributes": {"account": "<your-account-id>", "site": "<your-site-id>"}}' \
'https://[tenant-id].logto.app/api/saml-applications/<application-id>'
Una actualización que incluya staticAttributes reemplaza todo el objeto, así que incluye cada atributo estático que quieras conservar. Omite el campo para dejarlos sin cambios, o envía {} para eliminar todos.
Reglas para atributos estáticos
- Los nombres de los atributos pueden contener letras ASCII, dígitos y los caracteres
_ - . : / # @, por lo que se aceptan nombres URI y OID comohttp://schemas.example.com/claims/siteourn:oid:1.3.6.1.4.1.5923.1.1.1.6. - Cada atributo estático tiene un único valor de cadena no vacío.
- Los nombres no deben entrar en conflicto entre sí ni con los nombres de atributos de usuario en la aserción: los nombres en la columna Nombre de valor de tu aplicación de tu mapeo de atributos, o
sub,emailynamecuando no se mapea nada. Logto compara los nombres después de convertirlos a camel case, usando.,_y-como separadores de palabras, por lo quesite_id,site.idySiteIdentran en conflicto, al igual queaccountyAccount. La misma comprobación se realiza cuando cambias el mapeo de atributos. Si al guardar se informa de un conflicto, cambia el nombre de uno de los atributos.
Todos los atributos en la aserción, tanto mapeados como estáticos, usan el NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:basic y se envían como valores xs:string. Si tu Proveedor de Servicios espera nombres URI u OID con el NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri, verifica que también acepte basic.