3.6. 内部 OAuth サーバー URL のカスタマイズ

クラスターIngress設定のspec.component Routesフィールドでカスタムホスト名と TLS 証明書を設定することにより、内部 OAuth サーバーの URL をカスタマイズできます。

警告

内部 OAuth サーバーの URL を更新すると、OpenShift OAuth サーバーと通信して OAuth アクセストークンを取得する必要があるクラスター内のコンポーネントからの信頼が失われる可能性があります。OAuth サーバーを信頼する必要があるコンポーネントは、OAuth エンドポイントを呼び出すときに適切な CA バンドルを含める必要があります。以下に例を示します。

$ oc login -u <username> -p <password> --certificate-authority=<path_to_ca.crt> 1
1
自己署名証明書の場合、ca.crtファイルにカスタム CA 証明書が含まれている必要があります。含まれていない場合、ログインは成功しません。

Cluster Authentication Operator は、OAuth サーバーのサービング証明書をopenshift-config-managed namespace のoauth-serving-cert設定マップに公開します。証明書は、設定マップのdata.ca-bundle.crtキーにあります。

前提条件

  • 管理者権限のあるユーザーでクラスターにログインしている。
  • openshift-config namespace に TLS 証明書およびキーを含めたシークレットを作成している。これは、カスタムホスト名の接尾辞のドメインがクラスターのドメイン接尾辞に一致しない場合に必要です。接尾辞が一致する場合には、シークレットはオプションです。

    ヒント

    oc create secret tls コマンドを使用して TLS シークレットを作成できます。

手順

  1. クラスター Ingress 設定を編集します。

    $ oc edit ingress.config.openshift.io cluster
  2. カスタムのホスト名を設定し、オプションで提供する証明書とキーを設定します。

    apiVersion: config.openshift.io/v1
    kind: Ingress
    metadata:
      name: cluster
    spec:
      componentRoutes:
        - name: oauth-openshift
          namespace: openshift-authentication
          hostname: <custom_hostname> 1
          servingCertKeyPairSecret:
            name: <secret_name> 2
    1
    カスタムホスト名。
    2
    TLS 証明 h そ (tls.crt) およびキー (tls.key) を含む openshift-config namespace のシークレットへの参照。これは、カスタムホスト名の接尾辞のドメインがクラスターのドメイン接尾辞に一致しない場合に必要です。接尾辞が一致する場合には、シークレットはオプションです。
  3. 変更を適用するためにファイルを保存します。