署名キーのローテーション (OSS)
Logto Cloud を使用している場合は、Console UI で署名キーをローテーションできます。詳細は このチュートリアル を参照してください。
Logto OSS は v1.8 から署名キーのローテーションをサポートしています。
Logto OIDC 署名キーは、「OIDC プライベートキー」および「OIDC クッキーキー」として知られ、Logto のサインインセッションで JWT トークン(アクセス トークンおよび ID トークン)とブラウザクッキーを暗号化するために使用される署名キーです。
署名キーを定期的にローテーションすることで、潜在的なキーの漏洩リスクを軽減できます。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 プロバイダーとして使用する場合
Logto を Cloudflare Zero Trust の 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