Você pode usar o espaço de trabalho Autenticação para configurar serviços de diretório para o SaltStack Config usando o protocolo LDAP. Esse protocolo é usado para conexão com serviços como o Active Directory ou o Microsoft Azure.

Observação: Você pode usar mais de um sistema ao mesmo tempo para autenticar usuários no SaltStack Config se necessário. Por exemplo, você pode usar um IdP baseado em SAML ou um IdP baseado em LDAP ao mesmo tempo em que armazena algumas credenciais de usuário nativamente no servidor RaaS. No entanto, o SaltStack Config não permite configurar mais dois provedores SAML ou dois provedores LDAP ao mesmo tempo.

O SaltStack Config usa o seguinte processo de back-end para autenticar sistemas baseados em LDAP:

  • Visualização: quando você visualiza suas configurações de conexão, o SaltStack Config recupera uma lista de amostra de usuários e grupos do seu servidor LDAP, para que você possa verificar se inseriu os parâmetros de configuração corretos.
  • Login: quando um usuário insere credenciais no formulário de login do SaltStack Config, o servidor de back-end verifica se há uma correspondência no banco de dados naquele momento. Em seguida, ele inicia um processo de pesquisa em várias etapas e, ao encontrar uma correspondência, autentica o usuário. Devido a esse processo de pesquisa, usuários individuais em grupos ativados não aparecem no espaço de trabalho Funções até o primeiro login do usuário.
  • Tarefas em segundo plano: o SaltStack Config executa um trabalho em segundo plano periodicamente para pesquisar cada grupo e usuário vinculado na conexão do Serviço de Diretório, com o objetivo de garantir que ele ainda existe. Se o grupo ou o usuário tiver sido removido, o servidor de back-end desativará seu link no banco de dados.
  • Grupos e usuários arquivados: todos os grupos que você remove da conexão com o Serviço de Diretório são arquivados. Mesmo que esses grupos estejam inativos e os usuários não consigam fazer login, eles ainda estão visíveis no espaço de trabalho Funções e podem ser selecionados. Isso também se aplica a todos os usuários removidos anteriormente visíveis no espaço de trabalho Funções.
  • Grupos aninhados: ao trabalhar com grupos aninhados, ao ativar um grupo pai, você também ativa todos os grupos filho por padrão.

Configurando uma conexão LDAP

Para configurar o LDAP, primeiro crie uma conexão e, em seguida, permita que usuários e grupos LDAP específicos sejam autenticados no SaltStack Config. Depois de ativar grupos ou usuários, você poderá definir suas configurações de Controle de Acesso Baseado em Função (RBAC).

Você pode optar por pré-preencher os campos com configurações padrão personalizadas para o seu serviço de diretório, como o Active Directory ou o OpenLDAP.

Observação: As etapas a seguir devem ser concluídas por um administrador experiente do LDAP ou do Active Directory que entenda o layout geral do sistema LDAP. Entre em contato com seu administrador para obter assistência.

Para configurar um serviço de diretório LDAP:

  1. (Opcional) Antes de configurar o LDAP, pode ser útil testar sua conexão e suas consultas usando uma ferramenta de terceiros. Para usuários do AD, é possível usar o LDP ou o ADSI Edit. Para usuários do Linux, a ferramenta recomendada é ldapsearch.
    Observação: Para obter mais informações sobre como fazer testes com essas ferramentas, consulte Como verificar e solucionar problemas em uma conexão com um Serviço de Diretório, no Centro de Suporte.
  2. Clique em Administração > Autenticação no menu lateral.
  3. Clique em Criar.
  4. No menu Tipo de Configuração, selecione LDAP.
  5. (Opcional) Em Configurações, clique em Pré-preencher Padrões e selecione seu serviço de diretório na lista suspensa.

    As entradas padrão são preenchidas de acordo com a sua seleção. Porém, determinadas entradas, como DN de Pesquisa do Usuário estão incompletas. Certifique-se de verificar se as entradas correspondem ao esquema do serviço de diretório e de substituir o texto de espaço reservado pelos valores corretos do serviço.

  6. Insira ou verifique informações para a sua conexão LDAP.

    Básica

    Campo Descrição
    Nome Nome da conexão LDAP. Como este é apenas um nome de exibição, insira qualquer nome seria útil para ajudar a diferenciar esse back-end de autenticação dos demais.
    Host Endereço do servidor host LDAP, formatado como um FQDN ou endereço IP.
    Porta Porta na qual o servidor LDAP está configurado. O padrão é 389 para LDAP não criptografado e 636 para LDAP por SSL.
    Sincronização em segundo plano O SaltStack Config valida aqui todos os usuários e grupos com base no back-end de autenticação em um intervalo definido (em minutos).
    SSL
    Ativar SSL
    Selecione para se conectar ao servidor LDAP via SSL (Secure Sockets Layer) usando o certificado especificado nas configurações do servidor RaaS. Se nenhuma configuração for fornecida, o armazenamento de certificados do sistema será usado para validar a conexão SSL. Para obter mais informações sobre como configurar o servidor RaaS, consulte Configurar certificados SSL no guia de instalação e configuração SaltStack Config.
    Importante: Como prática recomendada, selecione Ativar SSL. Quando essa opção fica desmarcada, o SaltStack Config transmite informações em texto simples por uma conexão insegura.
    Validar Certificado
    Selecione para garantir que os certificados SSL sejam validados após a conexão. Deixe essa opção desmarcada para ignorar a validação, por exemplo, ao usar certificados autoassinados (não recomendados para produção).

    Autenticação

    Campo Descrição
    DN Base de Autenticação

    Nome Distinto do LDAP Base. Este é o local de onde grupos e usuários são consultados, por exemplo DC=sse,DC=example,DC=com.

    Observação: A página de detalhes do LDAP inclui campos de entrada separados para Classe de Objeto de Pessoa, Nome do Atributo da Conta, Classe do Grupo, Nome do Atributo do Grupo e Agendamento de Sincronização, conforme descrito abaixo. Consequentemente, não inclua estes objetos no campo DN Base.
    DN de Associação do Administrador DN do administrador configurado para o servidor LDAP. O SaltStack Config usa isso para se autenticar no diretório para pesquisas de usuários e grupos. Insira a entrada com base na seguinte sintaxe: cn=Administrator,cn=Users,dc=example,dc=com.
    Senha do DN de Associação do Administrador

    A senha individual do administrador.

    Ela é armazenada com criptografia no banco de dados. Não é armazenada em texto simples.

    Filtro do DN de Associação de Autenticação

    Filtro aplicado para selecionar um usuário específico. O resultado dessa pesquisa é um DN de usuário que o SaltStack Config usa para vincular ao diretório e conceder acesso ao SaltStack Config para o usuário. Isso é útil para limitar o número de resultados que são retornados de uma determinada pesquisa.

    Observação: Como a sintaxe do filtro pode se tornar bastante complexa, uma prática recomendada é testar a entrada usando LDAP, ldapsearch ou uma ferramenta semelhante para validar sua entrada e fazer quaisquer ajustes antes de preencher esse campo.

    O filtro de amostra a seguir retornará apenas uma conta correspondente ao nome de usuário fornecido pertencente aos grupos DevOps ou Level II.

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

    Se estiver usando padrões pré-preenchidos, certifique-se de substituir o texto de espaço reservado pelos valores corretos do seu serviço de diretório.

    Observação: Ao configurar uma estrutura de floresta, deixe esse campo em branco.
    Nome do Atributo de ID Exclusivo Remoto Nome do valor usado para identificar entradas exclusivas. Este é o atributo de ID exclusivo para todas as entradas. No AD, isso é ObjectGUID.

    Grupos

    Campo Descrição
    DN de Pesquisa de Grupos A base de pesquisa para grupos. Por exemplo, no AD, isso pode ser cn=Groups,dc=example,dc=com. Indica em que local no diretório procurar grupos. Use junto com o Escopo de Pesquisa de Grupo abaixo.
    Escopo de Pesquisa de Grupo

    Indica a profundidade de pesquisa de diretório a partir da base indicada no DN de Pesquisa de Grupos e pode ter um destes quatro valores:

    baseObject
    Valor 0, muitas vezes chamado de base. Use-o para pesquisar somente por esse objeto e nenhum outro.
    singleLevel
    Valor 1, muitas vezes chamado de one. Use-o para considerar apenas filhos imediatos da entrada base para correspondências.
    wholeSubtree
    Valor 2 (ou SUBTREE em ldap3), muitas vezes chamado de sub. Use-o para pesquisar a base e todos os seus subordinados em qualquer profundidade.
    subordinateSubtree
    Valor 3, muitas vezes chamado de subordinates. É o mesmo que wholeSubtree, mas a entrada da pesquisa base é ignorada.
    Filtro do DN de Pesquisa de Grupos Filtro de pesquisa para extrair grupos do diretório. Em geral, é (objectClass=group), mas, em algumas configurações do AD, pode ser (objectCategory=group). Use junto com a Classe de Grupos para obter mais granularidade.
    Classe de Grupos Nome da classe de objeto usada para definir grupos, por exemplo, groupOfNames.
    Atributo de Nome do Grupo O nome do atributo que você deseja usar para o nome do grupo. Insira um atributo de valor único, e não com vários valores.
    Atributo de Associação de Grupo O nome do atributo na entrada do usuário que contém o nome do grupo, por exemplo, memberOf.

    Usuários

    Campo Descrição
    DN de Pesquisa de Usuários A base de pesquisa para usuários, por exemplo, cn=Users,dc=example,dc=com no AD ou cn=people,cn=accounts,dc=example,dc=com em outros serviços de diretório. Indica em que local no diretório procurar usuários. Use junto com o Escopo de Pesquisa de Usuários abaixo.
    Escopo de Pesquisa de Usuários Indica a profundidade de pesquisa de diretório a partir da base indicada no DN de Pesquisa de Usuários e pode ter um destes quatro valores. Consulte os quatro valores descritos em Escopo de Pesquisa de Grupos.
    Filtro do DN de Pesquisa de Usuários Filtro de pesquisa para extrair usuários do diretório. Em geral, é (objectClass=person), mas, em algumas configurações do AD, pode ser (objectCategory=user).
    Classe de Pessoas Nome da classe do Serviço de Diretório contendo os usuários para os quais você deseja permitir o login. A maioria dos sistemas (incluindo o Active Directory) usa person, mas alguns podem preferir user ou inetOrgPerson.
    Atributo de ID de Usuário O nome exclusivo do atributo de conta do usuário. Para o AD, ele é sAMAccountName. Para outros serviços, costuma ser uid ou memberUid.
    Atributo de Associação de Usuário O nome do atributo na entrada de grupo que contém o nome do usuário. Exemplos possíveis incluem member ou uniquemember.
  7. Para visualizar suas configurações sem salvar, clique em Atualizar Visualização.

    A janela de visualização mostra usuários e grupos selecionados para a sua conexão. Você pode selecionar a guia Grupos ou Usuários para visualizar usuários e grupos associados ao serviço conforme necessário.

  8. Clique em Salvar.

    Sua configuração LDAP foi salva. Para verificar se a configuração está correta, convém tentar fazer login no SaltStack Config a partir de uma conta de usuário de teste. Se você não conseguir fazer login com êxito, consulte Solução de problemas para obter dicas.

    Observação: Para configurações LDAP, o SaltStack Config armazena as configurações de conexão, incluindo os grupos e usuários identificados. Ele recupera apenas grupos e usuários dentro do escopo que você definiu e não sincroniza o diretório inteiro.

    Com o tempo, talvez seja necessário atualizar ou repetir a sincronização do seu diretório LDAP. Por exemplo, você deverá atualizar seu diretório se tiver adicionado novos usuários e quiser ativá-los no SaltStack Config.

Ativando grupos e usuários

Depois de configurar sua conexão LDAP, você precisará configurar grupos do serviço de diretório e garantir que os usuários possam fazer login no SaltStack Config. Para configurar grupos do serviço de diretório:

  1. No espaço de trabalho Autenticação, selecione a configuração LDAP necessária.
  2. Selecione a guia Grupos para ver uma lista de grupos recuperados da sua configuração LDAP.
    Observação: Se você estiver recuperando um grande número de grupos, a página poderá demorar até um minuto para ser carregada.
  3. Selecione os grupos que você deseja ativar no SaltStack Config.
  4. Selecione a guia Usuários para ver uma lista de usuários recuperados da sua configuração LDAP.
    Observação: Se você estiver recuperando um grande número de usuários, a página poderá demorar até um minuto para ser carregada.
  5. Selecione os usuários que você deseja ativar no SaltStack Config.
    Observação: Todos os usuários incluídos nos grupos ativados já estão marcados e não podem ser desmarcados.
    Uma lista de usuários que já foram ativados no SaltStack Config
  6. Clique em Salvar.

    Agora, você pode definir configurações de controle de acesso baseado em função (RBAC) para os grupos selecionados. No entanto, o espaço de trabalho Funções permite que você gerencie as configurações para usuários individuais incluídos nos grupos selecionados somente após o primeiro login do usuário. Para excluir grupos ou usuários, desmarque o grupo ou usuário e clique em Salvar.

    Para obter mais informações sobre o RBAC no SaltStack Config, consulte Como definir funções de usuários.

Solucionando problemas com a conexão LDAP

Se você não conseguir visualizar sua conexão com êxito, siga estas etapas de solução de problemas.
Problema Descrição Solução
Não consigo visualizar minha conexão

Se você não conseguir visualizar seus grupos e usuários, em muitos casos, isso se deverá a um problema de conexão entre o servidor LDAP e o SaltStack Config ou a uma entrada inválida no formulário de configuração LDAP.

  1. Assegure-se de que as conexões TCP do SaltStack Config com a porta selecionada no servidor LDAP sejam permitidas.
  2. Verifique as entradas do formulário e valide a sintaxe usando uma ferramenta de terceiros. Consulte Como verificar e solucionar problemas em uma conexão com o Serviço de diretório.
  3. Se nenhum dos itens anteriores ajudar a resolver o problema, consulte a seção Outros problemas abaixo.
  4. Se nenhum dos itens acima ajudar, entre em contato com o suporte personalizado.
Ao tentar visualizar minha conexão, o carregamento da página fica suspenso Se o carregamento da página ficar suspenso por mais de dois minutos, reinicie o serviço RaaS e, em seguida, exclua e recrie a configuração.
  1. Abra o log do RaaS.
    tail -f /var/log/raas/raas

    O log contém um erro semelhante ao seguinte:

    [ERROR    :256][ForkPoolWorker-2:10253][ldap_preview_background_task(some_uuid)]
    Task ldap preview_background_task[some_uuid]raised unexpected: KeyError('ad-1_preview')
  2. Em seguida, pare e reinicie o serviço RaaS.
    systemctl stop raas
    systemctl start raas
  3. Retorne à interface do usuário do SaltStack Config e exclua a conexão LDAP.
    Observação:

    Talvez você queira copiar e colar suas entradas de configuração em um arquivo de texto de backup antes de excluir.

  4. Crie a configuração LDAP outra vez.
Outros problemas diversos

Se você já configurou e salvou sua conexão LDAP, mas os usuários não conseguem fazer login, ou se você estiver se deparando com outros problemas, verifique os logs de raas com depuração estendida ativada para ajudar a determinar a causa raiz.

Para ativar a depuração estendida:

  1. No RaaS, abra /etc/raas/raas.
  2. Faça as seguintes alterações:
    • Em Loggingoptions, remova as marcas de comentário de log_file_loglevel:debug
    • Em AD/LDAPdriverconfiguration, remova as marcas de comentário de log_level e defina como log_level:EXTENDED
  3. Em seguida, pare e reinicie o serviço RaaS.
    systemctl stop raas
    systemctl start raas
  4. Visualize o log de raas.
    tail -f /var/log/raas/raas

Alguns erros comuns que você pode ver nos logs são os seguintes:

  • Configurações incorretas para a conexão (SSL). Ajuste suas configurações SSL.
    [raas.utils.validation.schemas.settings][DEBUG   :546 ][Webserver:9096]
    Error while connecting to AD/LDAP Server. SSL connection issues: socket
    ssl wrapping error: [Errno 104] Connection reset by peer
  • Senha incorreta para o DN de Associação do Administrador. Verifique e insira novamente sua senha.
    [raas.utils.rpc   ][DEBUG   :284 ][Webserver:9095]
    Processed RPC request(129360670417695). Response:
    {'riq': 129360670417695, 'ret': None, 'error': {'code': 3004, 'message':
    'Request validation failure.', 'detail': {'_schema':
    ['Credentials are not valid']}}, 'warnings': []}
  • O Filtro do DN de Associação de Autenticação padrão pré-preenchido está criando um conflito. Deixe o campo em branco ou use {username} em vez de {{username}}.
    Observação:

    Você pode encontrar esse erro quando já salvou sua conexão LDAP, mas os usuários não conseguem fazer login.

    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :903 ][Webserver:9096]
    Running _get_auth_backend_user with this search_filter: (&(objectclass=person)(sAMAccountName={username}))
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :931 ][Webserver:9096]
    Could not find any user using '(&(objectclass=person)(sAMAccountName={username}))'
    as the search filter in the ldap backend under the ad-1 configuration.
    Trying remote_uid 'None'
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :963 ][Webserver:9096]
    Could not find any user using '(&(objectClass=person)(objectGUID=None))'
    as the search filter in the ldap backend under the ad-1 configuration.