Ir para o conteúdo

Provedor de segurança do Active Directory no Jitterbit App Builder

O provedor de segurança do Active Directory (AD) é um esquema de autenticação baseado em formulários. Ao usar o provedor de segurança do AD, os usuários fornecem seu nome de usuário e senha do AD ao App Builder. O App Builder utiliza LDAP para validar as credenciais fornecidas pelo usuário contra um repositório do AD.

Implantações modernas devem favorecer SAML single sign-on (SSO) e WS-Federation em vez da autenticação do AD. O SAML SSO e o WS-Federation oferecem maior segurança na medida em que os usuários não precisam fornecer suas credenciais a um aplicativo de terceiros. Como o AD não respeita um contexto de autenticação existente, a autenticação do AD não é um esquema de SSO adequado. Por essa razão, o SAML SSO e o WS-Federation geralmente oferecem melhor usabilidade, pois não exigem que um usuário reintroduza suas credenciais. Finalmente, como os tokens de segurança do SAML SSO e do WS-Federation são negociados pelo navegador via HTTP, eles não exigem que um aplicativo de terceiros tenha acesso direto aos controladores de domínio do AD. Isso torna o SAML SSO e o WS-Federation mais adequados para implantações em nuvem.

Configuração

O provedor de segurança do AD suporta tanto o provisionamento de usuários quanto de grupos. Usuários e grupos são registrados usando seu nome de conta SAM.

Parâmetros

Parâmetro Valor Padrão Exemplo Obrigatório Descrição
Container DC=example,DC=com Não Especificação do contêiner LDAP do AD.
Context Domínio Tipo de contexto do AD. Valores válidos incluem Domínio, Máquina e ApplicationDirectory.
Domain example.com
example.com:389
Sim Nome do domínio do Active Directory (AD). Pode incluir um número de porta opcional.
Password Não Senha da conta do AD. Veja abaixo para mais informações.
UserName Não Nome de usuário da conta do AD. Veja abaixo para mais informações.

Por padrão, o App Builder se conectará aos controladores de domínio do AD como o usuário do pool de aplicativos do IIS. Isso pode não funcionar em todas as situações, especialmente se o servidor web não estiver hospedado no domínio do AD. Nesse caso, será necessário fornecer o nome de usuário e a senha de uma conta no domínio. Ao criar a conta, considere o seguinte:

  • A conta precisa ter acesso de leitura à árvore do AD: a filiação ao grupo de segurança "Domain Users" é suficiente.
  • A conta pode pertencer à Unidade Organizacional identificada pela especificação do Contêiner, mas não precisa.

Claims

O provedor do Active Directory mapeia as seguintes propriedades do UserPrincipal para tipos de reivindicação:

  • SamAccountName
  • Name
  • DisplayName
  • EmailAddress
  • VoiceTelephoneNumber

Additional information

Para validar credenciais contra um repositório do Active Directory (AD), o App Builder precisará ser capaz de se conectar aos controladores de domínio do AD via LDAP. Tradicionalmente, isso ocorre na porta 389.

Um atraso de 20 segundos ou mais pode ocorrer ao cruzar limites de domínio. Adicionar o número da porta ao domínio (por exemplo, example.com:389) pode melhorar o desempenho.

Troubleshooting

Se você encontrar problemas com o provedor de segurança do Active Directory, estas etapas de solução de problemas são recomendadas:

  1. Ative o registro de dados para gerar arquivos de log e dados, que você pode baixar e inspecionar.

  2. Consulte a documentação do CData ADO.NET Provider for Microsoft Active Directory para informações detalhadas.

  3. Alguns erros específicos estão listados abaixo, com etapas de solução de problemas sugeridas:

    • Erro: "Não existe tal objeto no servidor."

      Este erro pode significar que a especificação do Contêiner está incorreta. Pode se referir a uma Unidade Organizacional inexistente. Se estiver trabalhando com Unidades Organizacionais aninhadas, pode significar que a ordem está incorreta. As Unidades Organizacionais devem ser fornecidas em ordem inversa. Por exemplo, dado o seguinte caminho:

      \Vendas\América do Norte
      

      A especificação correta do Container seria:

      OU=América do Norte,OU=Vendas,DC=example,DC=com
      

      Observe que os nomes das Unidades Organizacionais não são sensíveis a maiúsculas e minúsculas.

    • Erro: "O servidor não pôde ser contatado." "O servidor LDAP está indisponível."

      Este erro indica que o App Builder não conseguiu se conectar ao controlador de domínio do Active Directory. Verifique a propriedade do Domínio.

      Os clientes interagem com o Active Directory via LDAP. Como mencionado no seguinte artigo da Microsoft Knowledgebase, o Servidor LDAP se comunica na porta 389 usando os protocolos UDP e TCP.

      https://support.microsoft.com/pt-br/help/832017/service-overview-and-network-port-requirements-for-windows

      A ferramenta Portqry pode ser usada para testar a conectividade com o Active Directory:

      https://support.microsoft.com/pt-br/help/816103/how-to-use-portqry-to-troubleshoot-active-directory-connectivity-issue

      A ferramenta pode ser baixada do site da Microsoft:

      https://www.microsoft.com/pt-br/download/confirmation.aspx?id=17148

      Observe que a ferramenta Portqry deve ser executada a partir do servidor web do App Builder.

      Para testar a conectividade na porta 389 usando UDP, execute o seguinte comando:

      > portqry -n ad.example.com -e 389 -p udp
      

      Substitua "ad.example.com" pelo nome do host ou endereço IP do servidor Active Directory.

      Para testar a conectividade na porta 389 usando TCP:

      > portqry -n ad.example.com -e 389 -p tcp
      

      Se os testes forem bem-sucedidos, você verá uma resposta de consulta LDAP incluindo a data e hora atuais, bem como várias propriedades do Active Directory. O seguinte é um exemplo de uma resposta de consulta LDAP bem-sucedida:

      currentdate: 10/20/2018 11:22:33 (unadjusted GMT)
      subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=example,DC=com
      dsServiceName: CN=NTDS Settings,CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=com
      namingContexts: DC=example,DC=com
      defaultNamingContext: DC=example,DC=com
      schemaNamingContext: CN=Schema,CN=Configuration,DC=example,DC=com
      configurationNamingContext: CN=Configuration,DC=example,DC=com
      rootDomainNamingContext: DC=example,DC=com
      supportedControl: 1.2.840.113556.1.4.319
      supportedLDAPVersion: 3
      supportedLDAPPolicies: MaxPoolThreads
      highestCommittedUSN: 249947
      supportedSASLMechanisms: GSSAPI
      dnsHostName: SERVER.example.com
      ldapServiceName: example.com:server$@EXAMPLE.COM
      serverName: CN=SERVER,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=com
      supportedCapabilities: 1.2.840.113556.1.4.800
      isSynchronized: TRUE
      isGlobalCatalogReady: TRUE
      domainFunctionality: 6
      forestFunctionality: 6
      domainControllerFunctionality: 6
      
    • Erro: "O nome de usuário ou a senha estão incorretos."

      Se o arquivo de log contiver o erro "O nome de usuário ou a senha estão incorretos", isso pode significar que o nome de usuário ou a senha usados pelo App Builder para consultar o controlador de domínio do Active Directory são inválidos. Verifique as propriedades UserName e Password.

    • Erro: "Ou o nome de usuário ou a senha estão incorretos."

      Um usuário pode ver o erro normal "Ou o nome de usuário ou a senha estão incorretos" ao fazer login, mesmo que tenha fornecido credenciais válidas. Isso pode indicar que o nome de usuário foi fornecido no formato errado.

      Ao fazer login, não forneça o nome de usuário nem nos formatos User Principal Name (user@example.com) nem Down-Level Logon Name (EXAMPLE\user). Em vez disso, forneça o nome de usuário não qualificado.

    • Erro: "O nome de usuário fornecido não corresponde ao nome da conta SAM de um principal de usuário."

      Este erro indica que o usuário está tentando se autenticar com uma conta que não corresponde à especificação do Container. Por exemplo, a especificação do Container pode restringir o acesso a uma Unidade Organizacional específica. Nesse caso, esse erro indicaria que a conta do usuário não pertence à Unidade Organizacional.