Provedor de segurança SAML no Jitterbit App Builder
A autenticação SAML Single Sign-On (SSO) é definida nos seguintes documentos:
- Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
- SAML Version 2.0 Errata 05
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 um SP ou IdP usando o provedor de segurança apropriado. Este documento abrange o provedor de segurança SAML, que é utilizado para o papel de SP. Nesse papel, o App Builder delega a autenticação a um IdP de terceiros. Os IdPs suportados incluem:
Para o papel de IdP, consulte o provedor de identidade SAML.
Fluxos
A especificação SAML Single Sign-On (SSO) define vários fluxos. O provedor de segurança SAML 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é o App Builder e tenta acessar uma página restrita. O App Builder redireciona o usuário para o Provedor de Identidade (IdP) via o binding de Redirecionamento SAML (HTTP GET). Uma vez autenticado, o IdP redireciona o usuário de volta para o App Builder usando o binding de Postagem SAML (HTTP POST). O App Builder valida a Resposta SAML, mapeia o identificador de nome para uma conta de usuário local do App Builder e concede os direitos associados à conta do usuário.
Observe que, antes de redirecionar o usuário para o IdP, o App Builder registra a URL da página que o usuário tentou acessar. Uma vez que o usuário tenha se autenticado, o App Builder redireciona o usuário de volta para a página originalmente solicitada. Isso permite o deep linking.
Provedor de identidade (IdP) iniciado
No fluxo do Provedor de Identidade (IdP), um usuário navega diretamente para o IdP. Uma vez autenticado, o usuário é redirecionado para o App Builder via o binding SAML Post (HTTP POST). Assim como no fluxo Iniciado pelo SP, o App Builder valida a Resposta SAML, mapeia o identificador de nome para uma conta de usuário local do App Builder e concede os direitos associados à conta do usuário.
Normalmente, o App Builder redireciona o usuário para sua página inicial após um login bem-sucedido. No entanto, o IdP pode realizar um link profundo passando o URI no parâmetro RelayState da Resposta SAML. Veja o parâmetro AllowRelayStateRedirects abaixo.
Configuração
Tokens
- Emissor: O emissor da asserção SAML. O padrão é o público.
- Público: Restrição de público da asserção SAML. O valor deve ser um URI sintaticamente válido.
- Destinatário: O destinatário da asserção SAML. Este valor deve ser um URI sintaticamente válido. O padrão é o URI do Serviço de Consumidor de Asserção (por exemplo, https://example.com/Vinyl/signin-SAML).
Cuidado
Por razões de legado, o Público padrão é a URL da raiz da aplicação (por exemplo, https://example.com/Vinyl/). É altamente recomendável que você defina explicitamente o Público em vez de confiar no padrão.
Endpoints
| Tipo | Descrição |
|---|---|
| Endpoint de Metadados | Endpoint de metadados do serviço de SSO (Single Sign-On) SAML. Este parâmetro é obrigatório se os parâmetros Endpoint de Redirecionamento de Solicitação ou SigningCertificate estiverem indefinidos. |
| URI RelayState | URI de redirecionamento RelayState permitido para uma solicitação iniciada por um Provedor de Identidade (IdP) SAML. Veja o parâmetro AllowRelayStateRedirects para informações adicionais. |
| Endpoint de Redirecionamento de Solicitação | Endpoint de solicitação de autenticação SSO (Single Sign-On) SAML para o binding de Redirecionamento. Este parâmetro é obrigatório se o Endpoint de Metadados estiver indefinido. |
Certificados
| Propósito | Tipo | Formato | Descrição |
|---|---|---|---|
| Validação de Assinatura | Certificado X.509 |
|
Certificado X.509 usado para validar assinaturas de respostas SAML de Single Sign-On (SSO). O certificado de validação de assinatura é necessário se o Endpoint de Metadados não estiver definido. |
Propriedades
O provedor de segurança SAML define os seguintes parâmetros adicionais:
| Parâmetro | Padrão | Descrição |
|---|---|---|
| AllowRelayStateRedirects | False |
Indica se um provedor de identidade SAML (IdP) iniciado pode incluir uma URI de redirecionamento no parâmetro RelayState. A URI de redirecionamento é o local para onde o usuário será redirecionado após o login. Por padrão, o parâmetro RelayState não pode conter uma URI de redirecionamento. Defina como True para permitir URIs de redirecionamento no parâmetro RelayState. Para se proteger contra ataques de relé aberto, a URI deve corresponder ao endpoint da RelayState URI. |
| IgnoreTlsErrors | False |
Indica se o App Builder deve ignorar erros de certificado HTTPS ao fazer solicitações de canal de retorno para recuperar os metadados do serviço. Esta configuração é apenas para configuração e testes. Não ative esta configuração em um sistema em funcionamento. |
| SignatureRequirement | AssertionOrResponse |
Indica se a resposta SAML, a asserção ou ambas devem ser assinadas. As opções incluem: - AssertionOrResponse - A asserção ou a resposta deve ser assinada. - Assertion - A asserção deve ser assinada. - Response - Apenas a resposta deve ser assinada. A asserção herda a assinatura da resposta. - AssertionAndResponse - Tanto a asserção quanto a resposta devem ser assinadas. |
| LogPII | False |
Indica que informações pessoalmente identificáveis (PII) devem ser registradas. Esta configuração entra em vigor na inicialização. |
Declarações
As asserções SAML contêm atributos. Os atributos são pares chave/valor multivalorados. O App Builder trata os atributos de asserção SAML como declarações. O nome do atributo mapeia para um identificador de declaração.
Por exemplo, dado um assertion SAML com o seguinte atributo:
<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
<AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>
Mapear o identificador http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name para a propriedade Name definirá o nome do usuário como "Arthur.Dent" quando a conta do usuário for provisionada.
A tabela a seguir descreve os mapeamentos de reivindicações padrão:
| Identificador | Propósito | Descrição |
|---|---|---|
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier | Identificador de Nome | Identificador único e imutável usado para mapear a identidade de terceiros a um usuário do App Builder. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | Nome | Nome do usuário. |
| http://schemas.xmlsoap.org/claims/Group | Grupo | Associação a grupo de segurança. |
| http://schemas.zudy.com/identity/claims/fullname | Nome Completo | Nome completo. |
| http://schemas.zudy.com/identity/claims/displayname | Nome de Exibição | Nome amigável. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | Endereço de Email | Endereço de email. |
| http://schemas.zudy.com/identity/claims/phonenumber | Número de Telefone | Número de telefone. |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint | Impressão digital do certificado X.509. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname | Nome distinto do certificado X.509. | |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns | Nome DNS do certificado X.509. |
Integração
Serviço de consumidor de afirmação
O provedor de segurança SAML expõe um único endpoint. O endpoint recebe Respostas SAML. Isso é referido como o Serviço de Consumidor de Afirmação. Uma URL do Serviço de Consumidor de Afirmação do App Builder pode parecer algo assim:
https://example.com/Vinyl/signin-SAML
A URL é composta pelas seguintes partes:
| Componente | Descrição |
|---|---|
| https://example.com/Vinyl/ | URL absoluta do diretório raiz da aplicação App Builder. |
| SAML | Nome do provedor de segurança SAML codificado em URL. O valor é sensível a maiúsculas e minúsculas. |
Provisionar usuários
Uma vez que o provedor de segurança SAML está configurado, você deve garantir que os usuários tenham identidades correspondentes no App Builder para conseguir fazer login com sucesso.
Provisionamento manual
Os usuários podem ser associados manualmente ao provedor de segurança SAML por um administrador:
-
Navegue até IDE > Gerenciamento de Usuários.
-
No painel Identidades, clique em + Identidade para criar uma nova identidade.
-
Ao configurar a nova identidade, certifique-se de selecionar SAML como o Provedor de segurança e insira o Identificador que corresponde ao nome de usuário IdP do usuário (normalmente o email ou NameID).
Provisionamento automático
Para lidar com a integração em massa de usuários sem entrada manual, você pode habilitar o recurso Combinar Usuário Existente. Isso é útil quando você já possui uma lista de usuários no App Builder e deseja vinculá-los automaticamente às suas identidades SAML no primeiro login.
-
Navegue até IDE > Provedores de Segurança.
-
Se o seu provedor de segurança SAML já existir, encontre-o no painel Autenticação de Usuário e clique duas vezes no ícone de expandir no final de sua linha. Se ainda não existir, clique em + Autenticação de Usuário.
-
Na tela de configuração que se abre, localize o grupo de campos Provisionamento e habilite a caixa de seleção Provisionamento de Usuário. Ao fazer isso, a caixa de seleção Combinar Usuário Existente aparecerá. Habilite-a.
Uma vez que esse recurso esteja habilitado, quando um usuário tentar fazer login via SAML, o App Builder verifica se já existe uma conta de usuário local com um nome de usuário que corresponda ao identificador de nome SAML. Se uma correspondência for encontrada, o sistema cria automaticamente o link de identidade para esse usuário durante o processo de login, concedendo acesso imediatamente.
Solução de problemas
Erro "The AudienceRestrictionCondition was not valid because the specified Audience is not present in AudienceUris."
Esse erro indica que a URI do público não corresponde. Certifique-se de que a propriedade Audience foi definida explicitamente. Se não estiver definida, ela será padrão para a URL atual, que pode variar de acordo com o usuário. O valor é sensível a maiúsculas e minúsculas.
Problemas conhecidos e limitações
O provedor de segurança SAML Single Sign-On (SSO) do App Builder possui as seguintes limitações:
- Apenas uma restrição de público pode ser validada.
- O protocolo de resolução de Artifact não é suportado.
- O protocolo de Logout não é suportado.