Autenticação LDAP usando o Windows Active Directory

Saiba como configurar SSL ou TLS para autenticação LDAP usando o Windows Active Directory.

Para o Netezza Performance Server 11.1.0.1 e versões inferiores

  1. Adicione os usuários do Windows Active Directory ao banco de dados.
    create user <user> password <password>
    Defina a senha de acordo com sua política de senha.
    Exemplo:
    nzsql -c "create user ad_user1 password 'password';"
  2. Defina o tipo de autenticação.
    SET AUTHENTICATION LDAP
    • Defina a autenticação como AD com o SSL DESLIGADO
      1. Execute o comando.
        nzsql -c " SET AUTHENTICATION LDAP BASE 'dc=nzdevelopment,dc=com' NAMECASE lowercase SERVER 'AD_SERVER' SSL 'OFF' BINDPW Netezzapwd BINDDN 'cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com'; "

        No qual cn refere-se ao Nome comum e dc ao Componente de domínio.

      2. Como o usuário " root, atualize o arquivo " /etc/sssd/sssd.conf no host.
        Talvez seja necessário alterar manualmente as linhas em negrito se elas ainda não estiverem definidas.
        =============================/etc/sssd/sssd.conf=============================
        
        [domain/external_ldap]
        
        ldap_tls_reqcert = never
        ldap_id_use_start_tls = False
        ldap_schema = AD
        ignore_group_members = True
        auth_provider = ldap
        id_provider = ldap
        ldap_rfc2307_fallback_to_local_users = True
        ldap_referrals = False
        ldap_id_mapping = True
        override_homedir = /home/%u
        ldap_network_timeout = 3
        ldap_opt_timeout = 60
        cache_credentials = True
        ldap_user_search_base = dc=nzdevelopment,dc=com
        entry_cache_group_timeout = 0
        entry_cache_user_timeout = 0
        ldap_search_timeout = 30
        entry_cache_timeout = 600
        ldap_default_bind_dn = cn=ad_user1,cn=Users,dc=nzdevelopment,dc=com
        ldap_uri = ldap://<AD_SERVER>:389
        #debug_level = 10
        case_sensitive = False
        ldap_group_name = CN
        ldap_user_name = sAMAccountName
        
        ldap_default_authtok_type = obfuscated_password
        ldap_default_authtok = AAAQANEC2d5xigH0d4w9phf5F9zD4PvXWvxwz61LYsoQq5BM/M7WslokdqbS6CnOyTzGp4XmzCC7owRfYq8sALPYypoAAQID
        [sssd]
        services = nss, ifp, sudo, ssh, pam
        domains = external_ldap
        
        [nss]
        memcache_timeout = 600
        homedir_substring = /home
        
        [pam]
        #debug_level = 10
        
        [sudo]
        [autofs]
        [ssh]
        [pac]
        [ifp]
        
      3. Como o usuário root, reinicie o serviço sssd.

        Se você tiver muitos grupos e/ou usuários no servidor AD, poderá melhorar o desempenho do login adicionando " ldap_group_member = uniqueMember ao arquivo " sssd.conf.

        1. Adicione ' ldap_group_member = uniqueMember à seção ' [domain/external_ldap] em ' /etc/sssd/sssd.conf.
        ignore_group_members = True (add only if not present since this variable was already exist)
        ldap_group_member = uniqueMember
        2. Reinicie o serviço " sssd:
        systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

        3. Verifique a autenticação.

    • Definir a autenticação como AD com o SSL ativado
      Um certificado deve ser emitido para o servidor AD por uma autoridade de certificação confiável. Obtenha o arquivo de certificado CA e salve-o em um local no sistema do Netezza Performance Server. Para os sistemas de alta disponibilidade (HA) do sistema Netezza Performance Server, salve o arquivo em um local na unidade compartilhada, como um novo diretório em ' /nz. Ambos os nós do sistema do Netezza Performance Server devem ser capazes de acessar o arquivo de certificado usando o mesmo nome de caminho.
      1. Defina a autenticação do AD com SSL ativado.
        nzsql -c " SET AUTHENTICATION LDAP BASE 'dc=nzdevelopment,dc=com' NAMECASE lowercase SERVER 'AD_SERVER' SSL 'ON' BINDPW Netezzapwd BINDDN 'cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com'; "
      2. Como usuário " root, atualize manualmente o arquivo " /etc/sssd/sssd.conf no host Netezza Performance Server.

        É possível conectar-se ao servidor AD sobre SSL ou TSL. Talvez seja necessário alterar manualmente as linhas em negrito se elas ainda não estiverem definidas.

        1. Para se conectar ao servidor AD por SSL, atualize os seguintes itens.
          ===========================/etc/sssd/sssd.conf=============================
          [domain/external_ldap]
          
          ldap_tls_reqcert = demand
          ldap_id_use_start_tls = False
          ldap_tls_cacert = /nz/caCert/ca_cert.pem
          ldap_schema = AD
          ignore_group_members = True
          auth_provider = ldap
          id_provider = ldap
          ldap_rfc2307_fallback_to_local_users = True
          ldap_referrals = False
          ldap_id_mapping = True
          override_homedir = /home/%u
          ldap_network_timeout = 3
          ldap_opt_timeout = 60
          cache_credentials = True
          ldap_user_search_base = dc=nzdevelopment,dc=com
          entry_cache_group_timeout = 0
          entry_cache_user_timeout = 0
          ldap_search_timeout = 30
          entry_cache_timeout = 600
          ldap_default_bind_dn = cn=ad_user1,cn=Users,dc=nzdevelopment,dc=com
          ldap_uri = ldaps://<AD_SERVER>:636
          #debug_level = 10
          case_sensitive = False
          ldap_group_name = CN
          ldap_user_name = sAMAccountName
          
          ldap_default_authtok_type = obfuscated_password
          ldap_default_authtok = AAAQAEPSvINy7WB7Y5ULLHAgp9PNt9Ivdd5KZlp7DDzN7a+5wpRrq8dBoA4RonugOBXhxMA44TglOom7u4cqMBpFeoAAAQID
          [sssd]
          services = nss, ifp, sudo, ssh, pam
          domains = external_ldap
          
          [nss]
          memcache_timeout = 600
          homedir_substring = /home
          
          [pam]
          #debug_level = 10
          
          [sudo]
          [autofs]
          [ssh]
          [pac]
          [ifp]
          [secrets]
          
        2. Para se conectar ao servidor AD por TLS, use o seguinte modelo.
          ===========================/etc/sssd/sssd.conf=============================
          [domain/external_ldap]
          
          ldap_tls_reqcert = demand
          ldap_id_use_start_tls = True
          ldap_tls_cacert = /nz/caCert/ca_cert.pem
          ldap_schema = AD
          ignore_group_members = True
          auth_provider = ldap
          id_provider = ldap
          ldap_rfc2307_fallback_to_local_users = True
          ldap_referrals = False
          ldap_id_mapping = True
          override_homedir = /home/%u
          ldap_network_timeout = 3
          ldap_opt_timeout = 60
          cache_credentials = True
          ldap_user_search_base = dc=nzdevelopment,dc=com
          entry_cache_group_timeout = 0
          entry_cache_user_timeout = 0
          ldap_search_timeout = 30
          entry_cache_timeout = 600
          ldap_default_bind_dn = cn=ad_user1,cn=Users,dc=nzdevelopment,dc=com
          ldap_uri = ldap://<AD_SERVER>:389
          #debug_level = 10
          case_sensitive = False
          ldap_group_name = CN
          ldap_user_name = sAMAccountName
          
          ldap_default_authtok_type = obfuscated_password
          ldap_default_authtok = AAAQAEPSvINy7WB7Y5ULLHAgp9PNt9Ivdd5KZlp7DDzN7a+5wpRrq8dBoA4RonugOBXhxMA44TglOom7u4cqMBpFeoAAAQID
          [sssd]
          services = nss, ifp, sudo, ssh, pam
          domains = external_ldap
          
          [nss]
          memcache_timeout = 600
          homedir_substring = /home
          
          [pam]
          #debug_level = 10
          
          [sudo]
          [autofs]
          [ssh]
          [pac]
          [ifp]
          [secrets]
          
        Observação: 1. Para o atributo ldap_tls_cacert de " sssd.conf, mencione o nome do arquivo do certificado da CA com o local correto do diretório.

        2. O servidor Active Directory mencionado no comando " SET AUTHENTICATION deve corresponder ao nome do host no arquivo de certificado do servidor LDAP.

      3. Como o usuário root, reinicie o serviço sssd.
        systemctl restart sssd

      Se você tiver muitos grupos e/ou usuários no servidor AD, poderá melhorar o desempenho do login adicionando " ldap_group_member = uniqueMember ao arquivo " sssd.conf.

      1. Adicione ' ldap_group_member = uniqueMember à seção ' [domain/external_ldap] em ' /etc/sssd/sssd.conf.
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2. Reinicie o serviço " sssd.
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3. Verifique a autenticação.

Para o Netezza Performance Server 11.1.0.2 e superior

  1. Adicione os usuários do Windows Active Directory ao banco de dados.
    create user <user> password <password>
    Defina a senha de acordo com sua política de senha.
    Exemplo:
    nzsql -c "create user ad_user1 password 'password';"
  2. Configure o tipo de autenticação:
    • Defina a autenticação como AD com SSL/TLS OFF
      1. Execute o comando.
        nzsql -c " SET AUTHENTICATION LDAP BASE 'dc=nzdevelopment,dc=com' NAMECASE lowercase SERVER 'AD_SERVER' SSL 'OFF' BINDPW Netezzapwd BINDDN 'cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com' ATTRNAME 'sAMAccountName';"
      2. Agora, o arquivo " sssd.conf tem a seguinte aparência.
        [domain/external_ldap]
        
        ###The below common parameters and values should not be changed
        
        ldap_default_authtok_type = obfuscated_password
        ldap_schema = AD
        ldap_group_name = CN
        ldap_user_name = sAMAccountName
        ignore_group_members = True
        auth_provider = ldap
        ldap_rfc2307_fallback_to_local_users = True
        ldap_referrals = False
        override_homedir = /home/%u
        ldap_network_timeout = 3
        ldap_opt_timeout = 60
        cache_credentials = True
        entry_cache_group_timeout = 0
        entry_cache_user_timeout = 0
        ldap_search_timeout = 30
        id_provider = ldap
        entry_cache_timeout = 600
        case_sensitive = False
        ldap_id_mapping = True
        #ldap_group_attribute =
        #debug_level = 10
        
        ###Supplied from Input
        
        ldap_uri = ldap://AD_SERVER:389
        ldap_user_search_base = dc=nzdevelopment,dc=com
        ldap_default_bind_dn = cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com
        ldap_tls_reqcert = never
        #ldap_id_use_start_tls =
        #ldap_tls_cacert =
        
        ldap_default_authtok = AAAQAA5gKJVg+dHVdi2LU9uTepJAJRYtMh1mlO8vp4ysVuFjw5OrxTeY4MteantA1+FLTm2+XGmtdokCsiZAfGExIlsAAQID
        [sssd]
        services = nss, ifp, sudo, ssh, pam
        domains = external_ldap
        
        [nss]
        memcache_timeout = 600
        homedir_substring = /home
        
        [pam]
        #debug_level = 10
        
        [sudo]
        [autofs]
        [ssh]
        [pac]
        [ifp]
        [secrets]

        Se você tiver muitos grupos e/ou usuários no servidor AD, poderá melhorar o desempenho do login adicionando " ldap_group_member = uniqueMember ao arquivo " sssd.conf.

        1. Adicione ' ldap_group_member = uniqueMember à seção ' [domain/external_ldap] em ' /etc/sssd/sssd.conf.
        ignore_group_members = True (add only if not present since this variable was already exist)
        ldap_group_member = uniqueMember
        2. Reinicie o serviço " sssd.
        systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

        3. Verifique a autenticação.

    • Definir a autenticação como AD com o SSL ativado
      Um certificado deve ser emitido para o servidor AD por uma autoridade de certificação confiável. Obtenha o arquivo de certificado CA e salve-o em um local no sistema do Netezza Performance Server. Para os sistemas de alta disponibilidade (HA) do sistema Netezza Performance Server, salve o arquivo em um local na unidade compartilhada, como um novo diretório em ' /nz. Ambos os nós do sistema do Netezza Performance Server devem ser capazes de acessar o arquivo de certificado usando o mesmo nome de caminho.
      1. Defina a autenticação do AD com SSL ativado.
        nzsql -c " SET AUTHENTICATION LDAP BASE 'dc=nzdevelopment,dc=com' NAMECASE lowercase SERVER 'AD_SERVER' SSL 'ON' BINDPW Netezzapwd BINDDN 'cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com' ATTRNAME 'sAMAccountName' CACERT '/nz/caCert/ca_cert.pem';"
        CACERT é o caminho do arquivo de certificado de autoridade de certificação.
      2. Agora, o arquivo " sssd.conf tem a seguinte aparência.
        [domain/external_ldap]
        
        ###The below common parameters and values should not be changed
        
        ldap_default_authtok_type = obfuscated_password
        ldap_schema = AD
        ldap_group_name = CN
        ldap_user_name = sAMAccountName
        ignore_group_members = True
        auth_provider = ldap
        ldap_rfc2307_fallback_to_local_users = True
        ldap_referrals = False
        override_homedir = /home/%u
        ldap_network_timeout = 3
        ldap_opt_timeout = 60
        cache_credentials = True
        entry_cache_group_timeout = 0
        entry_cache_user_timeout = 0
        ldap_search_timeout = 30
        id_provider = ldap
        entry_cache_timeout = 600
        case_sensitive = False
        ldap_id_mapping = True
        #ldap_group_attribute =
        #debug_level = 10
        
        ###Supplied from Input
        
        ldap_uri = ldaps://AD_SERVER:636
        ldap_user_search_base = dc=nzdevelopment,dc=com
        ldap_default_bind_dn = cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com
        ldap_tls_reqcert = demand
        ldap_id_use_start_tls = False
        ldap_tls_cacert = /nz/caCert/ca_cert.pem
        
        ldap_default_authtok = AAAQAAIxX3meMywHbwCnnFQRhRJAHpAICVBjoXmg6OhLr9ASy0RijAO4WdYwAioHf5Fmy6yQc0g8/CXOrx7VQ1BbrfYAAQID
        [sssd]
        services = nss, ifp, sudo, ssh, pam
        domains = external_ldap
        
        [nss]
        memcache_timeout = 600
        homedir_substring = /home
        
        [pam]
        #debug_level = 10
        
        [sudo]
        [autofs]
        [ssh]
        [pac]
        [ifp]
        [secrets]

      Se você tiver muitos grupos e/ou usuários no servidor AD, poderá melhorar o desempenho do login adicionando " ldap_group_member = uniqueMember ao arquivo " sssd.conf.

      1. Adicione ' ldap_group_member = uniqueMember à seção ' [domain/external_ldap] em ' /etc/sssd/sssd.conf.
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2. Reinicie o serviço " sssd.
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3. Verifique a autenticação.

    • Defina a autenticação como AD com o TLS ativado

      É possível estabelecer uma conexão segura com o servidor LDAP/AD usando TLS. Para fazer isso, ative a sinalização TLS com o arquivo de certificado de autoridade de certificação.

      1. Defina a autenticação do AD com o TLS ativado.
        nzsql -c " SET AUTHENTICATION LDAP BASE 'dc=nzdevelopment,dc=com' NAMECASE lowercase SERVER 'AD_SERVER' SSL 'OFF' TLS 'ON' BINDPW Netezzapwd BINDDN 'cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com' ATTRNAME 'sAMAccountName' CACERT '/nz/caCert/ca_cert.pem';"
        Observação: Não é possível definir TLS e SSL como " ON.
      2. Agora, o arquivo " sssd.conf tem a seguinte aparência.
        [domain/external_ldap]
        
        ###The below common parameters and values should not be changed
        
        ldap_default_authtok_type = obfuscated_password
        ldap_schema = AD
        ldap_group_name = CN
        ldap_user_name = sAMAccountName
        ignore_group_members = True
        auth_provider = ldap
        ldap_rfc2307_fallback_to_local_users = True
        ldap_referrals = False
        override_homedir = /home/%u
        ldap_network_timeout = 3
        ldap_opt_timeout = 60
        cache_credentials = True
        entry_cache_group_timeout = 0
        entry_cache_user_timeout = 0
        ldap_search_timeout = 30
        id_provider = ldap
        entry_cache_timeout = 600
        case_sensitive = False
        ldap_id_mapping = True
        #ldap_group_attribute =
        #debug_level = 10
        
        ###Supplied from Input
        
        ldap_uri = ldap://AD_SERVER:389
        ldap_user_search_base = dc=nzdevelopment,dc=com
        ldap_default_bind_dn = cn=ad_admin_user1,cn=Users,dc=nzdevelopment,dc=com
        ldap_tls_reqcert = demand
        ldap_id_use_start_tls = True
        ldap_tls_cacert = /nz/caCert/ca_cert.pem
        
        ldap_default_authtok = AAAQAAIxX3meMywHbwCnnFQRhRJAHpAICVBjoXmg6OhLr9ASy0RijAO4WdYwAioHf5Fmy6yQc0g8/CXOrx7VQ1BbrfYAAQID
        [sssd]
        services = nss, ifp, sudo, ssh, pam
        domains = external_ldap
        
        [nss]
        memcache_timeout = 600
        homedir_substring = /home
        
        [pam]
        #debug_level = 10
        
        [sudo]
        [autofs]
        [ssh]
        [pac]
        [ifp]
        [secrets]
        Observação: o servidor Active Directory mencionado no comando " SET AUTHENTICATION deve corresponder ao nome do host do arquivo de certificado do servidor LDAP.

      Se você tiver muitos grupos e/ou usuários no servidor AD, poderá melhorar o desempenho do login adicionando " ldap_group_member = uniqueMember ao arquivo " sssd.conf.

      1. Adicione ' ldap_group_member = uniqueMember à seção ' [domain/external_ldap] em ' /etc/sssd/sssd.conf.
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2. Reinicie o serviço " sssd.
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3. Verifique a autenticação.