署名鍵のローテーション (OSS)
Logto Cloud を利用している場合は、Console UI で署名鍵のローテーションが可能です。詳しくは このチュートリアル を参照してください。
Logto OSS では v1.8 から署名鍵のローテーションがサポートされています。
Logto OIDC 署名鍵(「OIDC プライベート鍵」や「OIDC クッキー鍵」とも呼ばれます)は、Logto のサインインセッションにおいて JWT(アクセス トークン (Access token) や ID トークン (ID token))およびブラウザクッキーを暗号化するために使用される署名鍵です。
署名鍵を定期的にローテーションすることで、鍵漏洩のリスクを低減できます。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 クッキー鍵のローテーション
以下の CLI コマンドを使用して、新しい OIDC クッキー鍵を生成します。新しい鍵は再起動後に自動的に利用されます。
- 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