3.9. 配置域密钥
Red Hat Single Sign-On 使用的身份验证协议需要加密签名,有时也会加密。Red Hat Single Sign-On 使用非对称密钥对(私钥和公钥)来实现此目的。
Red Hat Single Sign-On 有一个活跃的密钥对,但也可以有多个被动键。主动密钥对用于创建新签名,而可以使用被动密钥对来验证之前的签名。这样可以定期轮转密钥,而不会对用户造成停机或中断。
创建域时,自动生成自签名证书。
流程
- 在 Admin 控制台中选择 realm。
- 单击 Realm 设置。
- 点 Keys。
- 点 Passive 查看被动键。
- 点 Disabled 查看禁用的密钥。
要查看被动或禁用的键,请选择 Passive
或 Disabled
。密钥对可以具有 Active
状态,但仍然未选择为该域的当前活动密钥对。所选用于签名的活跃对根据根据优先级排序的第一个密钥供应商来选择,它们可以提供一个活跃的密钥对。
3.9.1. 轮转密钥
我们建议您定期轮转密钥。为此,首先创建新优先级高于现有活动密钥的密钥。或者创建具有相同优先级的新密钥,并使之前的键成为被动。
新密钥可用后,所有新令牌和 cookies 将使用新密钥进行签名。当用户向应用进行身份验证时,SSO Cookie 会使用新的签名进行更新。当 OpenID Connect 令牌被刷新后,使用新密钥对新令牌进行签名。这意味着,在所有 Cookie 和令牌的时间里,所有 Cookie 和令牌将使用新密钥,并在其中删除旧密钥。
删除旧密钥的频率在安全性之间是利弊,并确保所有 Cookie 和令牌都已更新。考虑在创建新的密钥后,每三至六个月创建新密钥,并在创建新密钥后将旧密钥删除一到两个月。如果用户在添加的新密钥和要删除的旧密钥间处于非活动状态,则用户必须重新进行身份验证。
轮转密钥也适用于离线令牌。为确保它们已更新,应用程序需要在删除旧密钥前刷新令牌。