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:
-
Ative o registro de dados para gerar arquivos de log e dados, que você pode baixar e inspecionar.
-
Consulte a documentação do CData ADO.NET Provider for Microsoft Active Directory para informações detalhadas.
-
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 NorteA especificação correta do Container seria:
OU=América do Norte,OU=Vendas,DC=example,DC=comObserve 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.
A ferramenta Portqry pode ser usada para testar a conectividade com o Active Directory:
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 udpSubstitua "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 tcpSe 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.
-