Saltar al contenido principal

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 de la app SAML

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:

  1. Especificas qué propiedades de usuario de Logto deben incluirse en la aserción SAML.
  2. Defines nombres de atributos personalizados que espera tu Proveedor de Servicios.
  3. 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)
  • Email
  • 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 atributoValor
accountTu ID de cuenta NetSuite
siteTu ID de sitio web

Configurar atributos estáticos en la Consola​

  1. Ve a Consola > Aplicaciones y abre tu aplicación SAML.
  2. Abre la pestaña Mapeo de atributos y encuentra la tarjeta Atributos estáticos debajo de Mapeo de atributos base.
  3. 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.
  4. 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 como http://schemas.example.com/claims/site o urn: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, email y name cuando no se mapea nada. Logto compara los nombres después de convertirlos a camel case, usando ., _ y - como separadores de palabras, por lo que site_id, site.id y SiteId entran en conflicto, al igual que account y Account. 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.