輪替簽章金鑰(OSS)
備註:
如果你使用的是 Logto Cloud,可以在 Console UI 中輪替簽章金鑰,請參考本教學。
Logto OSS 自 v1.8 起支援輪替簽章金鑰。
Logto OIDC 簽章金鑰(也稱為「OIDC 私鑰」和「OIDC Cookie 金鑰」),是用於加密 JWT(存取權杖 (Access tokens) 和 ID 權杖 (ID tokens))以及 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 Provider
如果你打算在 Cloudflare Zero Trust 中將 Logto 作為 OIDC Provider,請注意 Cloudflare Zero Trust 不支援使用 ECDSA 演算法的 OIDC Provider。輪替 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