13.2.14. ドメインの設定: LDAP プロバイダーとしての Active Directory(Alternative)
Active Directory はタイプ固有のアイデンティティープロバイダーとして設定できますが、Kerberos 認証プロバイダーを使用して純粋な LDAP プロバイダーとして設定することもできます。
手順13.7 LDAP プロバイダーとしての Active Directory の設定
- SSSD は SASL を使用して Active Directory サーバーに接続することが推奨されます。つまり、ローカルホストには Linux ホスト の Windows ドメイン のサービスキータブが必要です。このキータブは Samba を使用して作成できます。
- 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
- 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
- Kerberos を初期化するには、
root
で以下のコマンドを入力します。~]# kinit Administrator@EXAMPLE.COM
- 次に net ads コマンドを実行して管理者プリンシパルとしてログインします。この管理者アカウントにはマシンを Windows ドメインに追加するのに十分な権限が必要ですが、ドメイン管理者権限は必要ありません。
~]# net ads join -U Administrator
- net ads を再度実行して、ホストマシンをドメインに追加します。これは、ホストプリンシパル(host/FQDN)で行うか、必要に応じて NFS サービス(nfs/FQDN)を使用して実行できます。
~]# net ads join createupn="host/rhel-server.example.com@AD.EXAMPLE.COM" -U Administrator
- Unix パッケージのサービスが Windows サーバーにインストールされていることを確認します。
- SSSD で使用する Windows ドメインを設定します。
- Windows マシンで Server Manager を開きます。
- Active Directory ドメインサービス ロールを作成します。
- ad.example.com などの新しいドメインを作成します。
- Active Directory Domain Services ロールに UNIX サービス用の Identity Management を追加します。Unix NIS ドメインを、設定のドメイン名として使用します。
- Active Directory サーバーで、Linux ユーザーのグループを作成します。
- Administrative Tools を開き、Active Directory Users および Computers を選択します。
- Active Directory ドメイン ad.example.com を選択します。
- Users タブで右クリックし、 を選択します。
- 新しいグループ unixusers という名前を付け、保存します。
- unixusers グループエントリーをダブルクリックして、Users タブを開きます。
- Unix Attributes タブを開きます。
- NIS ドメインを、ad.example.com に設定し、必要に応じてグループ ID(GID)番号を設定する NIS ドメインに設定します。
- Unix グループに含まれるようにユーザーを設定します。
- Administrative Tools を開き、Active Directory Users および Computers を選択します。
- Active Directory ドメイン ad.example.com を選択します。
- Users タブで右クリックし、 を選択します。
- 新しいユーザー aduser という名前を付け、ユーザーが 次回のログオンと Lock アカウント の チェックボックスが選択されて いない ことを確認します。次に、ユーザーを保存します。
- aduser ユーザーエントリーをダブルクリックして、Unix Attributes タブを開きます。Unix 設定が Active Directory ドメインと unixgroup グループと一致することを確認します。
- Active Directory ドメイン用に作成された NIS ドメイン
- UID
- ログインシェルの /bin/bash
- ホームディレクトリーの /home/aduserへのホームディレクトリー
- プライマリーグループ名( unixusersへ)
ヒント大規模なディレクトリーのパスワード検索には、要求ごとに数秒かかる場合があります。最初のユーザールックアップは、LDAP サーバーへの呼び出しです。インデックスのない検索はリソース集約型が多いため、サーバーはディレクトリー内のすべてのエントリーが一致するかどうかをチェックするため、インデックス化された検索よりも時間がかかります。ユーザー検索を迅速化するには、SSSD が検索する属性をインデックス化します。- uid
- uidNumber
- gidNumber
- gecos
- 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
- SSSD を再起動します。
~]# service sssd restart