Identity Service と Active Directory を統合する方法
概要
Red Hat Enterprise Linux OpenStack Platform の Identity Service には、Active Directory へ LDAP の呼び出しが行えるように設定可能な LDAP プロバイダーが含まれています。Active Directory では、ユーザーアカウントを作成/参照して、ロールおよびテナントの組織単位 (OU) を作成する必要があります。その後、Identity がこれらのオブジェクトを使用するように設定します。
重要
Identity Service が LDAP バックエンドにアクセスするには、その LDAP バックエンドにアクセスするクライアントマシンで、SELinux の authlogin_nsswitch_use_ldap ブール値が有効に設定されている必要があります。各クライアントマシンで root ユーザーとして以下のコマンドを実行して、このブール値を有効にし、再起動後にも設定が永続されるようにします。
# setsebool -P authlogin_nsswitch_use_ldap
Active Directory の設定
Microsoft Windows Server 2008 のシステム環境では、Active Directory の設定時に、ユーザーに 1 つ、テナントに 1 つ、ロールに 1 つなど、アイデンティティーの種別ごとに異なるツリーを設定する必要があります。
- Active Directory がインストールされているマシンで、新規ドメイン/フォレストを作成します。
たとえば、Active Directory のツリーは以下のようになります。
Users (OU=Users)
AdminUser
@id
@name
@mail
DemoUser
@id
@name
@mail
Tenants (OU=Tenants)
DemoTenant
@id
@name
@description
member(AdminUser,DemoUser)
AdminRole
roleOccupant(AdminUser)
MemberRole
roleOccupant(DemoUser)
Roles (OU=Roles)
AdminRole
@id
@name
MemberRole
@id
@name
-
LDAP へ接続するユーザーを作成します (ldapbind ユーザー)。
-
ドメインで右クリックをして 制御の委任 を選択します。
-
作成した ldapbind ユーザーを選択します。
-
ユーザー を検索する場所を記述した OU を作成します。例: ou=openstack_users,ou=openstack,dc=redhat,dc=corp
-
テナント を検索する場所を記述した OU を作成します。例: ou=openstack_tenants,ou=openstack,dc=redhat,dc=corp
-
ロール を検索する場所を記述した OU を作成します。例: ou=openstack_roles,ou=openstack,dc=redhat,dc=corp
organizationalRole の設定
Identity のロールが Active Directory で正しく機能できるようにするには、groupOfNames が上位の組織単位に指定できるように organizationalRole を設定する必要があります。これには、スキーマの構成設定を変更できる権限のある Schema Administrators グループでユーザーを設定する必要があります。このユーザーは、以下のように Active Directory スキーママスターで設定を変更する必要があります。
-
Active Directory スキーママスターで、ASDI Edit を使用して スキーマ を選択します。
-
CN=Organizational-Role を開きます。
-
Attribute Editor で possSuperiors を選択します。
-
一覧に groupOfNames を追加します。
-
OK をクリックします。
Active Directory の設定情報の収集
Active Directory のユーザーやコンピューターなどの Active Directory の設定に関する必須情報を検索する必要があります。たとえば、ユーザーが含まれている組織単位 (OU) を特定します。この情報を使用して、ユーザーの参照ポイントを設定します。Active Directory によるユーザーの OU の識別方法は、LDAP の場合とは異なるため、コモンネーム (CN: Common Name) を検索する必要があります。
以下の例では、OU は Users という名前で指定されています。
CN=Users,dc=example,dc=com
同様に、Groups と Roles が含まれる OU を特定します。
OpenStack Identity の設定
-
以下のコマンドを使用して、Microsoft Windows Server 2008 マシンで作成した ldapbind アカウントをテストします。
# ldapsearch -LLL -H ldap://192.168.101.187 -E pr=1000/noprompt -w 'ldapbindpasswd' -x -D 'DC\ldapbind' -b 'dc=REDHAT,dc=corp' "(sAMAccountName=*)"
ここでは、
-D 'DC\ldapbind' はユーザー名、DC はホスト名、ldapbind は Windows Server で作成したユーザーです。
-b 'dc=REDHAT,dc=corp' は検索が開始される場所です。
-
Identity サーバーで、以下のように /etc/keystone/keystone.conf を編集します。
[identity] driver = keystone.identity.backends.ldap.Identity ... [assignment] driver = keystone.assignment.backends.sql.Assignment ... [ldap] url = ldap://dc.example.com user = CN=ldap,OU=Users,DC=example,DC=com password = password suffix = DC=example,DC=com use_dumb_member = True dumb_member = CN=ldap,OU=Users,DC=example,DC=com user_tree_dn = OU=Users,DC=example,DC=com user_objectclass = person user_filter = user_id_attribute = cn user_name_attribute = cn user_mail_attribute = mail user_pass_attribute = user_enabled_attribute = userAccountControl user_enabled_mask = 2 user_enabled_default = 512 user_attribute_ignore = password,tenant_id,tenants user_allow_create = False user_allow_update = False user_allow_delete = False tenant_tree_dn = OU=Tenants,DC=example,DC=com tenant_filter = tenant_objectclass = groupOfNames tenant_id_attribute = cn tenant_member_attribute = member tenant_name_attribute = ou tenant_desc_attribute = description tenant_enabled_attribute = extensionName tenant_attribute_ignore = tenant_allow_create = True tenant_allow_update = True tenant_allow_delete = True role_tree_dn = OU=Roles,DC=example,DC=com role_filter = role_objectclass = organizationalRole role_id_attribute = cn role_name_attribute = ou role_member_attribute = roleOccupant role_attribute_ignore = role_allow_create = True role_allow_update = True role_allow_delete = True ...
-
Identity Service を再起動します。
# service openstack-keystone restart
-
ユーザーの一覧を取得して、認証が機能していることをテストします。
# keystone user-list
Comments