セッション設定
セッション設定は、Logto のサインインセッションがどのくらいの期間アクティブであるか、またセッション関連のアクセス方針がどのように適用されるかをテナントレベルで制御します。
このページでは以下を解説します:
- セッション TTL 設定
- アプリごとの同時認証済みデバイス数の上限
セッション TTL 設定
セッション TTL は、Logto OIDC サインインセッションの最大有効期間を決定します。 これは テナントレベルの設定 です:一度設定すると、そのテナント内のすべてのアプリと認証フローに適用されます。
デフォルトの動作
- デフォルトでは、セッション TTL は 14 日間 です。
- カスタム TTL が設定されていない場合、Logto はこのデフォルト値を使用し続けます。
Logto コンソールからの設定
コンソールでセッション TTL を設定するには、以下の場所から操作します:
コンソール > テナント > 設定 > OIDC 設定セッション最大有効期間 を使って値を更新します。
コンソールでは 日数 で入力・表示されますが、内部の OIDC セッション設定 / API では 秒数 が使われます。
Management API からの設定
OIDC セッション設定の読み取り・更新には以下のエンドポイントを使用します:
GET /api/configs/oidc/sessionPATCH /api/configs/oidc/session
例(ttl は秒単位):
curl https://[tenant-id].logto.app/api/configs/oidc/session \
-H 'authorization: Bearer <management_api_access_token>'
curl -X PATCH https://[tenant-id].logto.app/api/configs/oidc/session \
-H 'authorization: Bearer <management_api_access_token>' \
-H 'content-type: application/json' \
--data-raw '{"ttl":1209600}'
1209600 秒 = 14 日間です。
OSS デプロイの場合、logto-config を変更した後はサービスインスタンスを再起動して、サーバーが最新の OIDC 設定を読み込むようにしてください。
サービスを再起動せずに OIDC 設定の更新を自動で反映させるには、中央 redis キャッシュを有効化 してください。
アプリごとの同時認証済みデバイス数の上限
アプリごとの同時認証済みデバイス数の上限は、各ユーザーが特定のアプリで保持できるアクティブなグラント数を制限するアプリレベルのコントロールです。
これはアプリケーションの customClientMetadata 内の maxAllowedGrants フィールドで設定します。
詳細は アプリケーションデータ構造 を参照してください。
動作
maxAllowedGrants が設定されている場合、Logto は認可 (Authorization) 成功ごとに現在のアプリに対するユーザーのアクティブなグラント数を評価します。
アクティブなグラント数が上限を超えた場合、Logto は最も古いグラントから順に取り消します。
maxAllowedGrants が設定されていない場合、同時利用の制限はありません。
Logto コンソールからの設定
各アプリの詳細ページで以下の場所から設定できます:
コンソール > アプリケーション > アプリケーション詳細 > 同時デバイス数の上限
現在のアプリで、ユーザーごとに同時にアクティブにできるグラント(デバイス)の最大数を設定します。
この設定はマシン間通信アプリ、保護されたアプリ、SAML アプリには対応していません。
Webhook で強制サインアウト(エビクション)を監視する
Logto が maxAllowedGrants を適用するためにユーザーの最も古いグラントを取り消すと、Grant.LimitExceeded Webhook イベント が発火します。これにより、サポートチケットで発覚する前にデバイスのサインアウトに対応できます。
ペイロードにはユーザーとアプリの識別情報、適用された上限、エビクション前のグラント数、取り消されたグラント ID などが含まれます。完全な構造は Grant.LimitExceeded ペイロード を参照してください。
主なユースケース:
- 他のデバイスでサインアウトされたことや、その場所をユーザーに通知する。
- デバイスエビクション率を分析に取り込み、設定した上限が低すぎないか判断する。
- 単一ユーザーで異常なエビクションパターンがあれば、資格情報の共有やアカウント乗っ取りの兆候としてフラグを立てる。
コンソール > Webhooks から購読するか、Management API でフックを作成できます。設定の詳細は Webhooks を参照してください。
関連リソース
セッション ユーザーセッションの管理 ユーザー認可済みアプリ(グラント)の管理アプリケーションデータ構造:maxAllowedGrants
Webhooks イベント:例外フックイベント
Management API との連携