Security Association Markup Language (SAML) 2.0 プロトコルを使用する任意のサードパーティ ID プロバイダ ソリューションと VMware Integrated OpenStack を統合できます。VMware Integrated OpenStack の Keystone は、この構成ではサービス プロバイダとして機能します。

重要:
  • VMware はサードパーティ ID プロバイダをサポートしていません。この手順に必要な情報を取得するには、ID プロバイダの管理者に確認してください。
  • 同じ Active Directory バックエンドを持つ LDAP 認証とフェデレーションの両方に VMware Integrated OpenStack を接続しないでください。

SAML 2.0 を使用して VMware Integrated OpenStackVMware Identity Manager を統合する場合は、VMware Identity Manager フェデレーションの設定を参照してください。

前提条件

  • ID プロバイダのメタデータ ファイルの場所と、ファイル内の entityID 属性を決定します。
  • VMware Integrated OpenStack デプロイから ID プロバイダの FQDN にアクセスできることを確認します。
  • SAML2 属性マッピングでは、Keystone は SSO コンポーネントとして、Shibboleth を使用します。Shibboleth は、IdP のユーザー属性を Keystone が使用するローカル属性にマッピングします。ユーザー属性については、IdP 管理者に確認してください。
  • SAML2 ルール マッピングでは、Keystone にはリモート ユーザーをローカル ドメイン、プロジェクト、グループにマッピングするためのルールが必要です。詳細については、https://docs.openstack.org/keystone/train/admin/federation/mapping_combinations.html にある OpenStack ドキュメントの「マッピングの組み合わせ」を参照してください。
  • ID プロバイダ側で、サービス プロバイダを適切に構成する必要があります。サービス プロバイダのメタデータには、次の URL を使用してアクセスできます:https://<vio_public_endpoint>:5000/<your_idp_name>/Shibboleth.sso/Metadata

手順

  1. Integrated OpenStack Manager Web インターフェイスに admin ユーザーとしてログインします。
  2. [OpenStack デプロイ] で、デプロイの名前をクリックし、[管理] タブを開きます。
  3. [Keystone フェデレーション] タブで、[追加] をクリックします。
  4. [フェデレーション タイプ] ドロップダウン メニューから、[Generic SAML2] を選択します。
  5. 必須パラメータを入力します。
    オプション 説明
    [名前]

    ID プロバイダの名前を入力します。VMware Integrated OpenStack は、OpenStack ID プロバイダの作成の際にこの名前を使用します。

    [説明]

    ID プロバイダの説明を入力します。

    [属性マッピング]

    追加の SAML 属性を JSON 形式で入力するか、必要な属性を含む JSON ファイルをアップロードします。VMware Integrated OpenStack は、Shibboleth の attribute-map.xml ファイルの構成の際に JSON データを使用します。

    [GENIRIC SAML2 は安全ではありません]

    ID プロバイダの証明書を検証できるようにするには、このチェック ボックスの選択を解除します。

    [GENIRIC SAML2 エンティティ ID]

    ID プロバイダの entityID 属性を入力します。この値はフェデレーション メタデータ ファイルで確認できます。VMware Integrated OpenStack は、OpenStack ID プロバイダの作成の際にこの値を使用します。

    [SAML2 メタデータ URL]

    ID プロバイダのフェデレーション メタデータに URL を入力します。VIO Manager は、メタデータ ファイルのダウンロードの際にこの URL にアクセスできます。

    [SAML2 マッピング]

    SAML マッピングを JSON 形式で入力するか、必要なマッピングを含む JSON ファイルをアップロードします。VMware Integrated OpenStack は、OpenStack マッピングの作成の際にこの値を使用して、この ID プロバイダのフェデレーション プロトコルに設定します。

    [属性マッピングの形式と例:]
    [
          {
            "name": "urn:oid:0.9.2342.19200300.100.1.1",
            "nameFormat": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
            "id": "username"
          },
          {
            "name": "urn:oid:0.9.2342.19200300.100.1.3",
            "nameFormat": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
            "id": "email"
          }
        ]
    
    オプション 説明

    name

    属性名を入力します。Keystone には、ユーザー固有の ID として使用できる属性が 1 つ以上必要です。たとえば、usernameemail があります。属性名を特定するには、IdP 管理者に確認します。IdP サーバとは異なる場合があります。

    nameFormat

    属性名の形式を入力します。形式の値を特定するには、IdP 管理者に確認します。属性はオプションです。
    id

    この属性の文字列値を入力します。文字列値にはスペースを使用しないでください。たとえば、「user name」は使用せず、代わりに「"username"」を使用します。この値は、マッピング ルールで remote:type として使用できます。

    [SAML2 ルール マッピングの形式と例:]
    [
      {
        "local": [
          {
            "user": {
              "name": "{1}"
            },
            "group": {
              "name": "federated_users",
              "domain": {
                "name": "federated_domain"
              }
            }
          }
        ],
        "remote": [
          {
            "type": "username"
          },	
          {
            "type": "email"
          }
        ]
      }
    ]
    
    ルール マッピング定義は、OpenStack コミュニティの Keystone の マッピングの組み合わせで確認できます。
    オプション 説明

    local

    JSON は、OpenStack のローカル ドメインとプロジェクトを定義します。この属性は、IdP からマッピングされたユーザーに使用できます。たとえば、SAML2 ルール マッピングでは、"name": "{1}" は Keystone のログイン名として "type": "email" を使用し、指定したドメインとプロジェクトにログインする場合と同じです。

    remote

    このセクションは、リモート属性をマッピングするためのルールと条件を定義します。

  6. (オプション) ドメイン、プロジェクト、グループ パラメータを構成するには、[詳細設定] チェック ボックスを選択します。
    1. [よく使用される詳細設定] で、OpenStack ドメインとして federated_domain、プロジェクトとして federated_project、グループとして federated_group と入力します。
    2. OpenStack のドメイン、プロジェクト、グループ名は、ルール マッピングの "local" JSON で指定した情報と一致させる必要があります。
    3. VMware Integrated OpenStack は、指定したフェデレーション ユーザーにドメインとプロジェクトを作成します。
      注: federated は Keystone によって使用されているため、ドメイン名として入力しないでください。
  7. [OK] をクリックします。
    注: SAML2 構成の完了後、Keystone サービスが自動的に再起動します。メタデータをダウンロードする前に、 viocli get deployment を実行して、デプロイ ステータスが RUNNING に変更されていることを確認します。
  8. https://<vio_public_endpoint>:5000/<your_idp_name>/Shibboleth.sso/Metadata がアクセス可能であることを確認し、VMware Integrated OpenStack Keystone をサービス プロバイダとして信頼するように IdP サービスを構成します。

結果

VMware Integrated OpenStack は ID プロバイダ ソリューションと統合され、フェデレーション ユーザーおよびグループは OpenStack にインポートされます。VMware Integrated OpenStack ダッシュボードにアクセスすると、指定した ID プロバイダを選択して、フェデレーション ユーザーとしてログインすることができます。

注: Identity フェデレーションを使用する場合は、パブリック OpenStack エンドポイントを介して VMware Integrated OpenStack ダッシュボードにアクセスする必要があります。フェデレーション ユーザーとしてログインする際は、プライベート OpenStack エンドポイントまたはコントローラの IP アドレスを使用しないでください。

例: VMware Integrated OpenStack と Active Directory フェデレーション サービスの統合

次の手順では、ユーザー プリンシパル名 (UPN) に基づいて、VMware Integrated OpenStack と Active Directory フェデレーション サービス (ADFS) 間に ID フェデレーションを実装します。ADFS 構成の手順は参考用のサンプルです。実際のエンタープライズ構成は異なる場合があります。対応する VMware Integrated OpenStack SAML 構成は変更する必要があります。

この例では、VMware Integrated OpenStack デプロイのパブリック仮想 IP アドレスは 192.0.2.160 であり、ADFS ロールが adfs.example.com の Windows Server 仮想マシンに属しています。VMware Integrated OpenStack の ID プロバイダの名前は adfsvio です。

  1. ADFS で、VMware Integrated OpenStack に証明書利用者信頼を追加します。
    1. [ADFS 管理] で、[アクション] > [証明書利用者信頼の追加...] の順にクリックします。
    2. [開始] をクリックします。
    3. [証明書利用者についてのデータを手動で入力する] を選択して、[次へ] をクリックします。
    4. 表示名に OpenStack と入力し、[次へ] をクリックします。
    5. [ADFS プロファイル] を選択して、[次へ] をクリックします。
    6. [次へ] をクリックします。
    7. [SAML 2.0 WebSSO プロトコルのサポートを有効にする] を選択します。
    8. 証明書利用者の URL として https://192.0.2.160:5000/adfsvio/Shibboleth.sso/SAML2 と入力して、[次へ] をクリックします。
    9. 証明書利用者信頼 ID として https://192.0.2.160:5000/adfsvio と入力し、[追加] をクリックして、[次へ] をクリックします。
    10. [現時点ではこの証明書利用者信頼に多要素認証を構成しない] を選択して、[次へ] をクリックします。
    11. [すべてのユーザーに対してこの証明書利用者へのアクセスを許可する] を選択して、[次へ] をクリックします。
    12. [次へ] をクリックし、[要求規則の編集] を選択して、[閉じる] をクリックします。
    13. [ルールを追加...] をクリックします。
    14. [入力方向の要求をパス スルーまたはフィルタリング] を選択して、[次へ] をクリックします。
    15. ルール名として [UPN パススルー] と入力し、入力方向の要求のタイプに [UPN] を選択します。
    16. [すべての要求値をパス スルーする] を選択して、[終了] をクリックします。
  2. Integrated OpenStack Manager Web インターフェイスに admin ユーザーとしてログインします。
  3. [OpenStack デプロイ] で、デプロイの名前をクリックし、[管理] タブを開きます。
  4. [ID フェデレーション] タブで、[追加] をクリックします。
  5. [フェデレーション タイプ] ドロップダウン メニューから、[Generic SAML2] を選択します。
  6. 次の構成を入力します。
    オプション 説明
    [名前] adfsvio
    [説明] ADFS ID プロバイダ
    [属性マッピング]
    [
        {
            "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn",
            "id": "upn"
        }
    ]
    [GENIRIC SAML2 エンティティ ID] http://adfs.example.com/adfs/services/trust
    [SAML2 メタデータ URL] https://adfs.example.com/federationmetadata/2007-06/federationmetadata.xml
    [SAML2 マッピング]
    [
        {
            "local": [
                {
                    "user": {
                        "name": "{0}"
                    },
                    "group": {
                        "domain": {
                            "name": "adfs-users"
                        },
                        "name": "Federated Users"
                    }
                }
            ],
            "remote": [
                {
                    "type": "upn"
                }
            ]
        }
    ]
  7. [詳細設定] チェックボックスを選択します。
  8. [共通の詳細設定] を選択し、以下の構成を入力します。
    オプション 説明
    [ドメイン] adfs ユーザー
    [プロジェクト]

    テキスト ボックスを空にします。

    [グループ] フェデレーション ユーザー

構成の検証と更新の完了後、VMware Integrated OpenStack ダッシュボードを開きます。これで、ADFS ID プロバイダを選択し、フェデレーション ユーザーとしてログインできるようになりました。

次のタスク

構成した ID プロバイダを削除するには、Integrated OpenStack Manager Web インターフェイスを選択し、[削除] をクリックします。次に、VMware Integrated OpenStack ダッシュボードにログインし、[Identity] > [フェデレーション] > [ID プロバイダ] の順に選択して、[ID プロバイダの登録解除] をクリックします。