セルフホストライセンス
セルフホストライセンスは、Logto セルフホストプラン の有料機能を独自の Logto OSS インスタンスで有効化するための署名付きキーです。ライセンスがない場合、Logto OSS は従来通りの動作となります。
ライセンスはセルフホスト Logto OSS 専用です。Logto Cloud では、機能は テナントのプラン に含まれており、ライセンスエンドポイントは利用できません。
ライセンスで有効化される機能
セルフホスト Pro ライセンスをインストールすると、インスタンスで以下の機能が有効になります:
| 機能 | ライセンスなしの場合 | ライセンスありの場合 |
|---|---|---|
| Logto ブランディングの非表示 | 「Powered by Logto」が常に表示されます。 | 非表示にできます。 |
| 独自 UI の持ち込み およびカスタム CSP ソース | 利用できません。 | 独自ストレージ にサインイン UI をアップロードできます。 |
| コンソールメンバーと招待 | 利用できません。 | Console にメンバーを招待し、テナント設定 > メンバー でロールを管理できます。 |
| Console の必須 MFA | オプションの MFA のみ。 | すべての Console メンバーに MFA 設定を必須化できます(テナント設定 > 設定)。 |
| SAML アプリ | 最大 3 つまで。 | SAML アプリ数に制限なし。 |
このリストにない機能は、ライセンスによる影響を受けません。
ライセンスの取得
セルフホストプランページ からライセンスをリクエストしてください。Logto から同じライセンスに対して 2 種類のキーが提供されます:
- 本番用キー:サブスクリプションでカバーされる本番環境のデプロイに使用します。注文書に特別な記載がない限り、1 サブスクリプションにつき 1 つの本番デプロイが対象です。
- 非本番用キー:同じ本番デプロイをサポートする開発・テスト・ステージング環境で使用します。これらの環境は本番トラフィックを処理してはいけません。
両方のキーで同じ機能とクォータが有効になります。2 つのキーがあるからといって、本番環境を 2 つ運用できるわけではありません。利用許諾は セルフホストサブスクリプション規約 および注文書に従います。
インストールしたキーによって、どの種類のデプロイかを Logto に伝えます。Logto は技術的な検証は行わないため、デプロイに合ったキーをインストールしてください。
ライセンスのインストール
Console または Management API からライセンスをインストールできます。いずれの場合も、Logto はインスタンス上で署名を検証し、不正・改ざん・期限切れのキーは拒否されます。
Console でのインストール
- Console > テナント設定 > ライセンス に移動します。
- ライセンスキーを貼り付けて ライセンスをインストール をクリックします。
インストール後、ページにライセンスの詳細が表示されます。例えば非本番用キーから本番用キーへの切り替えや、新しいキーへの更新は ライセンスを置き換え をクリックしてください。
Management API の利用
Logto Management API 用のアクセストークンを使い、PUT /api/systems/license にキーを送信します:
curl -X PUT 'https://your-logto-endpoint/api/systems/license' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{ "license": "<your_license_key>" }'
成功時は 204 No Content が返ります。失敗時は以下のようになります:
- Logto 署名でない、または改ざんされた場合は
400とlicense.invalid_key - 有効期限切れの場合は
400とlicense.expired_key。新しいキーを取得して再インストールしてください。 - Logto Cloud 上で実行している場合は
501
インストール済みの内容を確認するには、GET /api/systems/license を送信します。プラン・環境・権利・有効期限・リフレッシュ状態が返ります。キー自体は返されず、ライセンス未インストール時は 404 です。詳細なリクエスト・レスポンススキーマは Management API リファレンス を参照してください。
複数インスタンスの場合
ライセンスは Logto データベースに保存されるため、同じデータベースを共有するすべての Logto インスタンスで 1 回だけインストールすれば OK です。
リフレッシュと猶予期間
Logto はライセンス署名をローカルで検証するため、アプリケーションへのサインインは Logto への接続に依存せず、リフレッシュ失敗でサインイントラフィックが止まることはありません。
更新やキャンセルを反映するため、インスタンスは Logto Cloud へチェックインします:
- 週次チェックイン:最後の正常なリフレッシュから 7 日以上経過すると、リクエスト処理の一環としてバックグラウンドでライセンスをリフレッシュします。失敗時は後で再試行(最大 1 時間に 1 回)。インストール直後は即時リフレッシュされます。
- 30 日間の猶予:リフレッシュが失敗しても(例:インターネットに接続できない場合)、最後の正常なリフレッシュから 30 日間は機能が維持されます。その後は OSS デフォルトに戻ります。
- リフレッシュ拒否時:サブスクリプションキャンセル等でリフレッシュが拒否された場合、ライセンスページに理由が表示されます。猶予期間は最後の正常リフレッシュからカウントされます。
リフレッシュはインスタンスから https://cloud.logto.io へのアウトバウンド HTTPS リクエストです。ファイアウォール配下の場合はこの宛先を許可してください。
インスタンスが送信する情報
リフレッシュリクエストには以下のみが含まれます:
- ライセンスキー(
licenseIdで識別) deploymentId:ライセンス初回インストール時に生成されるランダム識別子。データベースに保存され、同じ DB を使う全インスタンスで共有・不変です(ライセンス置き換え時も変わりません)。- Logto バージョン
Logto はユーザー数・ホスト名・ドメイン・設定情報を収集しません。このデータは参照用(例:更新時)に保持され、製品内で表示・評価されません。挙動はオープンソースで、LicenseReader.ts を参照してください。
ライセンスの有効期限
ライセンスは 1 年間有効で、有効期限 はその終了日です。
- 更新した場合:インスタンス側で特別な操作は不要です。更新後最初のリフレッシュで新しいキーに自動で置き換わり、有効期限が 1 年延長されます。更新反映まで数日間だけ期限切れ日が表示されることがありますが、その間も機能は利用可能です。
- 更新しなかった場合:期間終了後リフレッシュが拒否されます。機能は 30 日間の猶予期間終了まで利用でき、その後は OSS デフォルトに戻ります(ライセンス未インストール時と同様)。ライセンスページに説明バナーと日付が表示されます。
- 猶予期間終了時:再度機能を有効化するには新しいキーをインストールしてください。必要な場合はライセンス取得時の連絡チャネルから Logto へご連絡ください。
機能が無効化された場合の挙動
OSS デフォルトへの復帰時、ライセンスで作成したものは削除されません:
- Logto ブランディング非表示:「Powered by Logto」マークが再表示されます。設定は保存されており、再度ライセンスをインストールすれば適用されます。
- SAML アプリ:4 つ目以降のアプリも残りますが、上限未満になるまで新規作成できません。
- 必須 MFA:常にオフにできますが、ライセンスなしでは再度オンにできません。
- 独自 UI・カスタム CSP・Console 招待:該当機能が必要な新規変更はできませんが、既存データは保持されます。
独自 UI 用ストレージの設定
Logto Cloud では Bring your UI のアセットは Logto がホストしますが、独自インスタンスでは設定したオブジェクトストレージに保存されます。Logto はアップロードを解凍し、ファイルをストレージに保存・配信します。
experienceBlobsProvider システム設定を ファイルストレージプロバイダー と同じ JSON 構造で指定します。例えば S3 互換ストレージの場合:
pnpm logto db system set experienceBlobsProvider '{"provider":"S3Storage","accessKeyId":"my-access-key-id","accessSecretKey":"my-secret-access-key","bucket":"logto-sie","endpoint":"https://s3.us-east-2.amazonaws.com"}'
設定変更後は Logto を再起動してください。その後、Bring your UI に従い Console からアセットをアップロードします。
Console メンバーへの招待メール
Console 招待は、デフォルトテナントのメールコネクター経由でメール送信されます。メンバー招待前に メールコネクターの設定 を済ませてください。