3.5. 内部 OAuth サーバーのトークンの非アクティブタイムアウトの設定
OAuth トークンは、設定されるアクティブでない期間の経過後に期限切れになるように設定できます。デフォルトで、トークンの非アクティブタイムアウトは設定されません。
トークンの非アクティブタイムアウトが OAuth クライアントでも設定されている場合、その値は内部 OAuth サーバー設定で設定されるタイムアウトをオーバーライドします。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - アイデンティティープロバイダー (IDP) を設定している。
手順
OAuth
設定を更新して、トークンの非アクティブタイムアウトを設定します。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
です。
- 変更を適用するためにファイルを保存します。
OAuth サーバー Pod が再起動していることを確認します。
$ oc get clusteroperators authentication
以下の出力にあるように、
PROGRESSING
がFalse
と表示されるまで次の手順に移行しないでください。出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE authentication 4.14.0 True False False 145m
Kubernetes API サーバー Pod の新規リビジョンがロールアウトされていることを確認します。これには数分の時間がかかります。
$ oc get clusteroperators kube-apiserver
以下の出力にあるように、
PROGRESSING
がFalse
と表示されるまで次の手順に移行しないでください。出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE kube-apiserver 4.14.0 True False False 145m
PROGRESSING
がTrue
と表示されている場合は、数分待機してから再試行します。
検証
- IDP のアイデンティティーでクラスターにログインします。
- コマンドを実行して、コマンドが正常に実行されたことを確認します。
- アイデンティティーを使用せずに、設定されたタイムアウトよりも長く待機します。この手順の例では、400 秒よりも長い時間待機します。
同じアイデンティティーのセッションからのコマンドの実行を試行します。
非アクティブの状態が設定されたタイムアウトよりも長く続くとトークンの有効期限が切れるために、このコマンドは失敗します。
出力例
error: You must be logged in to the server (Unauthorized)