Ir para o conteúdo

Provedor de identidade SAML no Jitterbit App Builder

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

Em um cenário de SSO, existem três papéis:

  • Principal - O usuário que acessa um serviço restrito.
  • Provedor de Serviço (SP) - Fornece acesso a serviços restritos.
  • Provedor de Identidade (IdP) - Autentica usuários.

O App Builder pode ser configurado como o 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 terceiros. Normalmente, o terceiro é outra instância do App Builder.

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

Fluxos

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

  • Iniciado pelo Provedor de Serviço (SP)
  • Iniciado pelo Provedor de Identidade (IdP)

Iniciado pelo Provedor de Serviço (SP)

No fluxo iniciado pelo Provedor de Serviço (SP), um usuário navega até um serviço de terceiros e tenta acessar um recurso restrito. O serviço de terceiros redireciona o usuário para o App Builder via o binding de redirecionamento SAML (HTTP GET). Se o usuário ainda não tiver se autenticado, o App Builder redireciona o usuário para o formulário de login.

Uma vez que o usuário tenha se autenticado, o App Builder redireciona o usuário de volta para o serviço de terceiros usando o binding SAML Post (HTTP POST). O serviço de terceiros 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 Iniciado pelo SP, o serviço de terceiros normalmente registra a URL que o usuário tentou acessar antes de realizar o redirecionamento. Uma vez que o processo SSO SAML esteja completo, o SP redireciona o usuário para essa URL. Isso permite links profundos.

Provedor de identidade (IdP) iniciado

No fluxo iniciado pelo Provedor de Identidade (IdP), um usuário segue um link para o Serviço de Autenticação Única. Se o usuário ainda não tiver se autenticado, o App Builder redireciona o usuário para o formulário de login.

Uma vez que o usuário tenha se autenticado, o App Builder redireciona o usuário de volta para o serviço de terceiros usando o binding SAML Post (HTTP POST). Assim como no fluxo Iniciado pelo SP, o serviço de terceiros 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 terceiros, o usuário é tipicamente redirecionado para uma página padrão uma vez que o processo SSO SAML esteja completo. 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

Tokens

  • Emissor: emissor da asserção SAML.
  • Público: restrição de público da asserção SAML. O valor deve ser uma URI sintaticamente válida.
  • Destinatário: destinatário da asserção SAML. O valor deve ser uma URI sintaticamente válida. O padrão é o Serviço de Consumidor de Asserção.
  • ID da Entidade: identificador da entidade SAML. O valor deve ser uma URI sintaticamente válida. O padrão é o Emissor.
  • Sujeito: 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ço (SP) de terceiros que recebe mensagens de resposta SAML (SAMLResponse).
Serviço de Autenticação Única Endpoint que recebe mensagens de solicitação de autenticação (AuthNRequest). O padrão é baseado na URL atual. Veja o Serviço de Autenticação Única abaixo.

Certificados

Propósito 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 de Single Sign-On (SSO).

Como mencionado acima, o 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 seguintes comandos demonstram como gerar um certificado compatível usando a ferramenta de linha de comando OpenSSL.

O seguinte comando gera uma chave privada (key.pem) e um 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 seguinte comando 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. O App Builder precisará saber essa senha para descriptografar a chave privada.

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

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

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

Propriedades

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

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

Observe que isso se aplica apenas a um login iniciado por um Provedor de Identidade (IdP): em um login iniciado por um SP, o SP determina o valor do parâmetro RelayState.

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

Observe que isso se aplica apenas a um login iniciado por um Provedor de Identidade (IdP): em um login iniciado por um SP, o SP determina o valor do parâmetro RelayState.

Os valores aceitáveis variam com base na implementação. Algumas implementações de SAML SP aceitam uma URI de redirecionamento.
ValidUntil Data de expiração dos metadados do SAML IdP. Espera uma data formatada em 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 de usuário para reivindicações. As reivindicações estão incorporadas na asserção SAML como atributos. O nome do atributo corresponde ao identificador da reivindicação.

Por exemplo, se a propriedade Nome foi mapeada para o identificador da 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 Grupo pode ser usada para passar a associação a grupos 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 a grupos, crie um grupo de provedor de segurança e mapeie-o para um grupo do App Builder. Se o usuário for membro do grupo do App Builder, o grupo do provedor de segurança será adicionado à asserção. O identificador do grupo do provedor de segurança é utilizado. Se o identificador for nulo, o nome é utilizado.

Integração

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

  • Serviço de SSO
  • Endpoint de Metadados

Serviço de SSO

O Serviço de SSO recebe mensagens de solicitação SAML (AuthNRequest). A URL do Serviço de SSO terá a seguinte forma:

https://example.com/Vinyl/signin-SAMLIDP

A URL é composta pelas seguintes partes:

Componente Descrição
https://example.com/Vinyl/ URL absoluta do diretório raiz da aplicação App Builder.
SAMLIDP Nome do provedor de segurança SAML IdP codificado em URL. O valor é sensível a maiúsculas e minúsculas.

Endpoint de Metadados

O Endpoint de Metadados publica um documento de metadados (Metadata). A URL do Endpoint de Metadados terá a seguinte forma:

Componente Descrição
https://example.com/Vinyl/ URL absoluta do diretório raiz da aplicação App Builder.
SAMLIDP Nome do provedor de segurança SAML IdP codificado em URL. O valor é sensível a maiúsculas e minúsculas.

Problemas conhecidos e limitações

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

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