第 1 章 将 OpenStack 身份(keystone)与 Active Directory 集成
您可以将 OpenStack Identity (keystone)与 Microsoft Active Directory 域服务(AD DS)集成。Identity Service 验证特定的活动目录域服务(AD DS)用户,但在 Identity Service 数据库中保留授权设置和关键服务帐户。因此,Identity Service 对 AD DS 具有对用户帐户身份验证的只读访问权限,并继续管理分配给经过身份验证的帐户的权限。
通过将 Identity 服务与 AD DS 集成,您可以允许 AD DS 用户向 Red Hat OpenStack Platform (RHOSP)进行身份验证来访问资源。RHOSP 服务帐户(如 Identity Service 和 Image 服务)和授权管理保留在 Identity Service 数据库中。使用 Identity Service 管理工具将权限和角色分配给 AD DS 帐户。
将 OpenStack Identity 与 Active Directory 集成的过程包括以下阶段:
- 配置 Active Directory 凭证并导出 LDAPS 证书
- 在 OpenStack 中安装和配置 LDAPS 证书
- 将 director 配置为使用一个或多个 LDAP 后端
- 配置 Controller 节点以访问 Active Directory 后端
- 配置 Active Directory 用户或组对 OpenStack 项目的访问权限
- 验证域和用户列表是否已正确创建
- 可选:为非管理员用户创建凭证文件。
1.1. 配置 Active Directory 凭证
要将 Active Directory 域服务(AD DS)配置为与 OpenStack 身份集成,请为 Identity 服务设置 LDAP 帐户,为 Red Hat OpenStack 用户创建一个用户组,并导出要在 Red Hat OpenStack Platform 部署中使用的 LDAPS 证书公钥。
先决条件
- Active Directory Domain Services 已配置并运行。
- Red Hat OpenStack Platform 已配置和操作。
- DNS 名称解析功能全面,所有主机都被正确注册。
- AD DS 身份验证流量使用 LDAPS 进行加密,使用端口 636。
- 建议:使用高可用性或负载平衡解决方案实施 AD DS,以避免出现单点故障。
流程
在 Active Directory 服务器上执行这些步骤。
创建 LDAP 查找帐户。Identity Service 使用这个帐户查询 AD DS LDAP 服务:
PS C:\> New-ADUser -SamAccountName svc-ldap -Name "svc-ldap" -GivenName LDAP -Surname Lookups -UserPrincipalName svc-ldap@lab.local -Enabled $false -PasswordNeverExpires $true -Path 'OU=labUsers,DC=lab,DC=local'
为此帐户设置密码,然后启用它。系统将提示您指定一个符合 AD 域复杂性要求的密码:
PS C:\> Set-ADAccountPassword svc-ldap -PassThru | Enable-ADAccount
为 RHOSP 用户创建一个名为
grp-openstack
的组。只有此组的成员才能在 OpenStack Identity 中分配权限。PS C:\> NEW-ADGroup -name "grp-openstack" -groupscope Global -path "OU=labUsers,DC=lab,DC=local"
创建项目组:
PS C:\> NEW-ADGroup -name "grp-openstack-demo" -groupscope Global -path "OU=labUsers,DC=lab,DC=local" PS C:\> NEW-ADGroup -name "grp-openstack-admin" -groupscope Global -path "OU=labUsers,DC=lab,DC=local"
将
svc-ldap
用户添加到grp-openstack
组中:PS C:\> ADD-ADGroupMember "grp-openstack" -members "svc-ldap"
-
从 AD 域控制器,使用证书
MMC
将 LDAPS 证书的公钥(而不是私钥)导出为 DER 编码的x509
.cer 文件。将此文件发送到 RHOSP 管理员。 检索 AD DS 域的 NetBIOS 名称。
PS C:\> Get-ADDomain | select NetBIOSName NetBIOSName ----------- LAB
将这个值发送到 RHOSP 管理员。