WindowsActive DirectoryによるLDAP認証

WindowsActive Directoryを使用して、LDAP認証にSSLまたはTLSを設定する方法について説明します。

Netezza Performance Server 11.1.0.1以下の場合

  1. WindowsActive Directoryユーザーをデータベースに追加する。
    create user <user> password <password>
    パスワード・ポリシーに従ってパスワードを定義します。
    例:
    nzsql -c "create user ad_user1 password 'password';"
  2. 認証タイプを設定します。
    SET AUTHENTICATION LDAP
    • SSLをオフにして、認証をADに設定する
      1. コマンドを実行します。
        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'; "

        ここで、cn は共通名を表し、dc はドメイン・コンポーネントを表します。

      2. rootユーザーとして、ホスト上の「/etc/sssd/sssd.confファイルを更新する。
        太字の行がまだ設定されていない場合は、手動で変更する必要があるかもしれない。
        =============================/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. root ユーザーとして sssd サービスを再始動します。

        ADサーバー上に多数のグループやユーザーが存在する場合、ファイル sssd.confldap_group_member = uniqueMember を追加することでログインパフォーマンスを向上させることができます。

        1./etc/sssd/sssd.confの'[domain/external_ldap]セクションに'ldap_group_member = uniqueMember追加する。
        ignore_group_members = True (add only if not present since this variable was already exist)
        ldap_group_member = uniqueMember
        2.sssdサービスを再起動する:
        systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

        3.認証を確認する。

    • SSLをオンにして、認証をADに設定する
      証明書は、信頼できる CA によって AD サーバーに発行される必要があります。 CA 証明書ファイルを取得し、Netezza Performance Serverシステム上の場所に保存します。 Netezza Performance Serverの高可用性(HA)システムの場合は、共有ドライブ上の場所、たとえば「/nz下の新しいディレクトリにファイルを保存します。 Netezza Performance Serverシステムノードの両方が、同じパス名を使用して証明書ファイルにアクセスできる必要があります。
      1. SSLをオンにしたAD認証を設定します。
        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. rootユーザーとして、Netezza Performance Server・ホスト上の「/etc/sssd/sssd.confファイルを手動で更新します。

        AD サーバーには、SSL または TSL を介して接続できます。 太字の行がまだ設定されていない場合は、手動で変更する必要があるかもしれない。

        1. SSLでADサーバーに接続するには、以下の項目を更新する。
          ===========================/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. TLS経由でADサーバーに接続するには、以下のテンプレートを使用する。
          ===========================/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]
          
        注:1. sssd.conf ldap_tls_cacert属性には、CA証明書のファイル名と正しいディレクトリの場所を記述する。

        2.SET AUTHENTICATIONコマンドに記載されているActive Directoryサーバーは、LDAPサーバー証明書ファイルのホスト名と一致していなければならない。

      3. root ユーザーとして sssd サービスを再始動します。
        systemctl restart sssd

      ADサーバー上に多数のグループやユーザーが存在する場合、ファイル sssd.confldap_group_member = uniqueMember を追加することでログインパフォーマンスを向上させることができます。

      1./etc/sssd/sssd.confの'[domain/external_ldap]セクションに'ldap_group_member = uniqueMember追加する。
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2.sssdサービスを再起動する。
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3.認証を確認する。

Netezza Performance Server 11.1.0.2以降の場合

  1. WindowsActive Directoryユーザーをデータベースに追加する。
    create user <user> password <password>
    パスワード・ポリシーに従ってパスワードを定義します。
    例:
    nzsql -c "create user ad_user1 password 'password';"
  2. 認証タイプを設定します。
    • SSL/TLSをオフにして、認証をADに設定する
      1. コマンドを実行します。
        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. これで「sssd.confファイルは次のようになる。
        [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]

        ADサーバー上に多数のグループやユーザーが存在する場合、ファイル sssd.confldap_group_member = uniqueMember を追加することでログインパフォーマンスを向上させることができます。

        1./etc/sssd/sssd.confの'[domain/external_ldap]セクションに'ldap_group_member = uniqueMember追加する。
        ignore_group_members = True (add only if not present since this variable was already exist)
        ldap_group_member = uniqueMember
        2.sssdサービスを再起動する。
        systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

        3.認証を確認する。

    • SSLをオンにして、認証をADに設定する
      証明書は、信頼できる CA によって AD サーバーに発行される必要があります。 CA 証明書ファイルを取得し、Netezza Performance Serverシステム上の場所に保存します。 Netezza Performance Serverの高可用性(HA)システムの場合は、共有ドライブ上の場所、たとえば「/nz下の新しいディレクトリにファイルを保存します。 Netezza Performance Serverシステムノードの両方が、同じパス名を使用して証明書ファイルにアクセスできる必要があります。
      1. SSLをオンにしたAD認証を設定します。
        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 は、CA 証明書ファイルのパスです。
      2. これで「sssd.confファイルは次のようになる。
        [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]

      ADサーバー上に多数のグループやユーザーが存在する場合、ファイル sssd.confldap_group_member = uniqueMember を追加することでログインパフォーマンスを向上させることができます。

      1./etc/sssd/sssd.confの'[domain/external_ldap]セクションに'ldap_group_member = uniqueMember追加する。
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2.sssdサービスを再起動する。
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3.認証を確認する。

    • 認証をADに設定し、TLSをONにする

      TLS を使用して、LDAP/AD サーバーへのセキュア接続を確立できます。 これを行うには、CA 証明書ファイルで TLS フラグを有効にします。

      1. TLSをオンにしたAD認証を設定する。
        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';"
        注:TLSとSSLの両方を「ON」に設定することはできない。
      2. これで「sssd.confファイルは次のようになる。
        [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]
        注:SET AUTHENTICATIONコマンドで言及されたActive Directoryサーバーは、LDAPサーバー証明書ファイルのホスト名と一致していなければならない。

      ADサーバー上に多数のグループやユーザーが存在する場合、ファイル sssd.confldap_group_member = uniqueMember を追加することでログインパフォーマンスを向上させることができます。

      1./etc/sssd/sssd.confの'[domain/external_ldap]セクションに'ldap_group_member = uniqueMember追加する。
      ignore_group_members = True (add only if not present since this variable was already exist)
      ldap_group_member = uniqueMember
      2.sssdサービスを再起動する。
      systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd

      3.認証を確認する。