旋轉簽署金鑰 (OSS)
備註:
如果你使用的是 Logto Cloud,可以在 Console UI 中旋轉簽署金鑰,請參閱本教程。
Logto OSS 自 v1.8 起支援旋轉簽署金鑰。
Logto OIDC 簽署金鑰,也稱為「OIDC 私密金鑰」和「OIDC cookie 金鑰」,是用於加密 JWT 權杖(存取權杖和 ID 權杖)和 Logto 登入會話中的瀏覽器 cookie 的簽署金鑰。
定期旋轉你的簽署金鑰可以降低潛在金鑰洩露的風險。Logto 建議至少每年旋轉一次簽署金鑰。
旋轉 OIDC 私密簽署金鑰
使用以下 CLI 命令生成新的 OIDC 私密簽署金鑰。重新啟動後將自動使用新金鑰。
可用選項:
--type (可選)用於你的 JWT 權杖的簽署金鑰演算法。
值為 "rsa" 或 "ec"。預設為 "ec"。
- 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
旋轉 OIDC cookie 金鑰
使用以下 CLI 命令生成新的 OIDC cookie 金鑰。重新啟動後將自動使用新金鑰。
- 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
之前的金鑰怎麼辦?
Logto 的金鑰旋轉命令不會刪除你之前的簽署金鑰,它們將保留在資料庫中,除非你手動刪除它們。
此外,刪除之前的金鑰時要謹慎,因為這可能會導致意外問題。建議在一段時間內(例如 2 週)同時保留新金鑰和之前的金鑰,直到你確信所有使用者都已遷移到新金鑰。
疑難排解
在 Cloudflare Zero Trust 中使用 Logto 作為 OIDC 提供者
如果你打算在 Cloudflare Zero Trust 中使用 Logto 作為 OIDC 提供者,請注意它不支援使用 ECDSA 演算法的 OIDC 提供者。在旋轉 OIDC 私密簽署金鑰時,請確保在旋轉命令中指定 --type rsa
使用 RSA 演算法:
- 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