Skip to content

OAuth 客户端密钥轮转

当客户端密钥过期时,客户端不能再使用 Identity Management Service 进行身份验证。因此,客户端密钥必须被及时更新。

这部分描述了如何在不停机的情况下更新客户端密钥。

引入一个新的密钥

为了避免停机,一个新的客户端密钥应在旧的密钥过期前引入。这两个密钥是并行存储的,允许客户端在密钥轮转期间继续使用旧的密钥。新密钥可以由用户生成,也可以由 MindSphere 生成。

以下 REST 调用引入了一个新的用户生成的密钥。触发 MindSphere,让新密钥的数据输入为空 (-d '{}'),从而生成新的密钥。

curl -X POST \
  -H 'Current-Secret: {active secret}' \
  -H 'Authorization: Bearer {token with prv.oc.sec.ch scope}' \
  -H 'Content-type: application/json' \
  -d '{
        "newSecret": "{new secret to introduce}"
      }' \
  '.../provider/oauth/clients/{clientId}/secrets'

使用新的密钥升级客户端

升级所有的客户端并确保他们使用新的密钥。

移除旧的密钥

Identity Management Service 可以为每个客户端处理最多两个密钥。但是,我们建议一次只使用一个,并在密钥轮转之后删除旧的密钥。以下的 REST 调用删除了旧的密钥,从而使其无效:

curl -X DELETE \
  -H 'Current-Secret: {active secret}' \
  -H 'Authorization: Bearer {token with prv.oc.sec.ch scope}' \
  '.../provider/oauth/clients/{clientId}/secrets'

Last update: March 22, 2023