3.6. ユーザーとロール

3.6.1. ユーザーの概要

Red Hat Virtualization には、ローカルドメインと外部ドメインの 2 種類のユーザードメインがあります。Manager のインストールプロセス中に、内部 ドメインと呼ばれるデフォルトのローカルドメインとデフォルトユーザーである admin が作成されます。

ovirt-aaa-jdbc-tool を使用して、内部 ドメインに追加のユーザーを作成できます。ローカルドメインに作成されたユーザーアカウントは、ローカルユーザーと呼ばれます。また、Red Hat Directory Server、Active Directory、OpenLDAP、その他多くのサポート対象オプションなどの外部 Directory Server を Red Hat Virtualization 環境にアタッチし、外部ドメインとして使用することも可能です。外部ドメインに作成されたユーザーアカウントは、ディレクトリーユーザーと呼ばれます。

ローカルユーザーとディレクトリーユーザーが環境内で機能するには、管理ポータルを介して両方のユーザーに適切なロールおよびパーミッションを割り当てる必要があります。ユーザーロールには、主にエンドユーザーと管理者の 2 つのタイプがあります。エンドユーザーのロールは、VM ポータルからの仮想リソースを使用および管理します。管理者のロールは、管理ポータルを使用してシステムインフラストラクチャーを維持します。ロールは、仮想マシンやホストなどの個々のリソースのユーザーに割り当てることも、クラスターやデータセンターなどのオブジェクトの階層に割り当てることもできます。

3.6.2. Directory Server の概要

インストール中に、Red Hat Virtualization Manager は 内部 ドメインに admin ユーザーを作成します。このユーザーは、admin@internal とも呼ばれます。このアカウントは、環境の初期設定およびトラブルシューティングに使用することを目的としています。外部 Directory Server を接続し、ディレクトリーユーザーを追加して適切なロールとパーミッションを割り当てた後、必要がない場合は admin@internal ユーザーを無効にできます。サポート対象の Directory Server は次のとおりです。

  • 389ds
  • 389ds RFC-2307 Schema
  • Active Directory
  • IBM Security Directory Server
  • IBM Security Directory Server RFC-2307 Schema
  • FreeIPA
  • iDM
  • Novell eDirectory RFC-2307 Schema
  • OpenLDAP RFC-2307 Schema
  • OpenLDAP Standard Schema
  • Oracle Unified Directory RFC-2307 Schema
  • RFC-2307 Schema (汎用)
  • Red Hat Directory Server (RHDS)
  • Red Hat Directory Server (RHDS) RFC-2307 Schema
  • iPlanet
重要

Red Hat Virtualization Manager (rhevm) と IdM (ipa-server) は同じシステムにインストールできません。IdM は、Red Hat Virtualization Manager で必要な mod_ssl パッケージと互換性がありません。

重要

ディレクトリーサーバーとして Active Directory を使用していて、テンプレートと仮想マシンの作成に sysprep を使用する場合は、Red Hat Virtualization の管理ユーザーに以下を実行するためのドメイン制御をを委任する必要があります。

  • コンピューターをドメインに参加させる
  • グループのメンバーシップを変更する

Active Directory でのユーザーアカウントの作成については、新規ユーザーアカウントの作成 を参照してください。

Active Directory での制御の委任については、組織単位での制御の委任 を参照してください。

3.6.3. 外部 LDAP プロバイダーの設定

3.6.3.1. 外部 LDAP プロバイダーの設定 (対話型セットアップ)

注記

ovirt-engine-extension-aaa-ldap は非推奨になりました。新規インストールの場合は、Red Hat Single Sign On を使用します。詳細は、管理ガイドRed Hat Single Sign-On のインストールおよび設定 を参照してください。

ovirt-engine-extension-aaa-ldap 拡張機能を使用すると、ユーザーは外部ディレクトリーの設定を簡単にカスタマイズできます。ovirt-engine-extension-aaa-ldap 拡張機能では多くの異なる LDAP サーバータイプがサポートされており、ほとんどの LDAP タイプのセットアップを支援する対話型セットアップスクリプトが提供されています。

LDAP サーバーの種類が対話型セットアップスクリプトにリストされていない場合、またはさらにカスタマイズしたい場合は、設定ファイルを手動で編集できます。詳細については、外部 LDAP プロバイダーの設定 を参照してください。

Active Directory の例については、Active Directory の接続 を参照してください。

前提条件

  • DNS または LDAP サーバーのドメイン名を把握している。
  • LDAP サーバーとマネージャーの間に安全な接続を設定するために、PEM でエンコードされた CA 証明書が準備されていることを確認する。
  • LDAP サーバーへの検索およびログインクエリーを実行するために、少なくとも 1 セットのアカウント名とパスワードを用意する。

手順

  1. Red Hat Virtualization Manager で、LDAP 拡張パッケージをインストールします。

    # dnf install ovirt-engine-extension-aaa-ldap-setup
  2. ovirt-engine-extension-aaa-ldap-setup を実行して、対話型セットアップを開始します。

    # ovirt-engine-extension-aaa-ldap-setup
  3. 対応する番号を入力して、LDAP タイプを選択します。LDAP サーバーのスキーマが不明な場合は、LDAP サーバータイプの標準スキーマを選択してください。Active Directory の場合は、Attaching_an_Active_Directory の手順に従います。

    Available LDAP implementations:
     1 - 389ds
     2 - 389ds RFC-2307 Schema
     3 - Active Directory
     4 - IBM Security Directory Server
     5 - IBM Security Directory Server RFC-2307 Schema
     6 - IPA
     7 - Novell eDirectory RFC-2307 Schema
     8 - OpenLDAP RFC-2307 Schema
     9 - OpenLDAP Standard Schema
    10 - Oracle Unified Directory RFC-2307 Schema
    11 - RFC-2307 Schema (Generic)
    12 - RHDS
    13 - RHDS RFC-2307 Schema
    14 - iPlanet
    Please select:
  4. Enter を押してデフォルトを許可し、LDAP サーバー名のドメイン名解決を設定します。

    It is highly recommended to use DNS resolution for LDAP server.
    If for some reason you intend to use hosts or plain address disable DNS usage.
    Use DNS (Yes, No) [Yes]:
  5. DNS ポリシー方式を選択します。

    • オプション 1 の場合、/etc/resolv.conf にリストされている DNS サーバーを使用して IP アドレスを解決します。/etc/resolv.conf ファイルが正しい DNS サーバーで更新されていることを確認します。
    • オプション 2 には、完全修飾ドメイン名 (FQDN) または LDAP サーバーの IP アドレスを入力します。SRV レコードで dig コマンドを使用して、ドメイン名を見つけることができます。SRV レコードの形式は次のとおりです。

      _service._protocol.domain_name

      例: dig _ldap._tcp.redhat.com SRV

    • オプション 3 には、LDAP サーバーのスペース区切りのリストを入力します。サーバーの FQDN または IP アドレスのいずれかを使用します。このポリシーは、LDAP サーバー間の負荷分散を提供します。クエリーは、ラウンドロビンアルゴリズムに従ってすべての LDAP サーバーに分散されます。
    • オプション 4 には、スペースで区切られた LDAP サーバーのリストを入力します。サーバーの FQDN または IP アドレスのいずれかを使用します。このポリシーは、クエリーに応答するデフォルトの LDAP サーバーとなる最初の LDAP サーバーを定義します。最初のサーバーが使用できない場合、クエリーはリストの次の LDAP サーバーに移動します。

      1 - Single server
      2 - DNS domain LDAP SRV record
      3 - Round-robin between multiple hosts
      4 - Failover between multiple hosts
      Please select:
  6. LDAP サーバーがサポートする安全な接続方法を選択し、PEM でエンコードされた CA 証明書を取得する方法を指定します。

    • File を使用すると、証明書へのフルパスを指定できます。
    • URL を使用すると、証明書の URL を指定できます。
    • Inline を使用すると、証明書の内容を端末に貼り付けることができます。
    • System では、すべての CA ファイルのデフォルトの場所を指定できます。
    • Insecure は証明書の検証をスキップしますが、接続は引き続き TLS を使用して暗号化されます。

      NOTE:
      It is highly recommended to use secure protocol to access the LDAP server.
      Protocol startTLS is the standard recommended method to do so.
      Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol.
      Use plain for test environments only.
      Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS
      Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure):
      Please enter the password:
      注記

      LDAPS は、Lightweight Directory Access Protocol Over Secure Socket Links の略です。SSL 接続の場合は、ldaps オプションを選択します。

  7. 検索ユーザーの識別名 (DN) を入力します。ユーザーには、Directory Server 上のすべてのユーザーとグループを参照するためのパーミッションが必要です。検索ユーザーは、LDAP アノテーションで指定する必要があります。匿名検索が許可されている場合は、入力せずに Enter を押します。

    Enter search user DN (for example uid=username,dc=example,dc=com or leave empty for anonymous): uid=user1,ou=Users,ou=department-1,dc=example,dc=com
    Enter search user password:
  8. ベース DN を入力します。

    Please enter base DN (dc=redhat,dc=com) [dc=redhat,dc=com]: ou=department-1,dc=redhat,dc=com
  9. 仮想マシン用に Single Sign-On を設定する場合は、Yes を選択します。この機能は、管理ポータル機能に対する Single Sign-On では使用できないことに注意してください。スクリプトにより、プロファイル名とドメイン名が一致する必要があることが通知されます。この場合も、仮想マシン管理ガイド仮想マシンのシングルサインオンの設定 に記載された手順に従う必要があります。

    Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
  10. プロファイル名を指定します。プロファイル名は、ログインページでユーザーに表示されます。この例では、redhat.com を使用しています。

    注記

    ドメインの設定後にプロファイル名を変更するには、/etc/ovirt-engine/extensions.d/redhat.com-authn.properties ファイルの ovirt.engine.aaa.authn.profile.name 属性を編集します。変更を反映するには、ovirt-engine サービスを再起動します。

    Please specify profile name that will be visible to users: redhat.com

    図3.1 管理ポータルのログインページ

    管理ポータルのログインページ
    注記

    ユーザーは、初めてログインするときにドロップダウンリストからプロファイルを選択する必要があります。情報はブラウザーの Cookie に保存され、ユーザーが次にログインしたときに事前に選択されます。

  11. ログイン機能をテストして、LDAP サーバーが Red Hat Virtualization 環境に正しく接続されていることを確認します。ログインクエリーには、user name および password を入力します。

    NOTE:
    It is highly recommended to test drive the configuration before applying it into engine.
    Login sequence is executed automatically, but it is recommended to also execute Search sequence manually after successful Login sequence.
    
    Please provide credentials to test login flow:
    Enter user name:
    Enter user password:
    [ INFO  ] Executing login sequence…​
    …​
    [ INFO  ] Login sequence executed successfully
  12. ユーザーの詳細が正しいことを確認してください。ユーザーの詳細が正しくない場合は、Abort を選択します。

    Please make sure that user details are correct and group membership meets expectations (search for PrincipalRecord and GroupRecord titles).
    Abort if output is incorrect.
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]:
  13. 検索機能を手動でテストすることが推奨されます。検索クエリーで、ユーザーアカウントの場合は Principal、グループアカウントの場合は Group を選択します。ユーザーアカウントのグループアカウント情報を返す場合は、Resolve GroupsYes を選択します。3 つの設定ファイルが作成され、画面出力に表示されます。

    Select test sequence to execute (Done, Abort, Login, Search) [Search]: Search
    Select entity to search (Principal, Group) [Principal]:
    Term to search, trailing '*' is allowed: testuser1
    Resolve Groups (Yes, No) [No]:
  14. Done を選択してセットアップを完了します。

    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Package installation
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
    CONFIGURATION SUMMARY
    Profile name is: redhat.com
    The following files were created:
        /etc/ovirt-engine/aaa/redhat.com.properties
        /etc/ovirt-engine/extensions.d/redhat.com.properties
        /etc/ovirt-engine/extensions.d/redhat.com-authn.properties
    [ INFO  ] Stage: Clean up
    Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20171004101225-mmneib.log:
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  15. ovirt-engine サービスを再起動します。作成したプロファイルは、管理ポータルおよび VM ポータルのログインページで利用できるようになります。たとえば VM ポータルにログインするために、LDAP サーバー上のユーザーアカウントに適切なロールとパーミッションを割り当てる場合は、Manager ユーザーのタスク を参照してください。

    # systemctl restart ovirt-engine.service
注記

詳細については、/usr/share/doc/ovirt-engine-extension-aaa-ldap-version の LDAP 認証および承認拡張 README ファイルを参照してください。

3.6.3.2. Active Directory の接続

注記

ovirt-engine-extension-aaa-ldap は非推奨になりました。新規インストールの場合は、Red Hat Single Sign On を使用します。詳細は、管理ガイドRed Hat Single Sign-On のインストールおよび設定 を参照してください。

前提条件

  • Active Directory フォレスト名を知っている。フォレスト名は、ルートドメイン名とも呼ばれています。

    注記

    ovirt-engine-extension-aaa-ldap-setup ツールで設定できない、最も一般的な Active Directory の設定例は /usr/share/ovirt-engine-extension-aaa-ldap/examples/README.md に記載されています。

  • Active Directory フォレスト名を解決できる DNS サーバーを Manager の /etc/resolv.conf ファイルに追加するか、Active Directory DNS サーバーを書き留めて、対話型セットアップスクリプトのプロンプトが表示されたら入力する。
  • LDAP サーバーと Manager の間に安全な接続を設定するために、PEM でエンコードされた CA 証明書が準備されていることを確認する。詳細については、Manager と LDAP サーバー間で SSL または TLS 接続の設定 を参照してください。
  • 匿名検索がサポートされていない場合、検索ユーザーとして使用できる、すべてのユーザーとグループを参照するパーミッションを持つユーザーが Active Directory で利用可能である。検索ユーザーの識別名 (DN) を書き留めます。Active Directory の管理ユーザーは使用しないでください。
  • Active Directory への検索およびログインクエリーを実行するには、アカウント名とパスワードを 少なくとも 1 つ用意しておく。
  • Active Directory のデプロイメントが複数のドメインにまたがる場合は、/usr/share/ovirt-engine-extension-aaa-ldap/profiles/ad.properties ファイルに記載されている制限に注意する。

手順

  1. Red Hat Virtualization Manager で、LDAP 拡張パッケージをインストールします。

    # dnf install ovirt-engine-extension-aaa-ldap-setup
  2. ovirt-engine-extension-aaa-ldap-setup を実行して、対話型セットアップを開始します。

    # ovirt-engine-extension-aaa-ldap-setup
  3. 対応する番号を入力して、LDAP タイプを選択します。この手順の後の LDAP 関連の質問は、LDAP タイプにより異なります。

    Available LDAP implementations:
     1 - 389ds
     2 - 389ds RFC-2307 Schema
     3 - Active Directory
     4 - IBM Security Directory Server
     5 - IBM Security Directory Server RFC-2307 Schema
     6 - IPA
     7 - Novell eDirectory RFC-2307 Schema
     8 - OpenLDAP RFC-2307 Schema
     9 - OpenLDAP Standard Schema
    10 - Oracle Unified Directory RFC-2307 Schema
    11 - RFC-2307 Schema (Generic)
    12 - RHDS
    13 - RHDS RFC-2307 Schema
    14 - iPlanet
    Please select: 3
  4. Active Directory フォレスト名を入力します。フォレスト名が Manager の DNS で解決できない場合、スクリプトは、スペースで区切られた Active Directory サーバー名のリストを入力するように求めます。

    Please enter Active Directory Forest name: ad-example.redhat.com
    [ INFO  ] Resolving Global Catalog SRV record for ad-example.redhat.com
    [ INFO  ] Resolving LDAP SRV record for ad-example.redhat.com
  5. LDAP サーバーがサポートする安全な接続方法を選択し、PEM でエンコードされた CA 証明書を取得する方法を指定します。ファイルオプションを使用すると、証明書へのフルパスを指定できます。URL オプションを使用すると、証明書への URL を指定できます。インラインオプションを使用して、証明書の内容をターミナルに貼り付けます。システムオプションを使用すると、すべての CA ファイルの場所を指定できます。セキュアでないオプションを使用すると、startTLS をセキュアでないモードで使用できます。

    NOTE:
    It is highly recommended to use secure protocol to access the LDAP server.
    Protocol startTLS is the standard recommended method to do so.
    Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol.
    Use plain for test environments only.
    Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS
    Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): File
    Please enter the password:
    注記

    LDAPS は、Lightweight Directory Access Protocol Over Secure Socket Links の略です。SSL 接続の場合は、ldaps オプションを選択します。

    PEM でエンコードされた CA 証明書の作成の詳細については、Manager と LDAP サーバー間の SSL または TLS 接続のセットアップ を参照してください。

  6. 検索ユーザーの識別名 (DN) を入力します。ユーザーには、Directory Server 上のすべてのユーザーとグループを参照するためのパーミッションが必要です。検索ユーザーは LDAP アノテーションである必要があります。匿名検索が許可されている場合は、入力せずに Enter を押します。

    Enter search user DN (empty for anonymous): cn=user1,ou=Users,dc=test,dc=redhat,dc=com
    Enter search user password:
  7. 仮想マシンにシングルサインオンを使用するかどうかを指定します。この機能はデフォルトで有効になっていますが、管理ポータルへのシングルサインオンが有効になっている場合は使用できません。スクリプトにより、プロファイル名とドメイン名が一致する必要があることが通知されます。この場合も、仮想マシン管理ガイド仮想マシンのシングルサインオンの設定 に記載された手順に従う必要があります。

    Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
  8. プロファイル名を指定します。プロファイル名は、ログインページでユーザーに表示されます。この例では、redhat.com を使用しています。

    Please specify profile name that will be visible to users:redhat.com

    図3.2 管理ポータルのログインページ

    管理ポータルのログインページ
    注記

    ユーザーは、初めてログインするときに、ドロップダウンリストから目的のプロファイルを選択する必要があります。その後、情報はブラウザーの Cookie に保存され、ユーザーが次にログインしたときに事前に選択されます。

  9. 検索およびログイン機能をテストして、LDAP サーバーが Red Hat Virtualization 環境に正しく接続されていることを確認します。ログインクエリーには、アカウント名とパスワードを入力します。検索クエリーで、ユーザーアカウントの場合は Principal を選択し、グループアカウントの場合は Group を選択します。ユーザーアカウントのグループアカウント情報を返す場合は、Resolve GroupsYes を入力します。Done を選択してセットアップを完了します。3 つの設定ファイルが作成され、画面出力に表示されます。

    NOTE:
    It is highly recommended to test drive the configuration before applying it into engine.
    Login sequence is executed automatically, but it is recommended to also execute Search sequence manually after successful Login sequence.
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login
    Enter search user name: testuser1
    Enter search user password:
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search
    Select entity to search (Principal, Group) [Principal]:
    Term to search, trailing '*' is allowed: testuser1
    Resolve Groups (Yes, No) [No]:
    [ INFO  ] Executing login sequence...
    ...
    Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Package installation
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
              CONFIGURATION SUMMARY
              Profile name is: redhat.com
              The following files were created:
                  /etc/ovirt-engine/aaa/redhat.com.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authz.properties
                  /etc/ovirt-engine/extensions.d/redhat.com-authn.properties
    [ INFO  ] Stage: Clean up
              Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160114064955-1yar9i.log:
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  10. 作成したプロファイルは、管理ポータルおよび VM ポータルのログインページで利用できるようになります。たとえば VM ポータルにログインするために、LDAP サーバー上のユーザーアカウントに適切なロールとパーミッションを割り当てる場合は、Manager ユーザーのタスク を参照してください。
注記

詳細については、/usr/share/doc/ovirt-engine-extension-aaa-ldap-version の LDAP 認証および承認拡張 README ファイルを参照してください。

3.6.3.3. 外部 LDAP プロバイダーの設定 (手動)

注記

ovirt-engine-extension-aaa-ldap は非推奨になりました。新規インストールの場合は、Red Hat Single Sign On を使用します。詳細は、管理ガイドRed Hat Single Sign-On のインストールおよび設定 を参照してください。

ovirt-engine-extension-aaa-ldap 拡張機能は、LDAP プロトコルを使用してディレクトリーサーバーにアクセスし、完全にカスタマイズ可能です。仮想マシンポータルまたは管理ポータル機能への Single Sign-On を有効にする場合を除いて、Kerberos 認証は必要ありません。

前のセクションの対話型セットアップ方法でユースケースがカバーされていない場合は、設定ファイルを手動で変更して LDAP サーバーを接続できます。次の手順では、一般的な詳細を使用します。具体的な値は、設定により異なります。

手順

  1. Red Hat Virtualization Manager で、LDAP 拡張パッケージをインストールします。

    # dnf install ovirt-engine-extension-aaa-ldap
  2. LDAP 設定テンプレートファイルを /etc/ovirt-engine ディレクトリーにコピーします。テンプレートファイルは、アクティブなディレクトリー (ad) およびその他のディレクトリータイプ (simple) で使用できます。この例では、単純な設定テンプレートを使用しています。

    # cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple/. /etc/ovirt-engine
  3. 管理ポータルおよび仮想マシンポータルのログインページでユーザーに表示するプロファイル名と一致するように、設定ファイルの名前を変更します。

    # mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authn.properties /etc/ovirt-engine/extensions.d/example-authn.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
  4. LDAP サーバーの種類のコメントを解除し、ドメインとパスワードのフィールドを更新して、LDAP プロパティー設定ファイルを編集します。

    #  vi /etc/ovirt-engine/aaa/example.properties

    例3.5 プロファイルの例: LDAP サーバーセクション

    # Select one
    #
    include = <openldap.properties>
    #include = <389ds.properties>
    #include = <rhds.properties>
    #include = <ipa.properties>
    #include = <iplanet.properties>
    #include = <rfc2307-389ds.properties>
    #include = <rfc2307-rhds.properties>
    #include = <rfc2307-openldap.properties>
    #include = <rfc2307-edir.properties>
    #include = <rfc2307-generic.properties>
    
    # Server
    #
    vars.server = ldap1.company.com
    
    # Search user and its password.
    #
    vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com
    vars.password = 123456
    
    pool.default.serverset.single.server = ${global:vars.server}
    pool.default.auth.simple.bindDN = ${global:vars.user}
    pool.default.auth.simple.password = ${global:vars.password}

    TLS または SSL プロトコルを使用して LDAP サーバーと対話するには、LDAP サーバーのルート CA 証明書を取得し、それを使用して公開 keystore ファイルを作成します。次の行のコメントを解除し、公開 keystoreファイルへのフルパスとファイルにアクセスするためのパスワードを指定します。

    注記

    公開 keystore ファイルの作成について、詳しくは Manager と LDAP サーバー間の SSL または TLS 接続の設定 を参照してください。

    例3.6 プロファイルの例: keystore セクション

    # Create keystore, import certificate chain and uncomment
    # if using tls.
    pool.default.ssl.startTLS = true
    pool.default.ssl.truststore.file = /full/path/to/myrootca.jks
    pool.default.ssl.truststore.password = password
  5. 認証設定ファイルを確認します。管理ポータルおよび仮想マシンポータルのログインページでユーザーに表示されるプロファイル名は、ovirt.engine.aaa.authn.profile.name によって定義されます。設定プロファイルの場所は、LDAP 設定ファイルの場所と一致する必要があります。すべてのフィールドをデフォルトのままにできます。

    # vi /etc/ovirt-engine/extensions.d/example-authn.properties

    例3.7 認証設定ファイルの例

    ovirt.engine.extension.name = example-authn
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthnExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
    ovirt.engine.aaa.authn.profile.name = example
    ovirt.engine.aaa.authn.authz.plugin = example-authz
    config.profile.file.1 = ../aaa/example.properties
  6. 許可設定ファイルを確認してください。設定プロファイルの場所は、LDAP 設定ファイルの場所と一致する必要があります。すべてのフィールドをデフォルトのままにできます。

    # vi /etc/ovirt-engine/extensions.d/example-authz.properties

    例3.8 許可設定ファイルの例

    ovirt.engine.extension.name = example-authz
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthzExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz
    config.profile.file.1 = ../aaa/example.properties
  7. 設定プロファイルの所有権およびパーミッションが適切であることを確認してください。

    # chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
    # chmod 600 /etc/ovirt-engine/aaa/example.properties
  8. エンジンサービスを再起動します。

    # systemctl restart ovirt-engine.service
  9. 作成した example プロファイルは、管理ポータルおよび仮想マシンポータルのログインページで利用できるようになります。たとえば VM ポータルにログインするために、LDAP サーバー上のユーザーアカウントに適切なパーミッションを割り当てる場合は、Manager ユーザーのタスク を参照してください。
注記

詳細については、/usr/share/doc/ovirt-engine-extension-aaa-ldap-version の LDAP 認証および承認拡張 README ファイルを参照してください。

3.6.3.4. 外部 LDAP プロバイダーの削除

この手順では、外部で設定された LDAP プロバイダーとそのユーザーを削除する方法を示します。

手順

  1. LDAP プロバイダー設定ファイルを削除し、デフォルト名 profile1 を置き換えます。

    # rm /etc/ovirt-engine/extensions.d/profile1-authn.properties
    # rm /etc/ovirt-engine/extensions.d/profile1-authz.properties
    # rm /etc/ovirt-engine/aaa/profile1.properties
  2. ovirt-engine サービスを再起動します。

    # systemctl restart ovirt-engine
  3. 管理ポータルの Users リソースタブで、このプロバイダーのユーザー (Authorization providerprofile1-authz であるユーザー) を選択し、Remove をクリックします。

3.6.4. シングルサインオン用の LDAP および Kerberos の設定

シングルサインオンを使用すると、ユーザーはパスワードを再入力せずに VM ポータルまたは管理ポータルにログインできます。認証情報は Kerberos サーバーから取得します。管理ポータルと VM ポータルへのシングルサインオンを設定するには、ovirt-engine-extension-aaa-misc および ovirt-engine-extension-aaa-ldap の 2 つの拡張機能と、2 つの Apache モジュール mod_auth_gssapi および mod_session を設定する必要があります。Kerberos を含まないシングルサインオンを設定できますが、これはこのドキュメントの範囲外です。

注記

VM ポータルへのシングルサインオンが有効になっている場合、仮想マシンにはシングルサインオンできません。VM ポータルへのシングルサインオンが有効になっている場合には、VM ポータルはパスワードを受け入れる必要がないので、パスワードを委任して仮想マシンにサインインすることはできません。

この例では、以下を前提としています。

  • 既存の KeyDistributionCenter (KDC) サーバーは、MIT バージョンの Kerberos 5 を使用します。
  • KDC サーバーに対する管理者権限があります。
  • Kerberos クライアントは、Red Hat Virtualization Manager とユーザーマシンにインストールされます。
  • kadmin ユーティリティーは、Kerberos サービスプリンシパルと keytab ファイルを作成するために使用されます。

この手順には、次のコンポーネントが含まれます。

  • On the KDC server

    • Red Hat Virtualization Manager 上で Apache サービス用のサービスプリンシパルと keytab ファイルを作成します。
  • Red Hat Virtualization Manager の場合

    • 認証および許可拡張パッケージと Apache Kerberos 認証モジュールをインストールします。
    • 拡張ファイルを設定します。

3.6.4.1. Apache サービス用の Kerberos の設定

  1. KDC サーバーで、kadmin ユーティリティーを使用して、Red Hat Virtualization Manager で Apache サービスのサービスプリンシパルを作成します。サービスプリンシパルは、Apache サービスの KDC への参照 ID です。

    # kadmin
    kadmin> addprinc -randkey HTTP/fqdn-of-rhevm@REALM.COM
  2. Apache サービスの keytab ファイルを生成します。keytab ファイルには、共有秘密鍵が格納されています。

    注記

    engine-backup コマンドには、バックアップおよび復元時にファイル /etc/httpd/http.keytab が含まれます。keytab ファイルに別の名前を使用する場合は、必ずバックアップして復元してください。

    kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM
    kadmin> quit
  3. KDC サーバーから Red Hat Virtualization Manager に keytab ファイルをコピーします。

    # scp /tmp/http.keytab root@rhevm.example.com:/etc/httpd

    == 仮想マシンポータルまたは管理ポータルへのシングルサインオンの設定

  4. Red Hat Virtualization Manager で、keytab の所有権とパーミッションが適切であることを確認します。

    # chown apache /etc/httpd/http.keytab
    # chmod 400 /etc/httpd/http.keytab
  5. 認証拡張パッケージ、LDAP 拡張パッケージ、および mod_auth_gssapi および mod_sessionApache モジュールをインストールします。

    # dnf install ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session
    注記

    ovirt-engine-extension-aaa-ldap は非推奨になりました。新規インストールの場合は、Red Hat Single Sign On を使用します。詳細は、管理ガイドRed Hat Single Sign-On のインストールおよび設定 を参照してください。

  6. 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
  7. 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
  8. 認証方法ファイルを確認します。レルムは keytab ファイルから自動的に取得されるため、このファイルを編集する必要はありません。

    # vi /etc/httpd/conf.d/ovirt-sso.conf

    例3.9 認証方法ファイルの例

    <LocationMatch ^/ovirt-engine/sso/(interactive-login-negotiate|oauth/token-http-auth)|^/ovirt-engine/api>
      <If "req('Authorization') !~ /^(Bearer|Basic)/i">
        RewriteEngine on
        RewriteCond %{LA-U:REMOTE_USER} ^(.*)$
        RewriteRule ^(.*)$ - [L,NS,P,E=REMOTE_USER:%1]
        RequestHeader set X-Remote-User %{REMOTE_USER}s
    
        AuthType GSSAPI
        AuthName "Kerberos Login"
    
        # Modify to match installation
        GssapiCredStore keytab:/etc/httpd/http.keytab
        GssapiUseSessions On
        Session On
        SessionCookieName ovirt_gssapi_session path=/private;httponly;secure;
    
        Require valid-user
        ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0; url=/ovirt-engine/sso/login-unauthorized\"/><body><a href=\"/ovirt-engine/sso/login-unauthorized\">Here</a></body></html>"
      </If>
    </LocationMatch>
  9. 管理ポータルおよび仮想マシンポータルのログインページでユーザーに表示するプロファイル名と一致するように、設定ファイルの名前を変更します。

    # mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
    # 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-mapping.properties /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
  10. LDAP サーバーの種類のコメントを解除し、ドメインとパスワードのフィールドを更新して、LDAP プロパティー設定ファイルを編集します。

    #  vi /etc/ovirt-engine/aaa/example.properties

    例3.10 プロファイルの例: LDAP サーバーセクション

    # Select one
    include = <openldap.properties>
    #include = <389ds.properties>
    #include = <rhds.properties>
    #include = <ipa.properties>
    #include = <iplanet.properties>
    #include = <rfc2307-389ds.properties>
    #include = <rfc2307-rhds.properties>
    #include = <rfc2307-openldap.properties>
    #include = <rfc2307-edir.properties>
    #include = <rfc2307-generic.properties>
    
    # Server
    #
    vars.server = ldap1.company.com
    
    # Search user and its password.
    #
    vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com
    vars.password = 123456
    
    pool.default.serverset.single.server = ${global:vars.server}
    pool.default.auth.simple.bindDN = ${global:vars.user}
    pool.default.auth.simple.password = ${global:vars.password}

    TLS または SSL プロトコルを使用して LDAP サーバーと対話するには、LDAP サーバーのルート CA 証明書を取得し、それを使用して公開 keystore ファイルを作成します。次の行のコメントを解除し、公開 keystoreファイルへのフルパスとファイルにアクセスするためのパスワードを指定します。

    注記

    公開 keystore ファイルの作成について、詳しくは Manager と LDAP サーバー間の SSL または TLS 接続の設定 を参照してください。

    例3.11 プロファイルの例: keystore セクション

    # 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
  11. 認証設定ファイルを確認します。管理ポータルおよび仮想マシンポータルのログインページでユーザーに表示されるプロファイル名は、ovirt.engine.aaa.authn.profile.name によって定義されます。設定プロファイルの場所は、LDAP 設定ファイルの場所と一致する必要があります。すべてのフィールドをデフォルトのままにできます。

    # vi /etc/ovirt-engine/extensions.d/example-http-authn.properties

    例3.12 認証設定ファイルの例

    ovirt.engine.extension.name = example-http-authn
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthnExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
    ovirt.engine.aaa.authn.profile.name = example-http
    ovirt.engine.aaa.authn.authz.plugin = example-authz
    ovirt.engine.aaa.authn.mapping.plugin = example-http-mapping
    config.artifact.name = HEADER
    config.artifact.arg = X-Remote-User
  12. 許可設定ファイルを確認してください。設定プロファイルの場所は、LDAP 設定ファイルの場所と一致する必要があります。すべてのフィールドをデフォルトのままにできます。

    #  vi /etc/ovirt-engine/extensions.d/example-authz.properties

    例3.13 許可設定ファイルの例

    ovirt.engine.extension.name = example-authz
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthzExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz
    config.profile.file.1 = ../aaa/example.properties
  13. 認証マッピング設定ファイルを確認します。設定プロファイルの場所は、LDAP 設定ファイルの場所と一致する必要があります。設定プロファイルの拡張名は、認証設定ファイルの ovirt.engine.aaa.authn.mapping.plugin 値と一致させる必要があります。すべてのフィールドをデフォルトのままにできます。

    # vi /etc/ovirt-engine/extensions.d/example-http-mapping.properties

    例3.14 認証マッピング設定ファイルの例

    ovirt.engine.extension.name = example-http-mapping
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.mapping.MappingExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Mapping
    config.mapAuthRecord.type = regex
    config.mapAuthRecord.regex.mustMatch = true
    config.mapAuthRecord.regex.pattern = ^(?<user>.*?)((\\\\(?<at>@)(?<suffix>.*?)@.*)|(?<realm>@.*))$
    config.mapAuthRecord.regex.replacement = ${user}${at}${suffix}
  14. 設定ファイルの所有権およびパーミッションが適切であることを確認してください。

    # chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-authn.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-authz.properties
    # chmod 600 /etc/ovirt-engine/aaa/example.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-http-authn.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-http-mapping.properties
    # chmod 640 /etc/ovirt-engine/extensions.d/example-authz.properties
  15. Apache サービスおよび ovirt-engine サービスを再起動します。

    # systemctl restart httpd.service
    # systemctl restart ovirt-engine.service

3.6.5. Red Hat Single Sign-On のインストールおよび設定

認証方法として Red Hat Single Sign-On を使用するには、以下を行う必要があります。

  • Red Hat SSO をインストールします。
  • LDAP グループマッパーを設定します。
  • Manager で Apache を設定します。
  • OVN プロバイダーの認証情報を設定します。
  • モニタリングポータル (Grafana) を設定します。
注記

Red Hat SSO が設定されている場合、一度に使用できる認証プロトコルは 1 つだけであるため、以前の LDAP サインオンは機能しません。

3.6.5.1. Red Hat SSO のインストール

Red Hat Single Sign-On をインストールするには、ZIP ファイルをダウンロードして解凍するか、RPM ファイルを使用します。

Red Hat SSO のインストール に記載されたインストール手順に従います

次の情報を準備します。

  • Open ID Connect サーバーのパス/場所。
  • 正しいリポジトリーのサブスクリプションチャネル。
  • 有効な Red Hat サブスクリプションのログイン認証情報。

3.6.5.2. LDAP グループマッパーの設定

手順

  1. 以下の情報を使用して LDAP グループマッパーを追加します。

    • Name: ldapgroups
    • Mapper Type: group-ldap-mapper
    • LDAP Groups DN: ou=groups,dc=example,dc=com
    • Group Object Classes: groupofuniquenames (LDAP サーバーの設定に応じてこのクラスを適合させます)
    • Membership LDAP Attribute: uniquemember (LDAP サーバーの設定に応じてこのクラスを適合させます)
  2. Save をクリックします。
  3. Sync LDAP Groups to KeyCloak をクリックします。
  4. User Federation Provider ページの下部で、Synchronize all users をクリックします。
  5. Clients タブの Add Client で、Client IDovirt-engine を追加し、Root URL にエンジンの URL を入力します。
  6. Client Protocolopenid-connect に変更し、Access Typeconfidential に変更します。
  7. Clients タブの Ovirt-engine > Advanced Settings で、Access Token Lifespan の有効期間を延長します。
  8. https://rhvm.example.com:443/* を有効なリダイレクト URI として追加します。
  9. クライアントシークレットが生成されます。これは、認証情報タブで確認できます。
  10. Create Mapper Protocol の下の Clients タブで、以下の設定でマッパーを作成します。

    • Name: groups
    • Mapper Type: Group Membership
    • Token Claim Name: groups
    • Full group path: ON
    • Add to ID token: ON
    • Add to access token: ON
    • Add to userinfo: ON
  11. usernameBuiltin Protocol Mapper を追加します。
  12. ovirt-engineovirt-app-apiovirt-app-admin、および ovirt-ext=auth:sequence-priority=~ で必要なスコープを作成します。
  13. 前の手順で作成したスコープを使用して、ovirt-engine クライアントのオプションのクライアントスコープを設定します。

3.6.5.3. Manager での Apache の設定

  1. mod_auth_openidc モジュールを有効にします。

    # dnf module enable mod_auth_openidc:2.3 -y
  2. Manager で Apache を設定します。

    # dnf install mod_auth_openidc
  3. /etc/httpd/conf.d/ に、以下の内容で新しい httpd 設定ファイル ovirt-openidc.conf を作成します。

    LoadModule auth_openidc_module modules/mod_auth_openidc.so
    
    OIDCProviderMetadataURL https://SSO.example.com/auth/realms/master/.well-known/openid-configuration
    OIDCSSLValidateServer Off
    
    OIDCClientID ovirt-engine
    OIDCClientSecret <client_SSO _generated_key>
    OIDCRedirectURI https://rhvm.example.com/ovirt-engine/callback
    OIDCDefaultURL https://rhvm.example.com/ovirt-engine/login?scope=ovirt-app-admin+ovirt-app-portal+ovirt-ext%3Dauth%3Asequence-priority%3D%7E
    
    # maps the prefered_username claim to the REMOTE_USER environment variable:
    
    OIDCRemoteUserClaim <preferred_username>
    OIDCCryptoPassphrase <random1234>
    
    <LocationMatch ^/ovirt-engine/sso/(interactive-login-negotiate|oauth/token-http-auth)|^/ovirt-engine/callback>
        <If "req('Authorization') !~ /^(Bearer|Basic)/i">
    
          Require valid-user
          AuthType openid-connect
    
          ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0; url=/ovirt-engine/sso/login-unauthorized\"/><body><a href=\"/ovirt-engine/sso/login-unauthorized\">Here</a></body></html>"
        </If>
    </LocationMatch>
    
    OIDCOAuthIntrospectionEndpoint https://SSO.example.com/auth/realms/master/protocol/openid-connect/token/introspect
    OIDCOAuthSSLValidateServer    Off
    OIDCOAuthIntrospectionEndpointParams token_type_hint=access_token
    OIDCOAuthClientID ovirt-engine
    OIDCOAuthClientSecret <client_SSO _generated_key>
    OIDCOAuthRemoteUserClaim sub
    
    <LocationMatch ^/ovirt-engine/(api$|api/)>
       AuthType oauth20
       Require valid-user
    </LocationMatch>
  4. 設定変更を保存するには、httpd および ovirt-engine を再起動します。

    # systemctl restart httpd
    # systemctl restart ovirt-engine
  5. 以下の内容で、/etc/ovirt-engine/extensions.d/openidc-authn.properties ファイルを作成します。

    ovirt.engine.extension.name = openidc-authn
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthnExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn
    ovirt.engine.aaa.authn.profile.name = openidchttp
    ovirt.engine.aaa.authn.authz.plugin = openidc-authz
    ovirt.engine.aaa.authn.mapping.plugin = openidc-http-mapping
    config.artifact.name = HEADER
    config.artifact.arg = OIDC_CLAIM_preferred_username
  6. 以下の内容で、/etc/ovirt-engine/extensions.d/openidc-http-mapping.properties ファイルを作成します。

    ovirt.engine.extension.name = openidc-http-mapping
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.mapping.MappingExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Mapping
    config.mapAuthRecord.type = regex
    config.mapAuthRecord.regex.mustMatch = false
    config.mapAuthRecord.regex.pattern = ^(?<user>.*?)((\\\\(?<at>@)(?<suffix>.*?)@.*)|(?<realm>@.*))$
    config.mapAuthRecord.regex.replacement = ${user}${at}${suffix}
  7. 以下の内容で、/etc/ovirt-engine/extensions.d/openidc-authz.properties ファイルを作成します。

    ovirt.engine.extension.name = openidc-authz
    ovirt.engine.extension.bindings.method = jbossmodule
    ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc
    ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthzExtension
    ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz
    config.artifact.name.arg = OIDC_CLAIM_preferred_username
    config.artifact.groups.arg = OIDC_CLAIM_groups
  8. 以下の内容で、/etc/ovirt-engine/engine.conf.d/99-enable-external-auth.conf ファイルを作成します。

    ENGINE_SSO_ENABLE_EXTERNAL_SSO=true
    ENGINE_SSO_EXTERNAL_SSO_LOGOUT_URI="${ENGINE_URI}/callback"
    EXTERNAL_OIDC_USER_INFO_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/userinfo
    EXTERNAL_OIDC_TOKEN_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/token
    EXTERNAL_OIDC_LOGOUT_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/logout
    EXTERNAL_OIDC_CLIENT_ID=ovirt-engine
    EXTERNAL_OIDC_CLIENT_SECRET="<client_SSO _generated_key>"
    EXTERNAL_OIDC_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
    EXTERNAL_OIDC_HTTPS_PKI_TRUST_STORE_PASSWORD=""
    EXTERNAL_OIDC_SSL_VERIFY_CHAIN=false
    EXTERNAL_OIDC_SSL_VERIFY_HOST=false

3.6.5.4. OVN の設定

Manager で ovirt-ovn-provider を設定した場合は、OVN プロバイダーの認証情報を設定する必要があります。

手順

  1. 以下の内容で /etc/ovirt-provider-ovn/conf.d/20-setup-ovirt-provider-ovn.conf ファイルを作成します。ここでの user1 は LDAP グループ ovirt-administrator に属し、openidchttpaaa-ldap-misc 用に設定されたプロファイルです。

    [OVIRT]
    ovirt-admin-user-name=user1@openidchttp
  2. ovirt-provider-ovn を再起動します。

    # systemctl restart ovirt-provider-ovn
  3. 管理ポータルにログインして AdministrationProviders に移動し、ovirt-provider-ovn を選択し、Edit をクリックして ovn プロバイダーのパスワードを更新します。

3.6.5.5. モニタリングポータル (Grafana) の設定

手順

  1. クライアントの有効なリダイレクト URL を設定します。

    1. 前の手順で設定したクライアントを選択します (例: ovirt-engine)。
    2. モニタリングポータル (Grafana) 用に有効なリダイレクト URI を追加します。有効なリダイレクト URI: https://rhvm.example.com:443/ovirt-engine-grafana/login/generic_oauth/
    3. Mappers タブを選択します。
    4. Create をクリックして、新しい Mapper を作成し、以下のフィールドに入力します。

      • Name: realm role
      • Mapper Type: User Realm Role
      • Token Claim Name: realm_access.roles
      • Claim JSON Type: String
  2. Grafana 固有のロールを設定します。

    1. メインメニューから Roles を選択します。
    2. admineditorviewer のロールを追加します。
  3. 目的のグループに Grafana 固有のロールを割り当てます。

    1. メインメニューから Groups を選択し、目的のグループを選択します。
    2. Role Mappings を選択します。
    3. 目的のロールを Available Roles から Assigned Roles に移動します。
  4. Grafana の設定 - /etc/grafana/grafana.iniauth.generic_oauth セクションを次のように変更します。必要に応じて、山括弧 (< >) 内の値を置き換えてください。

    (...)
    #################################### Generic OAuth #######################
    [auth.generic_oauth]
    name = oVirt Engine Auth
    enabled = true
    allow_sign_up = true
    client_id = ovirt-engine
    client_secret = <client-secret-of-RH-SSO>
    scopes = openid,ovirt-app-admin,ovirt-app-portal,ovirt-ext=auth:sequence-priority=~
    email_attribute_name = email:primary
    role_attribute_path = "contains(realm_access.roles[*], 'admin') && 'Admin' || contains(realm_access.roles[*], 'editor') && 'Editor' || 'Viewer'"
    auth_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/auth
    token_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/token
    api_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/userinfo
    team_ids =
    allowed_organizations =
    tls_skip_verify_insecure = false
    tls_client_cert =
    tls_client_key =
    tls_client_ca = /etc/pki/ovirt-engine/apache-ca.pem
    send_client_credentials_via_post = false
    (...)

3.6.6. ユーザーの承認

3.6.6.1. ユーザー認証モデル

Red Hat Virtualization は、次の 3 つのコンポーネントの組み合わせに基づいて承認制御を適用します。

  • アクションを実行するユーザー
  • 実行されているアクションのタイプ
  • アクションが実行されているオブジェクト

3.6.6.2. ユーザーアクション

アクションを正常に実行するには、アクションの対象となる オブジェクト に対する適切な パーミッションユーザー が、持っている必要があります。各アクションの種類には、対応する パーミッション があります。

いくつかのアクションは、複数のオブジェクトに対して実行されます。たとえば、テンプレートを別のストレージドメインにコピーすると、テンプレートと宛先ストレージドメインの両方に影響します。アクションを実行するユーザーは、アクションが影響を与えるすべてのオブジェクトに対して適切なパーミッションを持っている必要があります。

3.6.7. 管理ポータルからのユーザータスクの管理

3.6.7.1. Account Settings ウィンドウ

AdministrationAccount Settings ウィンドウでは、次の管理ポータルユーザー設定を表示または編集できます。

  • General タブ

    • User Name - 読み取り専用。
    • E-mail - 読み取り専用。
    • Home Page:

      Default - #dashboard-main.

      Custom home page - ハッシュマーク (#) を含む URL の最後の部分のみを入力します。例: #vms-snapshots;name-testVM

    • Serial Console

      User’s Public Key - シリアルコンソールを使用して Manager にアクセスするために使用される SSH 公開鍵を入力します。

    • Tables

      Persist grid settings - グリッド列の設定をサーバーに保存します。

  • Confirmations タブ:

    Show confirmation dialog on Suspend VM - 仮想マシンが一時停止された場合の確認ダイアログを有効にします。

3.6.7.2. ユーザーの追加と VM ポータルパーミッションの割り当て

ユーザーを追加してロールおよびパーミッションを割り当てる前に、ユーザーを作成しておく必要があります。この手順で割り当てられたロールとパーミッションにより、ユーザーは VM ポータルにログインして仮想マシンの作成を開始できます。この手順は、グループアカウントにも適用されます。

手順

  1. ヘッダーバーで、AdministrationConfigure をクリックします。これにより、Configure ウィンドウが開きます。
  2. System Permissions をクリックします。
  3. Add をクリックします。Add System Permission to User ウィンドウが開きます。
  4. Search でプロファイルを選択します。プロファイルは、検索するドメインです。検索テキストフィールドに名前または名前の一部を入力し、GO をクリックします。または、GO をクリックして、すべてのユーザーとグループのリストを表示します。
  5. 適切なユーザーまたはグループのチェックボックスを選択します。
  6. Role to Assign で、割り当てる適切なロールを選択します。UserRole ロールは、VM ポータルにログインするためのアクセス許可をユーザーアカウントに付与します。
  7. OK をクリックします。

VM ポータルにログインして、ユーザーアカウントにログインするパーミッションがあることを確認します。

3.6.7.3. ユーザー情報の表示

手順

  1. AdministrationUsers をクリックして、承認されたユーザーの一覧を表示します。
  2. ユーザーの名前をクリックします。詳細ビューが開き、通常は General タブにドメイン名、電子メール、ユーザーのステータスなどの一般情報が表示されます。
  3. 他のタブでは、ユーザーのグループ、パーミッション、割り当て、およびイベントを表示できます。

たとえば、ユーザーが属するグループを表示するには、Directory Groups タブをクリックします。

3.6.7.4. リソースでのユーザーパーミッションの表示

ユーザーには、特定のリソースまたはリソース階層のパーミッションを割り当てることができます。各リソースに割り当てられたユーザーとそのパーミッションを表示できます。

手順

  1. リソースの名前を見つけてクリックします。詳細ビューが開きます。
  2. Permissions タブをクリックして、割り当てられたユーザー、ユーザーのロール、および選択したリソースの継承されたパーミッションを一覧表示します。

3.6.7.5. ユーザーの削除

不要になったユーザーアカウントは、Red Hat Virtualization から削除します。

手順

  1. AdministrationUsers をクリックして、承認されたユーザーの一覧を表示します。
  2. 削除するユーザーを選択します。ユーザーが仮想マシンを実行していないことを確認します。
  3. Remove をクリックしてから OK をクリックします。

ユーザーは Red Hat Virtualization から削除されますが、外部ディレクトリーからは削除されません。

3.6.7.6. ログインしたユーザーの表示

現在ログインしているユーザーを、セッション時間やその他の詳細とともに表示できます。AdministrationActive User Sessions をクリックして、ログインしている各ユーザーの Session DB IDUser NameAuthorization providerUser idSource IPSession Start Time、および Session Last Active Time を表示します。

3.6.7.7. ユーザーセッションの終了

現在ログインしているユーザーのセッションを終了できます。

ユーザーセッションの終了

  1. AdministrationActive User Sessions をクリックします。
  2. 終了するユーザーセッションを選択します。
  3. Terminate Session をクリックします。
  4. OK をクリックします。

3.6.8. コマンドラインからのユーザータスクの管理

ovirt-aaa-jdbc-tool ツールを使用して、内部ドメインのユーザーアカウントを管理できます。このツールを使用して行った変更はすぐに反映され、ovirt-engine サービスを再起動する必要はありません。ユーザーオプションの完全なリストを確認するには、ovirt-aaa-jdbc-tooluser--help を実行してください。このセクションでは、一般的な例を示します。

重要

Manager マシンにログインする必要があります。

3.6.8.1. 新しいユーザーの作成

新しいユーザーアカウントを作成できます。オプションの --attribute コマンドは、アカウントの詳細を指定します。オプションの完全なリストについては、ovirt-aaa-jdbc-tool user add --help を実行してください。

# ovirt-aaa-jdbc-tool user add test1 --attribute=firstName=John --attribute=lastName=Doe
adding user test1...
user added successfully

管理ポータルで新しく作成されたユーザーを追加し、ユーザーに適切なロールとパーミッションを割り当てることができます。詳細については、ユーザーの追加 を参照してください。

3.6.8.2. ユーザーパスワードの設定

パスワードを作成できます。--password-valid-to の値を設定する必要があります。設定しないと、パスワードの有効期限はデフォルトで現在の時刻になります。

+ 日付形式は yyyy-MM-dd HH:mm:ssX です。ここで、X は UTC からのタイムゾーンオフセットになります。この例では、-0800 は GMT から 8 時間を引いたものを表します。ゼロオフセットの場合は、値 Z を使用します。

+ その他のオプションについては、ovirt-aaa-jdbc-tool user password-reset --help を実行してください。

# ovirt-aaa-jdbc-tool user password-reset test1 --password-valid-to="2025-08-01 12:00:00-0800"
Password:
updating user test1...
user updated successfully
注記

デフォルトでは、内部ドメインのユーザーアカウントのパスワードポリシーには次の制限があります。

  • 6 文字以上。
  • パスワード変更中は、過去に使用した 3 つのパスワードを再度設定できません。

パスワードポリシーおよびその他のデフォルト設定の詳細は、ovirt-aaa-jdbc-tool settings show を実行してください。

管理者パスワードが更新されたら、変更を手動で ovirt-provider-ovn に送信する必要があります。そうしないと、Red Hat Virtualization Manager が引き続き古いパスワードを使用して ovirt-provider-ovn からのネットワークを同期するため、admin ユーザーがロックされます。新しいパスワードを ovirt-provider-ovn に送信するには、次の手順を実行します。

  1. 管理ポータルで、AdministrationProviders をクリックします。
  2. ovirt-provider-ovn を選択します。
  3. Edit をクリックして、Password フィールドに新しいパスワードを入力します。
  4. Test をクリックして、指定した認証情報で認証が成功するかどうかをテストします。
  5. 認証テストが成功したら、OK をクリックします。

3.6.8.3. ユーザータイムアウトの設定

ユーザータイムアウト期間を設定できます。

# engine-config --set UserSessionTimeOutInterval=integer

3.6.8.4. ユーザーパスワードの事前暗号化

ovirt-engine-crypto-tool スクリプトを使用して、事前に暗号化されたユーザーパスワードを作成できます。このオプションは、スクリプトを使用してデータベースにユーザーとパスワードを追加する場合に役立ちます。

注記

パスワードは、暗号化された形式で Manager データベースに保存されます。すべてのパスワードを同じアルゴリズムで暗号化する必要があるため、ovirt-engine-crypto-tool スクリプトが使用されます。

パスワードがあらかじめ暗号化されている場合、パスワードの有効性テストは行えません。パスワードは、パスワード検証ポリシーに準拠していなくても受け入れられます。

  1. 以下のコマンドを実行します。

    # /usr/share/ovirt-engine/bin/ovirt-engine-crypto-tool.sh pbe-encode

    スクリプトは、パスワードの入力を促します。

    また、--password=file:file オプションを使用すると、ファイルの先頭行として表示される 1 つのパスワードを暗号化することができます。このオプションは自動化に役立ちます。次の例では、file は暗号化用の単一のパスワードを含むテキストファイルです。

    # /usr/share/ovirt-engine/bin/ovirt-engine-crypto-tool.sh pbe-encode --password=file:file
  2. ovirt-aaa-jdbc-tool スクリプトで、--encrypted オプションを使用して新しいパスワードを設定します。

    # ovirt-aaa-jdbc-tool user password-reset test1 --password-valid-to="2025-08-01 12:00:00-0800" --encrypted
  3. 暗号化されたパスワードを入力して確認します。

    Password:
    Reenter password:
    updating user test1...
    user updated successfully

3.6.8.5. ユーザー情報の表示

詳細なユーザーアカウント情報を表示できます。

# ovirt-aaa-jdbc-tool user show test1

このコマンドにより、管理ポータルのAdministrationUsers 画面により多くの情報が表示されます。

3.6.8.6. ユーザー情報の編集

メールアドレスなどのユーザー情報を更新できます。

# ovirt-aaa-jdbc-tool user edit test1 --attribute=email=jdoe@example.com

3.6.8.7. ユーザーの削除

ユーザーアカウントを削除できます。

# ovirt-aaa-jdbc-tool user delete test1

管理ポータルからユーザーを削除します。詳細については、ユーザーの削除 を参照してください。

3.6.8.8. 内部管理ユーザーの無効化

engine-setup 中に作成された admin@internal ユーザーを含む、ローカルドメインのユーザーを無効にすることができます。デフォルトの admin ユーザーを無効にする前に、完全な管理者パーミッションを持つ環境に少なくとも 1 人のユーザーがいることを確認してください。

手順

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. SuperUser ロールを持つ別のユーザーが環境に追加されていることを確認してください。詳細については、ユーザーの追加 を参照してください。
  3. デフォルトの admin ユーザーを無効にします。

    # ovirt-aaa-jdbc-tool user edit admin --flag=+disabled
注記

無効になっているユーザーを有効にするには、ovirt-aaa-jdbc-tool user edit username --flag=-disabled を実行します。

3.6.8.9. グループの管理

ovirt-aaa-jdbc-tool ツールを使用して、内部ドメインのグループアカウントを管理できます。グループアカウントの管理は、ユーザーアカウントの管理に似ています。グループオプションの全リストは、ovirt-aaa-jdbc-tool group --help を実行してください。このセクションでは、一般的な例を示します。

グループの作成

この手順では、グループアカウントを作成し、ユーザーをグループに追加し、グループの詳細を表示する方法を示します。

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. 新規グループを作成します。

    # ovirt-aaa-jdbc-tool group add group1
  3. ユーザーをグループに追加します。ユーザーが作成されている必要があります。

    # ovirt-aaa-jdbc-tool group-manage useradd group1 --user=test1
    注記

    group-manage オプションの全リストは、ovirt-aaa-jdbc-tool group-manage --help を実行してください。

  4. グループアカウントの詳細を表示します。

    # ovirt-aaa-jdbc-tool group show group1
  5. 新しく作成したグループを管理ポータルに追加し、グループに適切なロールとパーミッションを割り当てます。グループ内のユーザーは、グループのロールおよびパーミッションを継承します。詳細については、ユーザーの追加 を参照してください。

ネストされたグループの作成

この手順では、グループ内にグループを作成する方法を示します。

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. 最初のグループを作成します。

    # ovirt-aaa-jdbc-tool group add group1
  3. 2 番目のグループを作成します。

    # ovirt-aaa-jdbc-tool group add group1-1
  4. 2 番目のグループを最初のグループに追加します。

    # ovirt-aaa-jdbc-tool group-manage groupadd group1 --group=group1-1
  5. 管理ポータルに最初のグループを追加し、グループに適切なロールおよびパーミッションを割り当てます。詳細については、ユーザーの追加 を参照してください。

3.6.8.10. ユーザーおよびグループのクエリー

query モジュールを使用すると、ユーザーおよびグループの情報をクエリーできます。オプションの完全なリストについては、ovirt-aaa-jdbc-tool query --help を実行してください。

すべてのユーザーまたはグループアカウントの詳細の一覧表示

この手順では、すべてのアカウント情報を一覧表示する方法を示します。

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. アカウントの詳細を一覧表示します。

    • すべてのユーザーアカウントの詳細:

      # ovirt-aaa-jdbc-tool query --what=user
    • すべてのグループアカウントの詳細:

      # ovirt-aaa-jdbc-tool query --what=group

フィルタリングされたアカウントの詳細の一覧表示

この手順では、アカウント情報を一覧表示するときにフィルターを適用する方法を示します。

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. --pattern パラメーターを使用して、アカウントの詳細をフィルタリングします。

    • 文字 j で始まる名前でユーザーアカウントの詳細を一覧表示します。

      # ovirt-aaa-jdbc-tool query --what=user --pattern="name=j*"
    • 部門属性が marketing に設定されているグループを一覧表示します。

      # ovirt-aaa-jdbc-tool query --what=group --pattern="department=marketing"

3.6.8.11. アカウント設定の管理

デフォルトのアカウント設定を変更するには、ovirt-aaa-jdbc-tool settings モジュールを使用します。

アカウント設定の更新

この手順では、デフォルトのアカウント設定を更新する方法を示します。

  1. Red Hat Virtualization Manager がインストールされているマシンにログインします。
  2. 次のコマンドを実行して、使用可能なすべての設定を表示します。

    # ovirt-aaa-jdbc-tool settings show
  3. 必要な設定を変更します。

    • この例では、すべてのユーザーアカウントのデフォルトのログインセッション時間を 60 分に更新します。デフォルト値は 10080 分です。

      # ovirt-aaa-jdbc-tool settings set --name=MAX_LOGIN_MINUTES --value=60
    • この例では、ユーザーアカウントがロックされる前に、ユーザーが実行できるログイン試行の失敗回数を更新します。デフォルト値は 5 です。

      # ovirt-aaa-jdbc-tool settings set --name=MAX_FAILURES_SINCE_SUCCESS --value=3
      注記

      ロックされたユーザーアカウントを解除するには、ovirt-aaa-jdbc-tool user unlock test1 を実行します。

3.6.9. 追加のローカルドメインの設定

デフォルトの 内部 ドメインに加え、追加のローカルドメインの作成もサポートされています。これは、ovirt-engine-extension-aaa-jdbc 拡張機能を使用して実行でき、外部のディレクトリーサーバーを接続せずに複数のドメインを作成できますが、エンタープライズ環境ではこのユースケースは一般的ではないでしょう。

追加で作成されたローカルドメインは、標準の Red Hat Virtualization アップグレード中に自動的にアップグレードされることはなく、将来のリリースごとに手動でアップグレードする必要があります。追加のローカルドメインの作成と、ドメインのアップグレード方法に関する詳細は、/usr/share/doc/ovirt-engine-extension-aaa-jdbc-version/README.admin の README ファイルを参照してください。

注記

ovirt-engine-extension-aaa-jdbc 拡張機能は非推奨になりました。新規インストールの場合は、Red Hat Single Sign On を使用します。詳細は、管理ガイドRed Hat Single Sign-On のインストールおよび設定 を参照してください。