Pular para o conteúdo principal

Configurar atributos de asserção SAML

Os atributos SAML são componentes-chave das asserções SAML que carregam informações específicas sobre o usuário autenticado. Esses atributos podem incluir identificadores de usuário, papéis (Roles), permissões (Permissions) e outros dados relevantes do usuário que o Provedor de Serviço (SP) pode precisar para fins de autorização (Authorization) e personalização.

Entendendo os atributos SAML​

Na autenticação SAML:

  • Os atributos são pares nome-valor que contêm informações do usuário
  • Eles são incluídos na asserção SAML enviada do Provedor de Identidade (Logto) para o Provedor de Serviço
  • Eles ajudam os Provedores de Serviço a tomar decisões informadas sobre acesso e personalização do usuário
Mapeamento de atributos do app SAML

Mapeamento de atributos no Logto​

O mapeamento de atributos permite que você defina como as informações do usuário do Logto devem ser mapeadas para atributos específicos na asserção SAML. Esse mapeamento garante que seu Provedor de Serviço receba as informações do usuário no formato esperado e sob os nomes de atributos esperados.

Ao configurar o mapeamento de atributos:

  1. Você especifica quais propriedades do usuário do Logto devem ser incluídas na asserção SAML
  2. Você define nomes de atributos personalizados que seu Provedor de Serviço espera
  3. Os atributos mapeados são automaticamente incluídos na asserção SAML durante a autenticação

Atributos comuns​

Alguns atributos SAML comumente usados incluem:

  • Sub (ID do usuário)
  • Email
  • Organizações (Organizations)
  • Nome
  • Nome de usuário preferido

Veja todos os dados de usuário disponíveis no Logto

Ao configurar corretamente o mapeamento de atributos, você garante que seu Provedor de Serviço receba todas as informações necessárias do usuário para fornecer o acesso e a personalização adequados para seus usuários.

Você pode mapear todas as informações de usuário disponíveis no Logto para os atributos esperados do seu SP usando as configurações de mapeamento de atributos.

Atributos estáticos​

Alguns Provedores de Serviço esperam atributos que têm o mesmo valor para todos os usuários, como um ID que identifica sua conta ou site no lado do Provedor de Serviço. Atributos estáticos são pares nome-valor fixos que o Logto adiciona a cada asserção SAML do aplicativo, juntamente com os atributos de usuário mapeados.

Por exemplo, uma integração com NetSuite SuiteCommerce pode esperar os atributos account e site:

Nome do atributoValor
accountSeu ID de conta NetSuite
siteSeu ID do site

Configurar atributos estáticos no Console​

  1. Vá para Console > Aplicativos e abra seu aplicativo SAML.
  2. Abra a guia Mapeamentos de atributos e encontre o cartão Atributos estáticos abaixo de Mapeamentos de atributos base.
  3. Insira o nome do atributo em Chave e seu valor em Valor. Clique em Adicionar outro para adicionar mais atributos. Para remover o último atributo, limpe sua chave e valor.
  4. Clique em Salvar alterações.

Configurar atributos estáticos com a Management API​

Defina staticAttributes ao criar ou atualizar um aplicativo SAML com a 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>'

Uma atualização que inclui staticAttributes substitui todo o objeto, então inclua todos os atributos estáticos que deseja manter. Omitir o campo mantém os atributos inalterados, ou envie {} para remover todos eles.

Regras para atributos estáticos​

  • Os nomes dos atributos podem conter letras ASCII, dígitos e os caracteres _ - . : / # @, então nomes URI e OID como http://schemas.example.com/claims/site ou urn:oid:1.3.6.1.4.1.5923.1.1.1.6 são aceitos.
  • Cada atributo estático tem um único valor de string não vazio.
  • Os nomes não devem conflitar entre si ou com os nomes dos atributos de usuário na asserção: os nomes na coluna Nome do valor do seu aplicativo do seu mapeamento de atributos, ou sub, email e name quando nada está mapeado. O Logto compara os nomes após convertê-los para camel case, com ., _ e - como separadores de palavras, então site_id, site.id e SiteId entram em conflito, assim como account e Account. A mesma verificação ocorre quando você altera o mapeamento de atributos. Se ao salvar for relatado um conflito, renomeie um dos atributos.

Todos os atributos na asserção, mapeados e estáticos, usam o NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:basic e são enviados como valores xs:string. Se seu Provedor de Serviço espera nomes URI ou OID com o NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri, verifique se ele também aceita basic.