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 aborda 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 Post 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 de 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 links profundos.
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 deep link 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 Consumidor de Asserções (por exemplo, https://example.com/Vinyl/signin-SAML).
Cuidado
Por razões de legado, o Público padrão é a URL 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 pelo 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 fazer 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 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 afirmação ou ambas devem ser assinadas. As opções incluem: - AssertionOrResponse - A afirmação ou a resposta deve ser assinada. - Assertion - A afirmação deve ser assinada. - Response - Apenas a resposta deve ser assinada. A afirmação herda a assinatura da resposta. - AssertionAndResponse - Tanto a afirmaçã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 afirmações SAML contêm atributos. Os atributos são pares chave/valor de múltiplos valores. O App Builder trata os atributos de afirmaçã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ções
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ções. Uma URL de Serviço de Consumidor de Afirmações 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. |
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 por 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 única 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.