Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.2.14. ドメインの設定: LDAP プロバイダーとしての Active Directory(Alternative)

Active Directory はタイプ固有のアイデンティティープロバイダーとして設定できますが、Kerberos 認証プロバイダーを使用して純粋な LDAP プロバイダーとして設定することもできます。

手順13.7 LDAP プロバイダーとしての Active Directory の設定

  1. SSSD は SASL を使用して Active Directory サーバーに接続することが推奨されます。つまり、ローカルホストには Linux ホスト の Windows ドメイン のサービスキータブが必要です。
    このキータブは Samba を使用して作成できます。
    1. Active Directory レルムを使用するように /etc/krb5.conf ファイルを設定します。
      [logging]
       default = FILE:/var/log/krb5libs.log
      
      [libdefaults]
       default_realm = AD.EXAMPLE.COM
       dns_lookup_realm = true
       dns_lookup_kdc = true
       ticket_lifetime = 24h
       renew_lifetime = 7d
       rdns = false
       forwardable = false
      
      [realms]
      # Define only if DNS lookups are not working
      # AD.EXAMPLE.COM = {
      #  kdc = server.ad.example.com
      #  admin_server = server.ad.example.com
      #  master_kdc = server.ad.example.com
      # }
      
      [domain_realm]
      # Define only if DNS lookups are not working
      # .ad.example.com = AD.EXAMPLE.COM
      # ad.example.com = AD.EXAMPLE.COM
    2. Samba 設定ファイル /etc/samba/smb.conf を設定して、Windows Kerberos レルムを参照します。
      [global]
         workgroup = EXAMPLE
         client signing = yes
         client use spnego = yes
         kerberos method = secrets and keytab
         log file = /var/log/samba/%m.log
         password server = AD.EXAMPLE.COM
         realm = EXAMPLE.COM
         security = ads
      
    3. Kerberos を初期化するには、root で以下のコマンドを入力します。
      ~]# kinit Administrator@EXAMPLE.COM
    4. 次に net ads コマンドを実行して管理者プリンシパルとしてログインします。この管理者アカウントにはマシンを Windows ドメインに追加するのに十分な権限が必要ですが、ドメイン管理者権限は必要ありません。
      ~]# net ads join -U Administrator
    5. net ads を再度実行して、ホストマシンをドメインに追加します。これは、ホストプリンシパル(host/FQDN)で行うか、必要に応じて NFS サービス(nfs/FQDN)を使用して実行できます。
      ~]# net ads join createupn="host/rhel-server.example.com@AD.EXAMPLE.COM" -U Administrator
  2. Unix パッケージのサービスが Windows サーバーにインストールされていることを確認します。
  3. SSSD で使用する Windows ドメインを設定します。
    1. Windows マシンで Server Manager を開きます。
    2. Active Directory ドメインサービス ロールを作成します。
    3. ad.example.com などの新しいドメインを作成します。
    4. Active Directory Domain Services ロールに UNIX サービス用の Identity Management を追加します。Unix NIS ドメインを、設定のドメイン名として使用します。
  4. Active Directory サーバーで、Linux ユーザーのグループを作成します。
    1. Administrative Tools を開き、Active Directory Users および Computers を選択します。
    2. Active Directory ドメイン ad.example.com を選択します。
    3. Users タブで右クリックし、Create a New Group を選択します。
    4. 新しいグループ unixusers という名前を付け、保存します。
    5. unixusers グループエントリーをダブルクリックして、Users タブを開きます。
    6. Unix Attributes タブを開きます。
    7. NIS ドメインを、ad.example.com に設定し、必要に応じてグループ ID(GID)番号を設定する NIS ドメインに設定します。
  5. Unix グループに含まれるようにユーザーを設定します。
    1. Administrative Tools を開き、Active Directory Users および Computers を選択します。
    2. Active Directory ドメイン ad.example.com を選択します。
    3. Users タブで右クリックし、Create a New User を選択します。
    4. 新しいユーザー aduser という名前を付け、ユーザーが 次回のログオンと Lock アカウント チェックボックスが選択されて いない ことを確認します。
      次に、ユーザーを保存します。
    5. aduser ユーザーエントリーをダブルクリックして、Unix Attributes タブを開きます。Unix 設定が Active Directory ドメインと unixgroup グループと一致することを確認します。
      • Active Directory ドメイン用に作成された NIS ドメイン
      • UID
      • ログインシェルの /bin/bash
      • ホームディレクトリーの /home/aduserへのホームディレクトリー
      • プライマリーグループ名( unixusersへ)
    ヒント
    大規模なディレクトリーのパスワード検索には、要求ごとに数秒かかる場合があります。最初のユーザールックアップは、LDAP サーバーへの呼び出しです。インデックスのない検索はリソース集約型が多いため、サーバーはディレクトリー内のすべてのエントリーが一致するかどうかをチェックするため、インデックス化された検索よりも時間がかかります。ユーザー検索を迅速化するには、SSSD が検索する属性をインデックス化します。
    • uid
    • uidNumber
    • gidNumber
    • gecos
  6. Linux システムで、SSSD ドメインを設定します。
    ~]# vim /etc/sssd/sssd.conf
    LDAP プロバイダーパラメーターの完全なリストは、sssd-ldap(5) man ページを参照してください。

    例13.9 Unix のサービスがある Active Directory 2008 R2 ドメイン

    [sssd]
    config_file_version = 2
    domains = ad.example.com
    services = nss, pam
    
    ...
    
    [domain/ad.example.com]
    cache_credentials = true
    
    # for performance
    ldap_referrals = false
    
    id_provider = ldap
    auth_provider = krb5
    chpass_provider = krb5
    access_provider = ldap
    
    ldap_schema = rfc2307bis
    
    ldap_sasl_mech = GSSAPI
    ldap_sasl_authid = host/rhel-server.example.com@AD.EXAMPLE.COM 
    
    #provide the schema for services for unix
    ldap_schema = rfc2307bis
    
    ldap_user_search_base = ou=user accounts,dc=ad,dc=example,dc=com
    ldap_user_object_class = user
    ldap_user_home_directory = unixHomeDirectory
    ldap_user_principal = userPrincipalName
    
    # optional - set schema mapping
    # parameters are listed in sssd-ldap
    ldap_user_object_class = user
    ldap_user_name = sAMAccountName
    
    ldap_group_search_base = ou=groups,dc=ad,dc=example,dc=com
    ldap_group_object_class = group
    
    ldap_access_order = expire
    ldap_account_expire_policy = ad
    ldap_force_upper_case_realm = true
    ldap_referrals = false
    
    krb5_realm = AD-REALM.EXAMPLE.COM
    # required
    krb5_canonicalize = false
  7. SSSD を再起動します。
    ~]# service sssd restart