Rotacionar chaves de assinatura (OSS)
Se você está usando o Logto Cloud, pode rotacionar as chaves de assinatura na interface do Console. Por favor, consulte este tutorial.
O Logto OSS oferece suporte à rotação de chaves de assinatura desde a versão v1.8.
As chaves de assinatura OIDC do Logto, também conhecidas como “chaves privadas OIDC” e “chaves de cookie OIDC”, são as chaves usadas para assinar JWTs (tokens de acesso (Access tokens) e tokens de ID (ID tokens)) e cookies do navegador nas sessões de login do Logto.
Rotacionar suas chaves de assinatura regularmente pode reduzir os riscos de comprometimento potencial das chaves. O Logto recomenda que você rotacione suas chaves de assinatura pelo menos uma vez por ano.
Rotacionar chaves privadas de assinatura OIDC
Use o comando CLI abaixo para gerar uma nova chave privada de assinatura OIDC. Por padrão, a nova chave entra em vigor imediatamente. Para preparar a rotação e dar tempo para os clientes atualizarem o JWKS antes que a nova chave assine os JWTs, configure um período de carência.
Opções disponíveis:
--type (Opcional) O algoritmo da chave de assinatura para seus JWTs.
Os valores são "rsa" ou "ec". O padrão é "ec".
--gracePeriod (Opcional) Período de carência em segundos para rotação de chave privada preparada.
O padrão é a variável de ambiente PRIVATE_KEY_ROTATION_GRACE_PERIOD, ou 0 se não definida.
- CLI
- local
- npx
logto db config rotate oidc.privateKeys --type rsa
npm run cli db config rotate oidc.privateKeys -- --type rsa
npx @logto/cli db config rotate oidc.privateKeys -- --type rsa
Por exemplo, para preparar a nova chave privada por 4 horas antes que ela se torne ativa:
- CLI
- local
- npx
logto db config rotate oidc.privateKeys --type rsa --gracePeriod 14400
npm run cli db config rotate oidc.privateKeys -- --type rsa --gracePeriod 14400
npx @logto/cli db config rotate oidc.privateKeys -- --type rsa --gracePeriod 14400
Você também pode definir o período de carência padrão para rotação de chave privada com uma variável de ambiente:
PRIVATE_KEY_ROTATION_GRACE_PERIOD=14400
Defina esta variável de ambiente no serviço Logto ao rotacionar pelo Admin Console ou Management API, ou no shell onde você executa o comando CLI ao rotacionar pelo CLI.
Rotacionar chaves de cookie OIDC
Use o comando CLI abaixo para gerar uma nova chave de cookie OIDC. A rotação de chave de cookie não suporta período de carência.
- CLI
- local
- npx
logto db config rotate oidc.cookieKeys
npm run cli db config rotate oidc.cookieKeys
npx @logto/cli db config rotate oidc.cookieKeys
E as chaves anteriores?
Para chaves privadas OIDC, o Logto mantém até três chaves durante a rotação preparada:
Next: A nova chave aguardando o término do período de carência.Current: A chave atualmente usada para assinar novos JWTs.Previous: A chave mais recentemente removida, mantida para que os JWTs existentes permaneçam válidos.
Após o período de carência, a chave Next se torna Current, a antiga chave Current se torna Previous e a chave Previous mais antiga é removida.
Para chaves de cookie, o Logto mantém a chave atual e a anterior. Tenha cuidado ao excluir chaves anteriores, pois isso pode causar problemas inesperados. Recomenda-se manter a chave anterior até que você tenha certeza de que todas as sessões ou tokens existentes assinados com ela expiraram.
Solução de problemas
Usando Logto como Provedor OIDC no Cloudflare Zero Trust
Se você pretende usar o Logto como provedor OIDC com o Cloudflare Zero Trust, observe que ele não suporta provedores OIDC usando algoritmos ECDSA. Ao rotacionar chaves privadas de assinatura OIDC, certifique-se de usar o algoritmo RSA especificando --type rsa no comando de rotação:
- CLI
- local
- npx
logto db config rotate oidc.privateKeys --type rsa
npm run cli db config rotate oidc.privateKeys -- --type rsa
npx @logto/cli db config rotate oidc.privateKeys -- --type rsa