Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

13.6. 会话选项

OAuth 服务器在登录和重定向流程期间使用签名和加密的 cookie 会话。

使用 sessionConfig 小节来设置会话选项:

例 13.12. Master 配置会话选项

oauthConfig:
  ...
  sessionConfig:
    sessionMaxAgeSeconds: 300 1
    sessionName: ssn 2
    sessionSecretsFile: "..." 3
1
控制会话的最长期限;会话会在令牌请求完成后自动过期。如果没有启用 auto-grant,只要用户希望批准或拒绝客户端授权请求,就需要会话有效。
2
用于存储会话的 Cookie 名称。
3
包含序列化 SessionSecrets 对象的文件名。如果为空,则在每次服务器启动时都会生成随机签名和加密 secret。

如果没有指定 sessionSecretsFile,则会在每次主服务器启动时生成一个随机签名和加密 secret。这意味着,如果重启 master,任何正在进行中的登录都将在 master 重新启动时其会话无效。这也意味着它们将无法解码由其他其中一个 master 生成的会话。

要指定要使用的签名和加密 secret,请指定 sessionSecretsFile。这可让您将 secret 值与配置文件分开,并保留可分发的配置文件,例如用于调试目的。

可以在 sessionSecretsFile 中指定多个 secret 来启用轮转。使用列表中第一个 secret,对新会话进行签名和加密。现有会话由每个 secret 进行解密和验证,直到成功为止。

例 13.13. 会话 Secret 配置:

apiVersion: v1
kind: SessionSecrets
secrets: 1
- authentication: "..." 2
  encryption: "..." 3
- authentication: "..."
  encryption: "..."
...
1
用于进行身份验证和加密 cookie 会话的 secret 列表。必须至少指定一个 secret。每个 secret 必须设置身份验证和加密 secret。
2
签名 secret,用于使用 HMAC 验证会话。建议您使用具有 32 或 64 字节的 secret。
3
加密 secret,用于加密会话。必须长度为 16、24 或 32 个字符,才能选择 AES-128、AES-192 或 AES-256。