ユーザーを管理する

XenServerでは、ユーザー、グループ、役割、および権限を定義することで、ホストやリソースプールにアクセスできるユーザーや実行可能な操作を制御できます。

XenServerの初回インストール時に、1つの管理者ユーザーアカウントがXenServerに自動的に追加されます。このアカウントはローカルスーパーユーザー(LSU)またはrootと呼ばれ、XenServerによりローカルに認証されるものです。

ローカルスーパーユーザー(root)は特別なシステム管理用アカウントであり、すべての権限を持ちます。XenServerでは、ローカルスーパーユーザーは、インストールでのデフォルトのアカウントです。XenServerは、ローカルスーパーユーザーアカウントを認証します。ローカルスーパーユーザーは、外部の認証サービスを必要としません。このため、外部の認証サービスに障害が生じた場合でも、ローカルスーパーユーザーとしてログインすればシステムを管理できます。ローカルスーパーユーザーは、SSHを使用して物理XenServerホストに常にアクセスできます。

ほかのユーザーを作成するには、XenCenterの[ユーザー]タブまたはxe CLIを使用してActive Directoryアカウントを追加します。Active Directoryを使用しない環境では、ローカルスーバーユーザーのみを使用します。

注:

XenServerで新しく作成したユーザーには、デフォルトでRBAC役割が割り当てられません。このため、ほかの管理者により役割が割り当てられるまで、これらのユーザーはXenServerプールにアクセスできません。

これらの権限は、「Active Directory認証の使用」セクションで説明しているように、役割を通じて付与されます。

Active Directoryでユーザーを認証する

XenServerホストやプールに対して複数のユーザーアカウントを使用するには、Active Directoryユーザーアカウントで認証する必要があります。Active Directoryアカウントでは、XenServerのユーザーがWindowsドメインの資格情報でプールにログインできます。

ユーザーアカウントに基づいてさまざまなアクセスレベルを設定するには、Active Directory認証を有効にし、ユーザーアカウントを追加し、それらのアカウントに役割を割り当てます。

Active Directoryアカウントを持つ管理者は、xe CLIを使用でき(適切な-uおよび-pw引数を指定)、XenCenterを使用してホストに接続することもできます。認証は、リソースプールごとに行われます。

サブジェクトは、ユーザーアカウントへのアクセスを制御します。XenServerのサブジェクトは、ディレクトリサーバー上のエンティティ(ユーザーまたはグループ)にマップされます。外部認証を有効にすると、XenServerで、セッションを作成するときに使用された資格情報がまずローカルルートの資格情報と照合され(ディレクトリサーバーが使用不可の場合)、次にサブジェクトリストと照合されます。アクセスを許可するには、そのユーザーまたはグループのサブジェクトエントリを作成します。XenCenterまたはxe CLIを使用してサブジェクトエントリを作成できます。

Active Directoryやユーザーアカウントに関する表記が、XenCenterとXenServer CLIで異なる点に注意してください:XenCenter用語 XenServer CLI用語 ユーザー サブジェクト 追加 ユーザー 追加 サブジェクト

XenServer環境でのActive Directory認証

XenServerはLinuxベースのシステムですが、XenServerではXenServerユーザーアカウントとしてActive Directoryアカウントを使用することができます。このため、Active Directory資格情報がActive Directoryドメインコントローラに渡されます。

XenServerにActive Directoryを追加すると、Active DirectoryのユーザーとグループがXenServerのサブジェクトになります。XenCenterでは、サブジェクトはユーザーと呼ばれます。ユーザーおよびグループは、XenServerにサブジェクトを登録するときに、ログオン時に、Active Directoryを使用することで認証されます。ユーザーおよびグループは、ドメイン名を使用してユーザー名を修飾する必要はありません。

ユーザー名を修飾するには、ダウンレベルログオン名形式で入力する必要があります。例:mydomain\myuser

注:

ユーザー名を修飾しない場合、XenCenterでは、デフォルトで、Active Directoryドメインユーザーでのログインが試行されます。ただし、ローカルスーバーユーザーアカウントでログインする場合、XenCenterは常にローカルで(つまりXenServerホスト上で)認証を試行します。

外部認証プロセスは、以下のように機能します:

  1. XenServerホストに接続するときに提供された資格情報がActive Directoryドメインコントローラに渡され、認証が要求されます。

  2. Active Directoryドメインコントローラが、その資格情報を確認します。資格情報が無効な場合は、ここで認証に失敗します。

  3. 資格情報が有効な場合は、Active Directoryドメインコントローラに照会され、その資格情報に関連付けられているサブジェクト識別子およびグループメンバシップが取得されます。

  4. 取得したサブジェクト識別子がXenServerに格納されているものと一致した場合は、認証が正常に行われます。

ドメインにXenServerを追加すると、そのリソースプールでのActive Directory認証が有効になります。これにより、そのドメイン(および信頼関係のあるドメイン)のユーザーのみがリソースプールに接続できるようになります。

注:

DHCPが設定されたネットワークPIFのDNS設定を手作業で更新することはサポートされません。これにより、Active Directoryの統合に問題が生じ、ユーザー認証に失敗することがあります。

Active Directory認証を設定する

XenServer では、Windows Server 2008またはそれ以降のActive Directoryサーバーがサポートされます。

XenServerホストでActive Directoryを認証するには、(相互運用性が有効な)Active DirectoryサーバーとそのXenServerホストが同じDNSサーバーを使用している必要があります。 Active DirectoryサーバーとDNSサーバーが同じマシンである場合もあります。これは、DHCPを使用してIPアドレス、およびDNSサーバーの一覧をXenServerホストに提供することで実現できます。または、PIFオブジェクト内の値を設定することや、手動の静的構成の使用時にインストーラーを使用することもできます。

Citrix DHCPを有効にしてホスト名をブロードキャストすることをお勧めします。ホスト名localhostまたはlinuxをホストに割り当てないでください。

警告:

XenServer環境内で、一意のXenServerホスト名を使用する必要があります。

以下の点に注意してください:

  • XenServerでは、ホスト名に基づいたActive DirectoryエントリがActive Directoryデータベースに格納されます。同じホスト名を持つ2つのXenServerホストが同じActive Directoryドメインに属している場合、2つ目のXenServerは1つ目のXenServerのActive Directoryエントリを上書きします。上書きは、ホストが同じプールに属しているか異なるプールに属しているかにかかわらず行われます。これにより、1つ目のXenServerでのActive Directory認証が機能しなくなる可能性があります。

    異なるActive Directoryドメインに属しているXenServerホストでは、同じホスト名を使用できます。

  • Active Directoryで比較されるのはUTC時間なので、異なるタイムゾーンに属しているXenServerホストを同じActive Directoryドメインに追加することができます。時計が同期するように、XenServerプールとActive Directoryサーバーで同じNTPサーバーを使用できます。

  • リソースプールで複数の認証方法を使用することはサポートされていません。プール内の一部のホストでのみActive Directory認証を有効にして、ほかのホストで無効にすることはできません。

  • XenServerのActive Directory統合機能では、Active Directoryサーバーとの通信にKerberosプロトコルが使用されます。このため、XenServerでは、Kerberosプロトコルが無効なActive Directoryサーバーはサポートされていません。

  • Active Directoryを使用して正しく外部認証が行われるようにするには、XenServerホストの時計がActive Directoryサーバーと同期している必要があります。XenServerをActive Directoryドメインに追加するときに時計が同期しているかどうかがチェックされ、同期していないと認証に失敗します。

警告:

ホスト名は、63文字以下の英数字で指定します。ただし、数字のみのホスト名を使用しないでください。

Active Directory認証を有効にした後にプールにサーバーを追加すると、そのサーバー上のActive Directory設定を確認するメッセージが表示されます。追加するサーバーの資格情報を入力するときは、サーバーをドメインに追加するための特権を持つActive Directory資格情報を使用します。

Active Directoryの統合

XenServerからドメインコントローラーへのアクセスが遮断されないように、以下のファイアウォールポートが送信トラフィック用に開放されていることを確認してください。

ポート プロトコル 使用
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 マシンパスワードの変更
3268 TCP グローバルカタログ検索

注:

  • Linuxコンピュータ上でiptablesを使用してファイアウォール規則を確認するには、次のコマンドを実行します:iptables - nL
  • XenServerでは、Active DirectoryサーバーでのActive Directoryユーザーの認証、およびActive Directoryサーバーとの通信の暗号化にPowerBroker Identity Services(PBIS)が使用されます。

XenServerによる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

指定されたユーザーにはAdd/remove computer objects or workstationsの特権が必要です。これはドメイン管理者のデフォルトです。

Active DirectoryおよびXenServerホストが使用するネットワークでDHCPを使用しない場合は、以下の方法でDNSを設定します。

  1. 非完全修飾ドメイン名エントリを解決できるように、ドメインのDNSサフィックスの検索順を設定します:

      xe pif-param-set uuid=pif-uuid_in_the_dns_subnetwork \
      “other-config:domain=suffix1.com suffix2.com suffix3.com”
    
  2. XenServerホスト上で、使用するDNSを設定する。これを行うには、次のコマンドを実行します:

    xe pif-reconfigure-ip mode=static dns=dnshost ip=ip \
    gateway=gateway netmask=netmask uuid=uuid
    
  3. 管理インターフェイスでDNSサーバーと同じネットワーク上のPIFが使用されるように設定する。これを行うには、次のコマンドを実行します:

    xe host-management-reconfigure pif-uuid=pif_in_the_dns_subnetwork
    

注:

外部認証はホストごとに設定されるプロパティですが、ただし、Citrixでは、プール単位で外部認証を有効または無効にすることをお勧めしています。プール単位での設定では、XenServerが、特定のホストで認証を有効にしたときに発生する障害に対処できます。またXenServerは、プール全体で一貫した構成となるように、必要な変更をロールバックします。host-param-listコマンドを実行して、ホストの外部認証が有効かどうかを確認できます。

Active Directory認証を無効にするには、XenCenterを使用するか、次のxeコマンドを実行します:

xe pool-disable-external-auth

ユーザー認証

ほかの管理者ユーザーがXenServerホストにアクセスできるようにするには、そのユーザーまたはグループ用のサブジェクトを追加します(推移的グループメンバーシップも通常の方法でチェックされます。たとえば、グループAにグループBが含まれ、user 1がグループBのメンバーである場合に、グループAのサブジェクトを追加すると、user 1へのアクセスが許可されます)。Active Directoryでユーザー権限を管理する場合は、単一のグループを作成してから、そのグループのユーザーを追加または削除できます。または、XenServerで個々のユーザーを追加および削除することや、認証要件に応じてユーザーとグループの組合せを追加および削除することができます。次のセクションで説明するように、XenCenterから、またはCLIを使用して、サブジェクトリストを管理できます。

ユーザーの認証時には、まずローカルルートアカウントとユーザーの資格情報が照合されます。このため、Active Directoryサーバーに障害が発生した場合でも、システムを回復できます。資格情報(ユーザー名とパスワード)が一致しない場合は、Active Directoryサーバーに対して認証要求が行われます。認証が成功すると、ユーザーの情報が取得され、ローカルのサブジェクトリストに対して検証されます。認証が失敗した場合、アクセスは拒否されます。サブジェクトリストでの検証は、そのユーザー、またはそのユーザーの推移的グループメンバシップのグループがリスト上に見つかると成功します。

注:

Active Directoryグループにプール管理者の役割を割り当ててホストへのSSHアクセスを許可する場合、そのActive Directoryグループのメンバー数は500以下である必要があります。

Active DirectoryサブジェクトをXenServerに追加するには:

xe subject-add subject-name=entity name

entity nameは、アクセスを付与するユーザーまたはグループの名前です。明確にする必要がない限り、エンティティのドメインを含めることができますが(たとえば、 「user1」ではなく「xendt\user1」)、動作は同じです。

ユーザーのサブジェクト識別子を確認します。サブジェクト識別子は、ユーザー、またはそのユーザーが属しているグループの名前です。グループを削除すると、ユーザーが明示的に指定してある場合を除き、そのグループに属しているすべてのユーザーのアクセスが無効になります。ユーザーのサブジェクト識別子を確認するには、subject listコマンドを使用します:

xe subject-list

このコマンドでは、すべてのユーザーの一覧が表示されます。

サブジェクトリストにフィルタを適用する場合、たとえば、testadドメイン内のユーザーuser1のサブジェクト識別子を検索するには、次のコマンドを実行します:

xe subject-list other-config:subject-name='testad\user1'

取得したサブジェクト識別子を指定し、subject-removeコマンドを使用してユーザーを削除します:

xe subject-remove subject-uuid=subject-uuid

このユーザーの実行中のセッションを終了できます。詳しくは、「CLIを使用してすべての認証済みセッションを終了するには」および「CLIを使用して特定ユーザーのセッションを終了するには」を参照してください。実行中のセッションを終了しないと、そのユーザーがセッションからログアウトするまでアクセスできてしまうことに注意してください。

XenServerホストやリソースプールへのアクセスが許可されているユーザーやグループを確認するには、次のコマンドを実行します:

xe subject-list

ユーザーのアクセスを削除する

ユーザーが認証されると、そのセッションを終了するか、ほかの管理者がそのユーザーのセッションを終了するまで、ホストへのアクセスが保持されます。ユーザーをサブジェクトリストから削除したり、アクセスが付与されたグループから削除したりしても、実行中のセッションが無効になるわけではありません。ユーザーは、XenCenterまたは作成済みのほかのAPIセッションを使用して引き続きプールにアクセスできます。XenCenterおよびCLIでは、個々のセッション、またはアクティブなすべてのセッションを強制終了できます。XenCenterでこれを行う方法については、XenCenterのオンラインヘルプを参照してください。次のセクションでは、CLIを使用する方法について説明します。

CLIを使用してすべての認証済みセッションを終了する

xeを使用してすべての認証済みセッションを終了するには、次のCLIコマンドを実行します:

xe session-subject-identifier-logout-all

CLIを使用して特定ユーザーのセッションを終了する

  1. 対象ユーザーのサブジェクト識別子を確認します。サブジェクト識別子を確認するには、session-subject-identifier-listまたはsubject-list xeコマンドを使用します。1つ目のコマンドでは、セッションを実行しているユーザーが表示されます。2つ目のコマンドではすべてのユーザーが表示されますが、フィルターを適用できます。たとえば、xe subject-list other-config:subject-name=xendt\\user1のようなコマンドを使用します。シェルによっては、このようにバックスラッシュを2つ入力する必要があります。

  2. 取得したサブジェクト識別子をパラメータとして指定して、session-subject-logoutコマンドを実行します。例:

    xe session-subject-identifier-logout subject-identifier=subject-id
    

Active Directoryドメインからプールを削除する

警告:

ドメインからホストやプールを削除する(つまりActive Directory認証を無効にしてプールまたはホストとドメインとの接続を切断する)と、Active Directoryの資格情報でログインした管理者ユーザーが切断されます。

リソースプールでのActive Directory認証を無効にするには、XenCenterを使用してActive Directoryドメインからプールを削除します。詳しくは、XenCenterのオンラインヘルプを参照してください。または、必要に応じてプールのUUIDを指定し、pool-disable-external-authコマンドを実行します。

注:

リソースプールをActive Directoryドメインから削除しても、Active Directoryデータベースからホストオブジェクトが削除されることはありません。無効なホストエントリを削除する方法については、Microsoft社のサポート文書を参照してください。