メインコンテンツまでスキップ

署名鍵のローテーション (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"。
logto db config rotate oidc.privateKeys --type rsa

以下の CLI コマンドを使用して、新しい OIDC クッキー鍵を生成します。新しい鍵は再起動後に自動的に利用されます。

logto db config rotate oidc.cookieKeys

以前の鍵はどうなりますか?

Logto の鍵ローテーションコマンドは、以前の署名鍵を削除しません。手動で削除しない限り、データベースに保持されます。

また、以前の鍵を削除する際は注意が必要です。予期しない問題が発生する可能性があります。新しい鍵と以前の鍵の両方を一定期間(例:2 週間)保持し、すべてのユーザーが新しい鍵に移行したことを確認してから削除することを推奨します。

トラブルシューティング

Cloudflare Zero Trust で Logto を OIDC プロバイダーとして利用する場合

Cloudflare Zero Trust で Logto を OIDC プロバイダーとして利用する場合、ECDSA アルゴリズムを使用する OIDC プロバイダーはサポートされていません。OIDC プライベート署名鍵をローテーションする際は、ローテーションコマンドで --type rsa を指定し、RSA アルゴリズムを使用してください。

logto db config rotate oidc.privateKeys --type rsa