HTTPS アクセス用に Apigee SSO を構成する

Apigee SSO をインストールして構成するでは、Edge 構成ファイルの次のプロパティで指定されているように、ポート 9099 で HTTP を使用するように Apigee SSO モジュールをインストールして構成する方法について説明しています。

SSO_TOMCAT_PROFILE=DEFAULT

または、SSO_TOMCAT_PROFILE を次のいずれかの値に設定して HTTPS アクセスを有効にすることもできます。

  • SSL_PROXY: Apigee SSO モジュールである apigee-sso をプロキシモードで構成します。つまり、apigee-sso の前にロードバランサをインストールし、ロードバランサで TLS を終端します。次に、ロードバランサからのリクエストに apigee-sso で使用されるポートを指定します。
  • SSL_TERMINATION: 任意のポートで apigee-sso への TLS アクセスを有効にします。このモードでは、CA によって署名された証明書を含むキーストアを指定する必要があります。自己署名証明書は使用できません。

apigee-sso の最初のインストールと構成時に HTTPS を有効にすることも、後で有効にすることもできます。

どちらかのモードを使用して apigee-sso への HTTPS アクセスを有効にすると、HTTP アクセスが無効になります。つまり、HTTP と HTTPS の両方を使用して apigee-sso に同時にアクセスすることはできません。

SSL_PROXY モードを有効にする

SSL_PROXY モードでは、システムは Apigee SSO モジュールの前にロードバランサを使用し、ロードバランサで TLS を終端します。次の図では、ロードバランサがポート 443 で TLS を終端し、ポート 9099 で Apigee SSO モジュールにリクエストを転送します。

この構成では、ロードバランサから Apigee SSO モジュールへの接続を信頼するため、その接続に TLS を使用する必要はありません。ただし、IDP などの外部エンティティは、保護されていないポート 9099 ではなく、ポート 443 で Apigee SSO モジュールにアクセスする必要があります。

Apigee SSO モジュールを SSL_PROXY モードで構成する理由は、Apigee SSO モジュールが、認証プロセスの一環として IDP が外部で使用するリダイレクト URL を自動生成するためです。したがって、これらのリダイレクト URL には、Apigee SSO モジュールの内部ポート(9099)ではなく、ロードバランサの外部ポート番号(この例では 443)を含める必要があります。

SSL_PROXY モード用に Apigee SSO モジュールを構成するには:

  1. 構成ファイルに次の設定を追加します。
    # Enable SSL_PROXY mode.
    SSO_TOMCAT_PROFILE=SSL_PROXY
    
    # Specify the apigee-sso port, typically between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9099
    
    # Specify the port number on the load balancer for terminating TLS.
    # This port number is necessary for apigee-sso to auto-generate redirect URLs.
    SSO_TOMCAT_PROXY_PORT=443
    SSO_PUBLIC_URL_PORT=443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Apigee SSO モジュールを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. IDP 構成を更新して、ロードバランサのポート 443 で HTTPS リクエストを送信して Apigee SSO にアクセスするようにします。詳細については、次のいずれかをご覧ください。
  4. 構成ファイルで次のプロパティを設定して、HTTPS の Edge UI 構成を更新します。
    SSO_PUBLIC_URL_PORT=443
    SSO_PUBLIC_URL_SCHEME=https

    次に、Edge UI を更新します。

    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile

    従来の UI には edge-ui コンポーネントを使用します。

  5. Apigee Developer Services ポータル(略して「ポータル」)をインストールした場合は、HTTPS を使用して Apigee SSO にアクセスするように更新します。詳細については、外部 IDP を使用するようにポータルを構成するをご覧ください。

詳細については、Edge UI で外部 IDP を有効にするをご覧ください。

SSL_TERMINATION モードを有効にする

SSL_TERMINATION モードの場合、次のことを行う必要があります。

  • TLS 証明書と鍵を生成し、キーストア ファイルに保存します。自己署名証明書は使用できません。CA から証明書を生成する必要があります。
  • apigee-sso. の構成設定を更新する

証明書と鍵からキーストア ファイルを作成するには:

  1. JKS ファイルのディレクトリを作成します。
    sudo mkdir -p /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  2. 新しいディレクトリに移動します。
    cd /opt/apigee/customer/application/apigee-sso/tomcat-ssl/
  3. 証明書と鍵を含む JKS ファイルを作成します。このモードでは、CA によって署名された証明書を含むキーストアを指定する必要があります。自己署名証明書は使用できません。JKS ファイルの作成例については、Edge On Premises の TLS/SSL の構成をご覧ください。
  4. JKS ファイルを「apigee」ユーザーが所有するようにします。
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

Apigee SSO モジュールを構成するには:

  1. 構成ファイルに次の設定を追加します。
    # Enable SSL_TERMINATION mode.
    SSO_TOMCAT_PROFILE=SSL_TERMINATION
    
    # Specify the path to the keystore file.
    SSO_TOMCAT_KEYSTORE_FILEPATH=/opt/apigee/customer/application/apigee-sso/tomcat-ssl/keystore.jks
    
    SSO_TOMCAT_KEYSTORE_ALIAS=sso
    
    # The password specified when you created the keystore.
    SSO_TOMCAT_KEYSTORE_PASSWORD=keystorePassword
    
    # Specify the HTTPS port number between 1025 and 65535.
    # Typically ports 1024 and below require root access by apigee-sso.
    # The default is 9099.
    SSO_TOMCAT_PORT=9443
    SSO_PUBLIC_URL_PORT=9443
    
    # Set public access scheme of apigee-sso to https.
    SSO_PUBLIC_URL_SCHEME=https
  2. Apigee SSO モジュールを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. ロードバランサのポート 9443 で HTTPS リクエストを送信して Apigee SSO にアクセスするように、IDP 構成を更新します。他のサービスがこのポートを使用していないことを確認してください。

    詳しくは以下をご覧ください。

  4. 次のプロパティを設定して、HTTPS 用の Edge UI 構成を更新します。
    SSO_PUBLIC_URL_PORT=9443
    SSO_PUBLIC_URL_SCHEME=https
  5. Developer Services ポータルをインストールした場合は、HTTPS を使用して Apigee SSO にアクセスするように更新します。詳細については、外部 IDP を使用するようにポータルを構成するをご覧ください。

SSL_TERMINATION モードを使用する場合は SSO_TOMCAT_PROXY_PORT を設定する

Apigee SSO モジュールの前にロードバランサがあり、ロードバランサで TLS を終端するだけでなく、ロードバランサと Apigee SSO の間でも TLS を有効にしている場合があります。上の図の SSL_PROXY モードでは、ロードバランサから Apigee SSO への接続に TLS が使用されます。

このシナリオでは、SSL_TERMINATION モードの場合と同様に、Apigee SSO で TLS を構成します。ただし、ロードバランサが Apigee SSO が TLS に使用するポート番号とは異なる TLS ポート番号を使用する場合は、構成ファイルで SSO_TOMCAT_PROXY_PORT プロパティも指定する必要があります。次に例を示します。

  • ロードバランサはポート 443 で TLS を終端します。
  • Apigee SSO がポート 9443 で TLS を終端する

構成ファイルに次の設定が含まれていることを確認します。

# Specify the port number on the load balancer for terminating TLS.
# This port number is necessary for apigee-sso to generate redirect URLs.
SSO_TOMCAT_PROXY_PORT=443
SSO_PUBLIC_URL_PORT=443

IDP と Edge UI を構成して、ポート 443 で HTTPS リクエストを送信します。