19.4. 为单点登录配置 LDAP 和 Kerberos
单点登录允许用户在不重新输入密码的情况下登录到虚拟机门户或管理门户。从 Kerberos 服务器获取身份验证凭据。要将单点登录配置为管理门户和虚拟机门户,您需要配置两个扩展: ovirt-engine-extension-aaa-misc 和 ovirt-engine-extension-aaa-ldap; 和两个 Apache 模块: mod_auth_gssapi 和 mod_session。您可以配置不涉及 Kerberos 的单点登录,但这超出了本文档的范围。
如果启用了对虚拟机门户的单点登录,则无法对虚拟机的单点登录。启用虚拟机门户的单点登录后,虚拟机门户不需要接受密码,因此您就无法将密码委派至虚拟机。
本例假定如下:
- 现有密钥分发中心(KDC)服务器使用 MIT 版本的 Kerberos 5。
- 您有 KDC 服务器的管理权限。
- Kerberos 客户端安装在 Red Hat Virtualization Manager 和用户机器上。
-
kadmin
工具用于创建 Kerberos 服务主体和 keytab 文件。
这个过程涉及以下组件:
在 KDC 服务器中
- 在 Red Hat Virtualization Manager 上为 Apache 服务创建服务主体和 keytab 文件。
在 Red Hat Virtualization Manager 中
- 安装身份验证和授权扩展软件包和 Apache Kerberos 身份验证模块。
- 配置扩展文件。
为 Apache 服务配置 Kerberos
在 KDC 服务器中,使用
kadmin
实用程序在 Red Hat Virtualization Manager 中为 Apache 服务创建服务主体。服务主体是 Apache 服务的 KDC 的引用 ID。kadmin
# kadmin kadmin> addprinc -randkey HTTP/fqdn-of-rhevm@REALM.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Apache 服务生成 keytab 文件。keytab 文件存储共享 secret 密钥。
注意engine-backup
命令在备份和恢复时包括文件/etc/httpd/http.keytab
。如果您在 keytab 文件中使用不同的名称,请确保备份和恢复它。kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM kadmin> quit
kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM kadmin> quit
Copy 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/httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在虚拟机门户或管理门户中配置单点登录
在 Red Hat Virtualization Manager 中,确保 keytab 的所有权和权限是适当的:
chown apache /etc/httpd/http.keytab chmod 400 /etc/httpd/http.keytab
# chown apache /etc/httpd/http.keytab # chmod 400 /etc/httpd/http.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装身份验证扩展软件包、LDAP 扩展软件包以及
mod_auth_gssapi
和mod_session
Apache 模块: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_session
Copy 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-engine
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 ovirt-sso.conf 移到 Apache 配置目录中。
注意engine-backup
命令在备份和恢复时包含文件/etc/httpd/conf.d/ovirt-sso.conf
。如果您对此文件使用不同的名称,请确保备份和恢复它。mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.d
# mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 验证方法文件。您不需要编辑此文件,因为域会自动从 keytab 文件中获取。
vi /etc/httpd/conf.d/ovirt-sso.conf
# vi /etc/httpd/conf.d/ovirt-sso.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 19.5. 身份验证方法文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重命名配置文件,以匹配您希望对管理门户和虚拟机门户中用户可见的配置集名称:
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.properties
Copy 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.properties
Copy 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.properties
Copy 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.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过取消注释 LDAP 服务器类型并更新域和密码字段来编辑 LDAP 属性配置文件:
vi /etc/ovirt-engine/aaa/example.properties
# vi /etc/ovirt-engine/aaa/example.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 19.6. 示例配置集:LDAP server 部分
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 TLS 或 SSL 协议与 LDAP 服务器交互,请获取 LDAP 服务器的 root CA 证书,并使用它来创建公共密钥存储文件。取消注释以下行,并指定 public 密钥存储文件的完整路径,以及用于访问该文件的密码。
注意有关创建公共密钥存储文件的更多信息,请参阅 第 D.2 节 “在 Manager 和 LDAP 服务器间设置加密通信”。
例 19.7. profile: 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 = password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查身份验证配置文件。该配置集在管理门户中对用户可见,并且虚拟机门户登录页面由 ovirt.engine.aaa.authn.profile.name 定义。配置配置文件位置必须与 LDAP 配置文件位置匹配。所有字段都可保留为默认值。
vi /etc/ovirt-engine/extensions.d/example-http-authn.properties
# vi /etc/ovirt-engine/extensions.d/example-http-authn.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 19.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.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 19.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.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 19.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.properties
Copy 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.properties
Copy 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.properties
Copy 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.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 600 /etc/ovirt-engine/aaa/example.properties
# chmod 600 /etc/ovirt-engine/aaa/example.properties
Copy 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.properties
Copy 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.properties
Copy 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.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 Apache 服务和
ovirt-engine
服务:systemctl restart httpd.service systemctl restart ovirt-engine.service
# systemctl restart httpd.service # systemctl restart ovirt-engine.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow