第3章 Red Hat OpenStack Platform と Active Directory フェデレーションサービスを使用したフェデレーション

Red Hat は、Red Hat OpenStack Platform (RHOSP) の ID プロバイダーとして Microsoft Active Directory Federation Services (AD FS) の使用をサポートしているため、より広範な組織に存在する同じフェデレーションソリューションを RHOSP で Single Sign-On に使用できます。

3.1. Active Directory フェデレーションサービスを使用した Red Hat OpenStack Platform のデプロイ

Enable-federation-openidc.yaml 環境ファイルを使用して Red Hat OpenStack Platform (RHOSP) をデプロイし、フェデレーション認証ソリューションに統合できるようにします。

前提条件

  • Red Hat OpenStack Platform director がインストールされている。
  • 環境内にフェデレーション用の Active Directory (c) が設定されている。

手順

  1. keystone エンドポイントに注意してください。keystone エンドポイントは 、custom-domain.yaml heat テンプレートの CloudName パラメーターに割り当てた FQDN 値であり、トランスポート番号とポート番号が含まれます。Keystone エンドポイントの構成は、以下のとおりです。

    https://<FQDN>:13000
    注記

    TLS をデプロイしない場合、keystone エンドポイントは http://<FQDN>:5000 になります。Red Hat では、RHOSP のすべての実稼働デプロイメントで TLS をデプロイすることを推奨します。

  2. SSO 管理者に次のリダイレクト URI を提供します。

    リダイレクト URI:

    https://<FQDN>:13000/v3/auth/OS-FEDERATION/identity_providers/adfsIDP/protocols/openid/websso
    https://<FQDN>:13000/v3/auth/OS-FEDERATION/websso/openid
  3. これに応じて、SSO 管理者は ClientIDClientSecret を提供します。
  4. enable-federation-openidc.yaml yaml ファイルをスタックのホームディレクトリーにコピーします。

    cp /usr/share/openstack-tripleo-heat-templates/environments/enable-federation-openidc.yaml \
    /home/stack/
  5. enable-federation-openidc.yaml 環境ファイルのコピーを編集します。以下は設定例です。

    parameter_defaults:
      KeystoneAuthMethods: password,token,oauth1,mapped,application_credential,openid1
      KeystoneOpenIdcClientId: <ClientID>2
      KeystoneOpenIdcClientSecret: <ClientSecret>3
      KeystoneOpenIdcCryptoPassphrase: openstack4
      KeystoneOpenIdcIdpName: adfsIdP5
      KeystoneOpenIdcIntrospectionEndpoint: https://adfs.local.com/adfs/openid-connect/token/introspect6
      KeystoneOpenIdcProviderMetadataUrl: https://adfs.local.com/adfs/.well-known/openid-configuration7
      KeystoneOpenIdcRemoteIdAttribute: HTTP_OIDC_ISS8
      KeystoneOpenIdcResponseType: code9
      KeystoneTrustedDashboards: https://overcloud.redhat.local/dashboard/auth/websso/10
      WebSSOChoices: [['OIDC', 'OpenID Connect']]11
      WebSSOIDPMapping: {'OIDC': ['adfsIdP', 'openid']}12
      WebSSOInitialChoice: OIDC
      KeystoneFederationEnable: True
      KeystoneOpenIdcEnable: True
      KeystoneOpenIdcEnableOAuth: True
      WebSSOEnable: True
    1
    受け入れ可能な認証方法のコンマ区切りのリスト。
    2
    OpenID Connect プロバイダーハンドシェイクに使用するクライアント ID。これは、SSO 管理者から取得する必要があります。
    3
    OpenID Connect プロバイダーハンドシェイクに使用するクライアントシークレット。リダイレクト URL を指定したら、SSO 管理者からこれを取得する必要があります。
    4
    OpenID Connect ハンドシェイクのデータを暗号化する際に使用するパスフレーズを選択します。
    5
    Identity サービス (keystone) で IdP に関連付けられた名前。このパラメーターの値は、Active Directory Federation Services では常に adfsIDP です。
    6
    Identity サービスのイントロスペクションエンドポイント: https://{FQDN}/realms/<realm>/protocol/openid-connect/token/introspect
    7
    OpenID Connect プロバイダーのメタデータをポイントする URL
    8
    環境から認証プロバイダーのエンティティー ID を取得するのに使用される属性。
    9
    想定される OpenID Connect プロバイダーからの応答種別。
    10
    Single Sign-On 用に信頼されたダッシュボード URL。これはコンマ区切りのリストにすることもできます。
    11
    表示する SSO 認証の選択肢リストを指定します。各項目は、SSO の選択肢の ID および表示メッセージのリストです。
    12
    SSO 認証の選択肢から認証プロバイダーおよびプロトコルへのマッピングを指定します。認証プロバイダーおよびプロトコル名は、keystone で定義したリソースと一致している必要があります。
  6. Enable-federation-openidc.yaml を他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
    -e [your environment files] \
    -e /home/stack/templates/enable-federation-openidc.yaml.yaml