40.12. ホストとサービスへのアクセスの委譲
IdM ドメイン内のホストとサービスへのアクセスを委譲することで、別のホストまたはサービスのキータブと証明書を取得できます。
各ホストとサービスには managedby
エントリーがあります。このエントリーには、そのホストまたはサービスを管理できるホストとサービスがリストされます。デフォルトでは、ホストはホスト自体とそのサービスすべてを管理できます。ホストは、IdM ドメイン内の他のホストまたは他のホスト上のサービスを管理するように設定できます。
managedby
エントリーを通じてホストの権限を別のホストに委譲しても、そのホスト上のすべてのサービスに対する管理権限が自動的に付与されるわけではありません。それぞれの委譲を個別に実行する必要があります。
ホストとサービスの委譲
40.12.1. サービス管理の委譲
ドメイン内の別のホスト上のサービスを管理する権限をホストに委譲できます。
別のホストを管理する権限をホストに委譲しても、そのホストのサービスを管理する権限はホストに自動的に追加されません。サービス管理は個別に委譲する必要があります。
手順
service-add-host
コマンドを使用して、サービスの管理を特定のホストに委譲します。ipa service-add-host principal --hosts=<hostname>
principal
引数を使用してサービスプリンシパルを指定し、--hosts
オプションを使用して制御権を付与するホストを指定する必要があります。以下に例を示します。
[root@server ~]# ipa service-add HTTP/web.example.com [root@server ~]# ipa service-add-host HTTP/web.example.com --hosts=client1.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
委譲されたサービス用の証明書を生成するために、委譲された権限を持つホスト上で証明書要求を作成します。
[root@client1]# kinit -kt /etc/krb5.keytab host/client1.example.com [root@client1]# openssl req -newkey rsa:2048 -subj '/CN=web.example.com/O=EXAMPLE.COM' -keyout /etc/pki/tls/web.key -out /tmp/web.csr -nodes Generating a 2048 bit RSA private key .............................................................+++ ............................................................................................+++ Writing new private key to '/etc/pki/tls/private/web.key'
cert-request
ユーティリティーを使用して証明書要求を送信し、証明書情報をロードします。[root@client1]# ipa cert-request --principal=HTTP/web.example.com web.csr Certificate: MIICETCCAXqgA...[snip] Subject: CN=web.example.com,O=EXAMPLE.COM Issuer: CN=EXAMPLE.COM Certificate Authority Not Before: Tue Feb 08 18:51:51 2011 UTC Not After: Mon Feb 08 18:51:51 2016 UTC Serial number: 1005
40.12.2. ホスト管理の委譲
host-add-managedby
ユーティリティーを使用すると、別のホストを管理する権限をホストに委譲できます。これにより、managedby
エントリーが作成されます。managedby
エントリーが作成されると、管理ホストが管理対象ホストのキータブを取得できるようになります。
手順
管理者ユーザーとしてログインします。
[root@server ~]# kinit admin
managedby
エントリーを追加します。たとえば、以下は client2 から client1 に権限を委譲します。[root@server ~]# ipa host-add-managedby client2.example.com --hosts=client1.example.com
ホスト client1 としてチケットを取得します。
[root@client1 ~]# kinit -kt /etc/krb5.keytab host/client1.example.com
client2 のキータブを取得します。
[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
40.12.3. 委譲されたサービスへのアクセス
クライアントに権限が委譲されている場合、そのクライアントは、サービスとホストの両方について、ローカルマシンでプリンシパルのキータブを取得できます。
kinit
コマンドで、-k
オプションを使用してキータブをロードし、-t
オプションを使用してキータブを指定します。プリンシパルの形式は <principal>/hostname@REALM
です。サービスの場合は、<principal>
をサービス名 (HTTP など) に置き換えます。ホストの場合は、host
をプリンシパルとして使用します。
手順
ホストにアクセスするには、以下を実行します。
[root@server ~]# kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM
サービスにアクセスするには以下のコマンドを実行します。
[root@server ~]# kinit -kt /etc/httpd/conf/krb5.keytab HTTP/ipa.example.com@EXAMPLE.COM