3.5. 内部 OAuth サーバーのトークンの非アクティブタイムアウトの設定

OAuth トークンは、設定されるアクティブでない期間の経過後に期限切れになるように設定できます。デフォルトで、トークンの非アクティブタイムアウトは設定されません。

注記

トークンの非アクティブタイムアウトが OAuth クライアントでも設定されている場合、その値は内部 OAuth サーバー設定で設定されるタイムアウトをオーバーライドします。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • アイデンティティープロバイダー (IDP) を設定している。

手順

  1. OAuth 設定を更新して、トークンの非アクティブタイムアウトを設定します。

    1. OAuth オブジェクトを編集します。

      $ oc edit oauth cluster

      spec.tokenConfig.accessTokenInactivityTimeout フィールドを追加し、タイムアウト値を設定します。

      apiVersion: config.openshift.io/v1
      kind: OAuth
      metadata:
      ...
      spec:
        tokenConfig:
          accessTokenInactivityTimeout: 400s 1
      1
      値は適切な単位で設定します。たとえば、400 秒の場合は 400s に、30 分の場合は 30m に設定します。許可される最小のタイムアウト値は 300s です。
    2. 変更を適用するためにファイルを保存します。
  2. OAuth サーバー Pod が再起動していることを確認します。

    $ oc get clusteroperators authentication

    以下の出力にあるように、PROGRESSINGFalse と表示されるまで次の手順に移行しないでください。

    出力例

    NAME             VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication   4.12.0    True        False         False      145m

  3. Kubernetes API サーバー Pod の新規リビジョンがロールアウトされていることを確認します。これには数分の時間がかかります。

    $ oc get clusteroperators kube-apiserver

    以下の出力にあるように、PROGRESSINGFalse と表示されるまで次の手順に移行しないでください。

    出力例

    NAME             VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    kube-apiserver   4.12.0     True        False         False      145m

    PROGRESSINGTrue と表示されている場合は、数分待機してから再試行します。

検証

  1. IDP のアイデンティティーでクラスターにログインします。
  2. コマンドを実行して、コマンドが正常に実行されたことを確認します。
  3. アイデンティティーを使用せずに、設定されたタイムアウトよりも長く待機します。この手順の例では、400 秒よりも長い時間待機します。
  4. 同じアイデンティティーのセッションからのコマンドの実行を試行します。

    非アクティブの状態が設定されたタイムアウトよりも長く続くとトークンの有効期限が切れるために、このコマンドは失敗します。

    出力例

    error: You must be logged in to the server (Unauthorized)