apigee-sso への HTTPS アクセスを構成する

Edge for Private Cloud v4.19.01

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

SSO_TOMCAT_PROFILE=DEFAULT

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

  • SSL_PROXY - apigee-sso(Edge 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 モードでは、Edge SSO モジュールの前面でロードバランサが使用されて、そのロードバランサで TLS が終了します。次の図では、ロードバランサが TLS をポート 443 で終端させ、ポート 9099 でリクエストを Edge SSO モジュールに転送しています。

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

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

SSL_PROXY モードの Edge 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. Edge SSO モジュールを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Edge SSO にアクセスするロードバランサのポート 443 で HTTPS リクエストを行うように、IDP 構成を更新します。詳細については、SAML IDP の構成をご覧ください。
  4. 構成ファイルで次のプロパティを設定して、HTTPS 用に Edge UI 構成を更新します。
    SSO_PUBLIC_URL_PORT=443
        SSO_PUBLIC_URL_SCHEME=https

    Edge UI を更新します。

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

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

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

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 での TLS / SSL の構成をご覧ください。
  4. 「apigee」ユーザーが JKS ファイルを所有するように指定します。
    sudo chown -R apigee:apigee /opt/apigee/customer/application/apigee-sso/tomcat-ssl

Edge 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. Edge SSO モジュールを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso setup -f configFile
  3. Edge SSO にアクセスするロードバランサのポート 9443 で HTTPS リクエストを行うように、IDP 構成を更新します。詳細については、SAML IDP の構成をご覧ください。
  4. 次のプロパティを設定して、HTTPS 用に Edge UI 構成を更新します。
    SSO_PUBLIC_URL_PORT=9443
        SSO_PUBLIC_URL_SCHEME=https

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

  5. Developer Services ポータルがインストールされている場合は、HTTPS を使用して Edge SSO にアクセスするようポータルを更新します。詳細については、SAML を使用して Edge と通信するように Developer Services ポータルを構成するをご覧ください。

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

Edge SSO モジュールの前面にロードバランサを配置して TLS をロードバランサで終端させ、ロードバランサと Edge SSO の間で TLS を有効にすることができます。上の SSL_PROXY モードの図でいうと、これはロードバランサから Edge SSO への接続に TLS を使用することを意味します。

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

  • ロードバランサがポート 443 で TLS を終了します。
  • Edge 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

ポート 443 で HTTPS リクエストを行うように IDP と Edge UI を構成します。