ユーザーの管理
ユーザー、グループ、役割、および権限を定義することで、Citrix Hypervisorサーバーとプールにアクセスできるユーザーや実行可能な操作を制御できます。
Citrix Hypervisorの初回インストール時に、1つの管理者ユーザーアカウントがCitrix Hypervisorに自動的に追加されます。このアカウントはローカルスーパーユーザー(LSU)またはrootと呼ばれ、Citrix Hypervisorによりローカルに認証されるものです。
ローカルスーパーユーザー(root)は特別なシステム管理用アカウントであり、すべての権限を持ちます。ローカルスーパーユーザーは、Citrix Hypervisorをインストールするときのデフォルトのアカウントです。Citrix Hypervisorにより、ローカルスーパーユーザーアカウントが認証されます。ローカルスーパーユーザーは、外部の認証サービスを必要としません。このため、外部の認証サービスに障害が生じた場合でも、ローカルスーパーユーザーとしてログインすればシステムを管理できます。ローカルスーパーユーザーは、SSHを使用してCitrix Hypervisorの物理サーバーに常にアクセスできます。
ほかのユーザーを作成するには、XenCenterの[ユーザー]タブ、またはxe CLIを使用してActive Directoryアカウントを追加します。Active Directoryを使用しない環境では、使用できるのはローカルスーパーユーザーアカウントのみです。
注:
Citrix Hypervisorで新しく作成したユーザーには、デフォルトではRBAC役割が割り当てられません。このため、ほかの管理者により役割が割り当てられるまで、これらのユーザーはCitrix Hypervisorプールにアクセスできません。
最近のSSHクライアントの制限により、ユーザー名に次のいずれかの文字が含まれている場合、SSHは機能しません:
{}[]|&
。ユーザー名とActive Directoryサーバー名にこれらの文字が含まれていないことを確認してください。
これらの権限は、「Active Directory認証の使用」セクションで説明しているように、役割を通じて付与されます。
Active Directoryでユーザーを認証する
サーバーやプールに対して複数のユーザーアカウントを使用するには、Active Directoryユーザーアカウントで認証する必要があります。Active Directoryアカウントでは、Citrix HypervisorのユーザーがWindowsドメインの資格情報でプールにログインできます。
注:
ADドメインコントローラーでLDAPチャネルバインディングとLDAP署名を有効にできます。詳しくは、Microsoftセキュリティアドバイザリを参照してください。
ユーザーアカウントに基づいてさまざまなアクセスレベルを設定するには、Active Directory認証を有効にし、ユーザーアカウントを追加し、それらのアカウントに役割を割り当てます。
Active Directoryアカウントを持つ管理者は、xe CLIを使用でき(適切な-u
および-pw
引数を指定)、XenCenterを使用してホストに接続することもできます。認証はリソースプール単位で行われます。
サブジェクトは、ユーザーアカウントへのアクセスを制御します。Citrix Hypervisorのサブジェクトは、ディレクトリサーバー上のエンティティ(ユーザーまたはグループ)にマップされます。外部認証を有効にすると、Citrix Hypervisorで、セッションを作成するときに使用された資格情報がまずローカルルートの資格情報と照合され、次にサブジェクトリストと照合されます。アクセスを許可するには、そのユーザーまたはグループのサブジェクトエントリを作成します。XenCenterまたはxe CLIを使用してサブジェクトエントリを作成できます。
Active Directoryやユーザーアカウントの機能に関する表記が、XenCenterとCitrix Hypervisor CLIとで異なる点に注意してください:XenCenter用語 Citrix Hypervisor CLI用語 ユーザー サブジェクト ユーザーの追加 サブジェクトの追加
Citrix HypervisorはLinuxベースのシステムですが、Citrix HypervisorではユーザーアカウントとしてActive Directoryアカウントを使用することができます。このため、Active Directory資格情報がActive Directoryドメインコントローラーに渡されます。
Citrix HypervisorにActive Directoryを追加すると、Active DirectoryのユーザーとグループがCitrix Hypervisorのサブジェクトになります。XenCenterでは、サブジェクトはユーザーと呼ばれます。Citrix Hypervisorにサブジェクトを登録すると、ユーザーおよびグループは、ログオン時に、Active Directoryを使用することで認証されます。ユーザーおよびグループは、ドメイン名を使用してユーザー名を修飾する必要はありません。
ユーザー名を修飾するには、ダウンレベルログオン名形式で入力する必要があります。例:mydomain\myuser
。
注:
ユーザー名を修飾しない場合、XenCenterでは、デフォルトで、Active Directoryドメインユーザーでのログインが試行されます。ただし、ローカルスーパーユーザーアカウントでログインする場合、XenCenterは常にローカルで(つまりCitrix Hypervisor上で)認証を試行します。
外部認証プロセスは、以下のように機能します:
-
Citrix Hypervisorホストに接続するときに提供された資格情報がActive Directoryドメインコントローラーに渡され、認証が要求されます。
-
Active Directoryドメインコントローラーが、その資格情報を確認します。資格情報が無効な場合は、ここで認証に失敗します。
-
資格情報が有効な場合は、Active Directoryドメインコントローラーに照会され、その資格情報に関連付けられているサブジェクト識別子およびグループメンバシップが取得されます。
-
取得したサブジェクト識別子が、Citrix Hypervisorに格納されているものと一致した場合は、認証が正常に行われます。
ドメインに参加した際、プールのActive Directory認証を有効にします。これにより、そのドメイン(および信頼関係のあるドメイン)のユーザーのみがリソースプールに接続できるようになります。
注:
DHCPが設定されたネットワークPIFのDNS設定を手作業で更新することはサポートされません。これにより、Active Directoryの統合に問題が生じ、ユーザー認証に失敗することがあります。
Active Directory認証を設定する
Citrix Hypervisorでは、Windows Server 2008以降のActive Directoryサーバーがサポートされています。
Citrix HypervisorサーバーでActive Directoryを認証するには、(相互運用性が有効な)Active DirectoryサーバーとそのCitrix Hypervisorサーバーが同じDNSサーバーを使用している必要があります。 Active DirectoryサーバーとDNSサーバーが同じマシンである場合もあります。これは、DHCPを使用してIPアドレス、およびDNSサーバーの一覧をCitrix Hypervisorサーバーに提供することで実現できます。または、PIFオブジェクト内の値を設定することや、手動の静的構成の使用時にインストーラーを使用することもできます。
DHCPを有効にしてホスト名を割り当てることをお勧めします。ホスト名localhost
またはlinux
をホストに割り当てないでください。
警告:
Citrix Hypervisorサーバー名は、Citrix Hypervisorの環境全体で一意である必要があります。
以下の点に注意してください:
-
Citrix Hypervisorでは、ホスト名に基づいたActive DirectoryエントリがActive Directoryデータベースに格納されます。同じホスト名を持つ2つのCitrix Hypervisorサーバーが同じActive Directoryドメインに属している場合、2つ目のCitrix Hypervisorにより、1つ目のCitrix HypervisorのActive Directoryエントリが上書きされます。上書きは、ホストが同じプールに属しているか異なるプールに属しているかにかかわらず行われます。これにより、1つ目のCitrix HypervisorでのActive Directory認証が機能しなくなる可能性があります。
異なるActive Directoryドメインに属しているCitrix Hypervisorサーバーでは、同じホスト名を使用できます。
-
Active Directoryで比較されるのはUTC時間なので、異なるタイムゾーンに属しているCitrix Hypervisorサーバーは同じActive Directoryドメインに追加できます。時計が同期するように、Citrix HypervisorプールとActive Directoryサーバーで同じNTPサーバーを使用できます。
-
リソースプールで複数の認証方法を使用することはサポートされていません。プール内の一部のホストでのみActive Directory認証を有効にして、ほかのホストで無効にすることはできません。
-
Citrix HypervisorのActive Directory統合機能では、Active Directoryサーバーとの通信にKerberosプロトコルが使用されます。このため、Citrix Hypervisorでは、Kerberosプロトコルが無効なActive Directoryサーバーはサポートされていません。
-
Active Directoryを使用して正しく外部認証が行われるようにするには、Citrix Hypervisorサーバーの時計がActive Directoryサーバーと同期されている必要があります。Citrix HypervisorをActive Directoryドメインに追加するときに時計が同期されているかどうかがチェックされ、同期されていないと認証に失敗します。
警告:
ホスト名は、63文字以下の英数字で指定します。ただし、数字のみのホスト名を使用しないでください。
Active Directory認証を有効にした後にプールにサーバーを追加すると、そのサーバー上のActive Directory設定を確認するメッセージが表示されます。追加するサーバーの資格情報を入力するときは、サーバーをドメインに追加するための特権を持つActive Directory資格情報を使用します。
Active Directoryの統合
Citrix Hypervisorからドメインコントローラーへのアクセスが遮断されないように、以下のファイアウォールポートが送信トラフィック用に開放されていることを確認してください。
ポート | プロトコル | 使用目的 |
---|---|---|
53 | UDP/TCP | DNS |
88 | UDP/TCP | Kerberos 5 |
123 | UDP | NTP |
137 | UDP | NetBIOSネームサービス |
139 | TCP | NetBIOSセッション(SMB) |
389 | UDP/TCP | LDAP |
445 | TCP | SMB over TCP |
464 | UDP/TCP | マシンパスワードの変更 |
636 | UDP/TCP | LDAP over SSL |
3268 | TCP | グローバルカタログ検索 |
詳しくは、「Citrix Hypervisorで使用される通信ポート」を参照してください。
メモ:
- Linuxコンピューター上でiptablesを使用してファイアウォール規則を確認するには、次のコマンドを実行します:
iptables -nL
。- Citrix Hypervisorでは、Active DirectoryサーバーでのActive Directoryユーザーの認証、およびActive Directoryサーバーとの通信の暗号化にPowerBroker Identity Services(PBIS)が使用されます。
Citrix HypervisorによるActive Directory統合でのマシンアカウントパスワードの管理
Windowsクライアントマシンと同様に、PBISでは、マシンアカウントパスワードが自動的に更新されます。PBISでは、30日ごとに、またはActive Directoryサーバーのマシンアカウントパスワード更新ポリシーで指定されたとおりに、パスワードが更新されます。
リソースプールの外部認証を有効にする
Active Directoryによる外部認証は、XenCenter、または以下のCLIコマンドを使用して設定します。
xe pool-enable-external-auth auth-type=AD \
service-name=full-qualified-domain \
config:user=username \
config:pass=password
<!--NeedCopy-->
指定されたユーザーにはAdd/remove computer objects or workstations
の特権が必要です。これはドメイン管理者のデフォルトです。
Active DirectoryおよびCitrix Hypervisorサーバーで使用されるネットワークで、DHCPを使用しない場合は、以下の方法でDNSを設定します:
-
非完全修飾ドメイン名エントリを解決できるように、ドメインのDNSサフィックスの検索順を設定します:
xe pif-param-set uuid=pif_uuid_in_the_dns_subnetwork \ "other-config:domain=suffix1.com suffix2.com suffix3.com" <!--NeedCopy-->
-
Citrix Hypervisorサーバー上で、使用するDNSサーバーを設定します:
xe pif-reconfigure-ip mode=static dns=dnshost ip=ip \ gateway=gateway netmask=netmask uuid=uuid <!--NeedCopy-->
-
DNSサーバーと同じネットワーク上にあるPIFを使用するように管理インターフェイスを手動で設定します:
xe host-management-reconfigure pif-uuid=pif_in_the_dns_subnetwork <!--NeedCopy-->
注:
外部認証はホストごとのプロパティです。ただし、プール単位で外部認証を有効または無効にすることをお勧めします。プール単位に設定すると、特定のホスト上で認証を有効にした場合に発生する障害にCitrix Hypervisorで対処できます。また、Citrix Hypervisorで、必要である可能性がある変更がロールバックされ、必ずプール全体にわたり一貫性のある構成となります。
host-param-list
コマンドを実行して、ホストの外部認証が有効かどうかを確認できます。
Active Directory認証を無効にするには、XenCenterを使用するか、次のxeコマンドを実行します:
xe pool-disable-external-auth
<!--NeedCopy-->
ユーザー認証
ほかのユーザーがCitrix Hypervisorサーバーにアクセスできるようにするには、そのユーザーまたはグループ用のサブジェクトを追加する必要があります。(推移的グループメンバーシップも通常の方法でチェックされます。たとえば、グループA
にグループB
が含まれ、user 1
がグループB
のメンバーである場合に、グループA
のサブジェクトを追加すると、user 1
へのアクセスが許可されます)。Active Directoryでユーザー権限を管理する場合は、単一のグループを作成してから、そのグループのユーザーを追加または削除できます。または、Citrix Hypervisorで個々のユーザーを追加および削除することや、認証要件に応じてユーザーとグループの組み合わせを追加および削除することができます。次のセクションで説明するように、XenCenterから、またはCLIを使用して、サブジェクトリストを管理できます。
ユーザーを認証するとき、資格情報は最初にローカルルートアカウントと照合され、Active Directoryサーバーに障害が発生したシステムを回復できます。資格情報(ユーザー名とパスワード)が一致しない場合は、Active Directoryサーバーに対して認証要求が行われます。認証が成功すると、ユーザーの情報が取得され、ローカルのサブジェクトリストに対して検証されます。認証が失敗した場合、アクセスは拒否されます。サブジェクトリストでの検証は、そのユーザー、またはそのユーザーの推移的グループメンバシップのグループがリスト上に見つかると成功します。
注:
Active Directoryグループにプール管理者の役割を割り当ててホストへのSSHアクセスを許可する場合、そのADグループのユーザー数は500以下である必要があります。
Citrix HypervisorにActive Directoryサブジェクトを追加するには:
xe subject-add subject-name=entity_name
<!--NeedCopy-->
entity_nameは、アクセスを付与するユーザーまたはグループの名前です。明確にする必要がない限り、エンティティのドメインを含めることができますが(たとえば、 「user1」ではなく「xendt\user1」)、動作は同じです。
ユーザーのサブジェクト識別子を確認します。サブジェクト識別子は、ユーザー、またはそのユーザーが属しているグループの名前です。グループを削除すると、ユーザーが明示的に指定してある場合を除き、そのグループに属しているすべてのユーザーのアクセスが無効になります。ユーザーのサブジェクト識別子を確認するには、subject list
コマンドを使用します:
xe subject-list
<!--NeedCopy-->
このコマンドでは、すべてのユーザーの一覧が表示されます。
サブジェクトリストにフィルターを適用する場合、たとえば、testad
ドメイン内のユーザーuser1
のサブジェクト識別子を検索するには、次のコマンドを実行します:
xe subject-list other-config:subject-name='testad\user1'
<!--NeedCopy-->
取得したサブジェクト識別子を指定し、subject-remove
コマンドを使用してユーザーを削除します:
xe subject-remove subject-uuid=subject_uuid
<!--NeedCopy-->
このユーザーの実行中のセッションを終了できます。詳しくは、「CLIを使用してすべての認証済みセッションを終了するには」および「CLIを使用して特定ユーザーのセッションを終了するには」を参照してください。実行中のセッションを終了しないと、そのユーザーがセッションからログアウトするまでアクセスできてしまうことに注意してください。
Citrix Hypervisorサーバーやリソースプールへのアクセスが許可されているユーザーやグループを確認するには、次のコマンドを実行します:
xe subject-list
<!--NeedCopy-->
ユーザーのアクセスを削除する
ユーザーが認証されると、そのセッションを終了するか、ほかの管理者がそのユーザーのセッションを終了するまで、ホストへのアクセスが保持されます。ユーザーをサブジェクトリストから削除したり、アクセスが付与されたグループから削除したりしても、実行中のセッションが無効になるわけではありません。ユーザーは、XenCenterまたは作成済みのほかのAPIセッションを使用して、引き続きプールにアクセスできます。XenCenterとCLIには、個々のセッション、またはアクティブなすべてのセッションを強制的に終了する機能が用意されています。XenCenterでこれを行う方法については、XenCenterのドキュメントを参照してください。次のセクションでは、CLIを使用する方法について説明します。
CLIを使用してすべての認証済みセッションを終了する
xeを使用してすべての認証済みセッションを終了するには、次のCLIコマンドを実行します:
xe session-subject-identifier-logout-all
<!--NeedCopy-->
CLIを使用して特定ユーザーのセッションを終了する
-
対象ユーザーのサブジェクト識別子を確認します。サブジェクト識別子を確認するには、
session-subject-identifier-list
またはsubject-list
xeコマンドを使用します。最初のコマンドは、セッションを持っているユーザーを表示します。2つ目のコマンドではすべてのユーザーが表示されますが、フィルターを適用できます。たとえば、xe subject-list other-config:subject-name=xendt\\user1
のようなコマンドを使用します。シェルによってはこのようにバックスラッシュを2つ入力します。 -
取得したサブジェクト識別子をパラメーターとして指定して、
session-subject-logout
コマンドを実行します。例:xe session-subject-identifier-logout subject-identifier=subject_id <!--NeedCopy-->
Active Directoryドメインからプールを削除する
警告:
ドメインからホストやプールを削除すると、Active Directoryの資格情報でログインした管理者ユーザーが切断されます。
プールでのActive Directory認証を無効にするには、XenCenterを使用してActive Directoryドメインからプールを削除します。詳しくは、XenCenterのドキュメントを参照してください。または、必要に応じてプールのUUIDを指定し、pool-disable-external-auth
コマンドを実行します。
注:
リソースプールをActive Directoryドメインから削除しても、Active Directoryデータベースからホストオブジェクトが削除されることはありません。無効になっているホストエントリを検出して削除する方法について詳しくは、Active Directoryのドキュメントを参照してください。