43.10. 委托对主机和服务的访问
通过委托对 IdM 域中主机和服务的访问权限,您可以为另一个主机或服务检索 keytab 和证书。
				每个主机和服务都有一个 managedby 条目,其列出了哪些主机和服务可以管理它。默认情况下,主机可以管理自身及其所有服务。您可以配置一个主机来管理其他主机,或者管理 IdM 域中其他主机上的服务。
			
					通过 managedby 条目将主机的授权委托给其他主机时,它不会自动为该主机上的所有服务授予管理权限。您必须独立执行每个委托。
				
主机和服务委托
					 
				
43.10.1. 委托服务管理
您可以将权限委托给主机,以管理域中其他主机上的服务。
当您将权限委托给主机来管理其他主机时,它不会自动包含管理其服务的权限。您必须单独委托服务管理。
流程
- 使用 - service-add-host命令将服务管理委托给特定的主机:- ipa service-add-host principal --hosts=<hostname> - ipa service-add-host principal --hosts=<hostname>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 您必须使用 - principal参数指定服务主体,使用- --hosts选项指定带有控制的主机。- 例如: - ipa service-add HTTP/web.example.com ipa service-add-host HTTP/web.example.com --hosts=client1.example.com - [root@server ~]# ipa service-add HTTP/web.example.com [root@server ~]# ipa service-add-host HTTP/web.example.com --hosts=client1.example.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 主机委托授权后,主机主体可用于管理服务: - kinit -kt /etc/krb5.keytab host/client1.example.com ipa-getkeytab -s server.example.com -k /tmp/test.keytab -p HTTP/web.example.com - [root@client1 ~]# kinit -kt /etc/krb5.keytab host/client1.example.com [root@client1 ~]# ipa-getkeytab -s server.example.com -k /tmp/test.keytab -p HTTP/web.example.com Keytab successfully retrieved and stored in: /tmp/test.keytab- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要为委托的服务生成证书,请使用委托的颁发机构在主机上创建一个证书请求: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - cert-request工具来提交证书请求,并加载认证信息:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
43.10.2. 委托主机管理
					您可以使用 host-add-managedby 工具为主机委托授权,来管理其他主机。这会创建一个 managedby 条目。创建 managedby 条目后,管理主机可以检索它管理的主机的 keytab。
				
流程
- 以 admin 用户身份登录: - kinit admin - [root@server ~]# kinit admin- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 添加 - managedby条目。例如,这通过 client2 将授权委托给 client1 :- ipa host-add-managedby client2.example.com --hosts=client1.example.com - [root@server ~]# ipa host-add-managedby client2.example.com --hosts=client1.example.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取作为主机 client1 的票据: - kinit -kt /etc/krb5.keytab host/client1.example.com - [root@client1 ~]# kinit -kt /etc/krb5.keytab host/client1.example.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检索 client2 的 keytab: - ipa-getkeytab -s server.example.com -k /tmp/client2.keytab -p host/client2.example.com - [root@client1 ~]# ipa-getkeytab -s server.example.com -k /tmp/client2.keytab -p host/client2.example.com Keytab successfully retrieved and stored in: /tmp/client2.keytab- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
43.10.3. 访问委托的服务
当客户端有委托的授权时,它可以在本地机器上为服务和主机的主体获取 keytab。
					使用 kinit 命令,使用 -k 选项加载 keytab ,使用 -t 选项指定 keytab。主体格式为 <principal>/hostname@REALM。对于服务,将 <principal> 替换为服务名称,如 HTTP。对于主机,使用 host 作为主体。
				
流程
- 要访问主机: - kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM - [root@server ~]# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要访问服务: - kinit -kt /etc/httpd/conf/krb5.keytab HTTP/ipa.example.com@EXAMPLE.COM - [root@server ~]# kinit -kt /etc/httpd/conf/krb5.keytab HTTP/ipa.example.com@EXAMPLE.COM- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow