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 para o 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. Os 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 Container, mas não é obrigatório.

Claims

O provedor do Active Directory mapeia as seguintes propriedades 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 atravessar limites de domínio. Adicionar o número da porta ao domínio (por exemplo, example.com:389) pode melhorar o desempenho.

Troubleshooting

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

Esse erro pode significar que a especificação do Container está incorreta. Pode referir-se 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:

\Sales\North America

A especificação correta do Container seria:

OU=North America,OU=Sales,DC=example,DC=com

Observe que os nomes das Unidades Organizacionais não diferenciam maiúsculas de minúsculas.

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

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

Os clientes interagem com o Active Directory via LDAP. Como observado 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 com a 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 com a 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 nos formatos User Principal Name (user@example.com) ou 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."

Esse 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.