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

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

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

logto db config rotate oidc.cookieKeys

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

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

また、以前のキーを削除する際には注意が必要です。予期しない問題を引き起こす可能性があります。新しいキーと以前のキーの両方を一定期間(例:2週間)保持し、すべてのユーザーが新しいキーに移行したことを確認するまで待つことをお勧めします。

トラブルシューティング

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

Logto を Cloudflare Zero Trust の OIDC プロバイダーとして使用する場合、ECDSA アルゴリズムを使用する OIDC プロバイダーはサポートされていないことに注意してください。OIDC プライベート署名キーをローテーションする際には、ローテーション コマンドで --type rsa を指定して RSA アルゴリズムを使用することを確認してください:

logto db config rotate oidc.privateKeys --type rsa