Ir para o conteúdo

Provedor de Segurança - Provedor de Identidade SAML

A autenticação SAML Single Sign-On (SSO) é definida nos seguintes documentos:

Em um cenário SSO, há três funções:

  • Principal - O usuário que acessa um serviço restrito.
  • Service Provider (SP) - Fornece acesso a serviços restritos.
  • Identity Provider (IdP) - Autentica usuários.

App Builder pode ser configurado como SP ou IdP usando o provedor de segurança apropriado. Este documento abrange o provedor de segurança * SAML IdP*. O provedor de segurança SAML IdP autentica usuários em nome de um SP de externo. Normalmente, o externo é outra instância de App Builder.

Para a papel SP, consulte o SAML provedor de segurança.

Fluxos

A especificação SAML Single Sign-On (SSO) define vários fluxos. O provedor de segurança SAML IdP suporta os seguintes fluxos SAML SSO:

  • Provedor de serviços (SP) iniciado
  • Provedor de identidade (IdP) iniciado

Provedor de Serviços (sp) Iniciado

No fluxo iniciado pelo Provedor de Serviços (SP), um usuário navega para um serviço de externo e tenta acessar um recurso restrito. O serviço de externo redireciona o usuário para App Builder por meio da ligação de redirecionamento SAML (HTTP GET). Se o usuário ainda não estiver autenticado, App Builder redireciona o usuário para o formulário de login.

Depois que o usuário for autenticado, App Builder redireciona o usuário de volta ao serviço de externo usando a vinculação SAML Post (HTTP POST). O serviço de externo valida a resposta SAML, mapeia o identificador de nome para uma conta de usuário local e concede os direitos associados a essa conta de usuário.

No fluxo SP Initialted, o serviço de externo normalmente registra a URL que o usuário tentou acessar antes de executar o redirecionamento. Assim que o processo SAML SSO for concluído, o SP redireciona o usuário para essa URL. Isso habilita deep links.

Provedor de Identidade (idp) Iniciado

No fluxo iniciado pelo Identity Provider (IdP), um usuário segue um link para o Single Sign-On Service. Se o usuário ainda não tiver se autenticado, App Builder redireciona o usuário para o formulário de login.

Depois que o usuário tiver se autenticado, App Builder redireciona o usuário de volta ao serviço de externo usando a vinculação SAML Post (HTTP POST). Assim como no fluxo SP Initiated, o serviço de externo valida a resposta SAML, mapeia o identificador de nome para uma conta de usuário local e concede os direitos associados a essa conta de usuário.

Como o fluxo do IdP não é iniciado pelo SP de externo, o usuário normalmente é redirecionado para uma página padrão quando o processo SAML SSO é concluído. No entanto, alguns SPs permitirão que o IdP redirecione o usuário para um local arbitrário passando uma URL no parâmetro RelayState.

Configuração

Fichas

  • Emissor: emissor da asserção SAML.
  • Audience: restrição de audiência de asserção SAML. O valor deve ser um URI sintaticamente válido.
  • Recipient: destinatário da asserção SAML. O valor deve ser um URI sintaticamente válido. O padrão é o Assertion Consumer Service.
  • ID da entidade: identificador da entidade SAML. O valor deve ser um URI sintaticamente válido. O padrão é Issuer.
  • Assunto: SAML NameId. O padrão é o nome do usuário atual.

Endpoints

Tipo Descrição
Serviço de consumidor de asserção endpoint do provedor de serviços de terceiros (SP) que recebe mensagens de resposta SAML (SAMLResponse).
Serviço de Logon Único Endpoint que recebe mensagens de solicitação de autenticação (AuthNRequest). Padrões com base na URL atual. Veja Serviço de Logon Único abaixo.

Certificados

Objetivo Tipo Formato Descrição
Assinatura Certificado X.509 com chave privada PKCS#12 (PFX), protegido por senha, codificado em base64 Certificado X.509 com chave privada. Usado para assinar a resposta SAML Single Sign-On (SSO).

Conforme observado acima, App Builder requer um certificado de assinatura PKCS#12 codificado em base64 com chave privada. O processo para gerar um certificado está fora do escopo deste documento. No entanto, para fins ilustrativos, os comandos a seguir demonstram como gerar um certificado compatível usando o utilitário de linha de comando OpenSSL.

O comando a seguir gera uma chave privada (key.pem) e certificado autoassinado (cert.pem):

$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes -days 1095 -subj "/CN=localhost/O=App Builder"

O comando a seguir gera um arquivo PKCS#12 (cert.pfx) contendo a chave privada e o certificado:

$ openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx

Você será solicitado a fornecer uma senha. App Builder precisará saber essa senha para descriptografar a chave privada.

Finalmente, o comando a seguir codifica o arquivo PKCS#12 em base64:

$ openssl base64 -in cert.pfx -out cert.txt -A

Copie e cole o conteúdo de cert.txt em App Builder.

Propriedades

O provedor de segurança SAML IdP define os seguintes parâmetros adicionais:

Parâmetro Padrão Descrição
Permitir passagem de estado do relé False Indica se valores arbitrários de RelayState recebidos do cliente devem ser passados para o Provedor de Serviços SAML (SP).

Observe que isso se aplica somente a um sign-on iniciado pelo Provedor de Identidade (IdP): em um sign-on iniciado pelo SP, o SP determina o valor do parâmetro RelayState.

Por padrão, o IdP SAML não passará o valor RelayState para o SP. Defina como True para permitir que os valores RelayState sejam passados para o SP.
CacheDuration Duração do cache de metadados do IdP SAML em segundos.
RelayState Valor passado para o Provedor de Serviços SAML (SP) no parâmetro RelayState.

Observe que isso se aplica somente a um sign-on iniciado pelo Provedor de Identidade (IdP): em um sign-on iniciado pelo SP, o SP determina o valor do parâmetro RelayState.

Os valores aceitáveis variam com base na implementação. Algumas implementações do SP SAML aceitam um URI de redirecionamento.
ValidUntil Data de expiração dos metadados do IdP SAML. Espera uma data formatada ISO 8601, como:
  • 2025-06-09
  • 2025-06-09T16:13:52+00:00
  • 2025-06-09T16:13:52Z

Reivindicações

O provedor de segurança SAML IdP mapeia propriedades do usuário para declarações. As declarações são incorporadas na asserção SAML como atributos. O nome do atributo corresponde ao identificador da declaração.

Por exemplo, se a propriedade Nome foi mapeada para o identificador de reivindicação http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, a asserção SAML conteria o seguinte atributo:

<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
  <AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>

A propriedade Group pode ser usada para passar associação de grupo de segurança. Por padrão, as asserções SAML não incluem grupos. Você deve registrar explicitamente os grupos que devem ser incluídos.

Para incluir a associação ao grupo, crie um grupo de provedores de segurança e mapeie-o para an App Builder grupo. Se o usuário for membro do App Builder group, o grupo do provedor de segurança será adicionado à asserção. O identificador do grupo do provedor de segurança é usado. Se o identificador for nulo, o nome é usado.

Integração

O provedor de segurança SAML IdP expõe os seguintes endpoints:

  • Serviço de Login Único
  • Endpoint de metadados

Serviço de Login Único

O Single Sign-On Service recebe mensagens de solicitação SAML (AuthNRequest). A URL do Single Sign-On Service terá o seguinte formato:

https://example.com/App Builder/signin-SAMLIDP

A URL é composta das seguintes partes:

Componente Descrição
https://example.com/App Builder/ URL absoluta do App Builder diretório raiz do aplicativo.
SAMLIDP Nome do provedor de segurança SAML IdP codificado por URL. O valor diferencia maiúsculas de minúsculas.

Endpoint de Metadados

O Metadata Endpoint publica um documento de metadados (Metadata). A URL do Metadata Endpoint terá o seguinte formato:

https://example.com/App Builder/metadata-SAMLIDP

A URL é composta das seguintes partes:

Componente Descrição
https://example.com/App Builder/ URL absoluta do App Builder diretório raiz do aplicativo.
SAMLIDP Nome do provedor de segurança SAML IdP codificado por URL. O valor diferencia maiúsculas de minúsculas.

Problemas e Limitações Conhecidos

O App Builder o provedor de segurança SAML IdP tem as seguintes limitações:

  • Somente uma única restrição de público pode ser fornecida.
  • As respostas SAML não podem ser criptografadas.
  • As respostas SAML não podem ser assinadas.
  • Asserções SAML são sempre assinadas.
  • O protocolo de resolução de artefatos não é suportado.
  • O protocolo Logout não é suportado.