15.4. 为 LDAP 和 Kerberos 配置单点登录
单点登录功能允许用户在无需重新输入密码的情况下登录到用户门户或管理门户。身份验证所需的凭证信息由 Kerberos 服务器提供。若要配置管理门户和用户门户的单点登录功能,您需要配置两个扩展(
ovirt-engine-extension-aaa-misc 和 ovirt-engine-extension-aaa-ldap)以及两个 Apache 模块(mod_auth_gssapi 和 mod_session)。您可以在不使用 Kerberos 的情况下配置单点登录功能,但这超出了本文档的范围。
注意
如果到用户门户的单独登录功能被启用,则到虚拟机的单点登录功能将无法实现。这是因为,用户门户在启用了单独登录功能后,将不需要接受用户密码,因此用户的密码将无法在登录到虚拟机时被验证。
这个示例假设了以下情况:
- 存在的 KDC(Key Distribution Center,密钥分配中心)服务器使用 MIT 版的 Kerberos 5。
- 您具有 KDC 服务器的管理权限。
- Red Hat Virtualization Manager 和用户的机器上安装了 Kerberos 客户端。
kadmin工具程序可以被用来创建 Kerberos 服务主体(principal)和keytab文件。
这个过程会涉及到以下组件:
在 KDC 服务器上
- 为 Red Hat Virtualization Manager 上的 Apache 服务创建一个服务主体(principal)和一个
keytab文件。
在 Red Hat Virtualization Manager 上
- 安装验证和授权扩展软件包,以及 Apache Kerberos 验证模块。
- 配置扩展文件。
过程 15.4. 为 Apache 服务配置 Kerberos
- 在 KDC 服务器上,使用
kadmin为 Red Hat Virtualization Manager 上的 Apache 服务创建一个服务主体。这个服务主体是 KDC 指代 Apache 服务的 ID。kadmin
# kadmin kadmin> addprinc -randkey HTTP/fqdn-of-rhevm@REALM.COMCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 为 Apache 服务产生一个
keytab文件。keytab文件保存了共享的密钥。kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM
kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COMCopy to Clipboard Copied! Toggle word wrap Toggle overflow kadmin> quit
kadmin> quitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 把
keytab文件从 KDC 服务器复制到 Red Hat Virtualization Manager:scp /tmp/http.keytab root@rhevm.example.com:/etc/httpd
# scp /tmp/http.keytab root@rhevm.example.com:/etc/httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 15.5. 配置到用户门户和管理门户的单点登录
- 在 Red Hat Virtualization Manager 上,设置正确的 keytab 所有者权限和访问权限:
chown apache /etc/httpd/http.keytab
# chown apache /etc/httpd/http.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 400 /etc/httpd/http.keytab
# chmod 400 /etc/httpd/http.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 安装身份验证扩展软件包、LDAP 扩展软件包,以及
mod_auth_gssapi和mod_sessionApache 模块:yum install ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session
# yum install ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_sessionCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 把 SSO 配置模板文件复制到
/etc/ovirt-engine目录中。其中包括了 Active Directory(ad-sso)和其它目录服务类型(simple-sso)的模板文件。这个示例使用简单 SSO 配置模板。cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple-sso/. /etc/ovirt-engine
# cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple-sso/. /etc/ovirt-engineCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 将
ovirt-sso.conf移入 Apache 配置目录:mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.d
# mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 查看身份验证方式文件。您不需要编辑此文件,因为其范围自动获取自
keytab文件。vi /etc/httpd/conf.d/ovirt-sso.conf
# vi /etc/httpd/conf.d/ovirt-sso.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例 15.5. 验证方法文件的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新命名配置文件,从而使它与用户可以在管理门户和用户门户的登录界面中可见的 profile 名相匹配:
mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
# mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow mv /etc/ovirt-engine/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/example-http-authn.properties
# mv /etc/ovirt-engine/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/example-http-authn.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow mv /etc/ovirt-engine/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# mv /etc/ovirt-engine/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/example-http-mapping.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
# mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 编辑 LDAP 属性配置文件,取消注释一个 LDAP 服务器类型并更新域和密码项的内容:
vi /etc/ovirt-engine/aaa/example.properties
# vi /etc/ovirt-engine/aaa/example.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例 15.6. 配置档案实例:LDAP 服务器部分
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为了使用 TLS 或 SSL 协议来与 LDAP 服务器进行交流,获得 LDAP 服务器的根(root)CA 证书,使用它来创建一个公共的 keystore 文件。取消注释以下行,指定到公共 keystore 文件的完全路径以及访问这个文件的密码。注意
如需了解更多与创建公共 keystore 文件相关的信息,请参阅 第 D.2 节 “在 Manager 和一个 LDAP 服务器间设置 SSL 或 TLS 连接”。例 15.7. 配置档案实例:keystore 部分
Create keystore, import certificate chain and uncomment if using ssl/tls.
# Create keystore, import certificate chain and uncomment # if using ssl/tls. pool.default.ssl.startTLS = true pool.default.ssl.truststore.file = /full/path/to/myrootca.jks pool.default.ssl.truststore.password = passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查验证配置文件。用户在管理门户和用户门户的登录界面中可以选择的 profile 由
ovirt.engine.aaa.authn.profile.name定义。配置 profile 的位置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。vi /etc/ovirt-engine/extensions.d/example-http-authn.properties
# vi /etc/ovirt-engine/extensions.d/example-http-authn.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例 15.8. 验证配置文件的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查授权配置文件。这个配置集的配置必须和 LDAP 配置文件的位置相匹配。所有项都可以使用默认值。
vi /etc/ovirt-engine/extensions.d/example-authz.properties
# vi /etc/ovirt-engine/extensions.d/example-authz.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例 15.9. 授权配置文件的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 查看身份验证映射配置文件。配置集文件位置必须和 LDAP 配置文件位置相匹配。配置集文件扩展名必须与身份验证配置文件中的
ovirt.engine.aaa.authn.mapping.plugin值相匹配。所有字段都可保留为默认值。vi /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# vi /etc/ovirt-engine/extensions.d/example-http-mapping.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例 15.10. 身份验证映射配置文件的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 确保配置文件的所有权和权限设置适当:
chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
# chown ovirt:ovirt /etc/ovirt-engine/aaa/example.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-authn.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-authn.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-mapping.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-authz.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-authz.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 600 /etc/ovirt-engine/aaa/example.properties
# chmod 600 /etc/ovirt-engine/aaa/example.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 640 /etc/ovirt-engine/extensions.d/example-http-authn.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-http-authn.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 640 /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-http-mapping.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 640 /etc/ovirt-engine/extensions.d/example-authz.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-authz.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新启动 Apache 服务和
ovirt-engine服务:systemctl restart httpd.service
# systemctl restart httpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart ovirt-engine.service
# systemctl restart ovirt-engine.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow