ユーザー認可済みアプリ(グラント)の管理
アプリグラントは、特定のクライアントアプリケーションに対するユーザーの認可 (Authorization) 状態を表します。
ユーザーや管理者が認可済みアプリを確認し、Logto セッション全体を無効化せずにアプリへのアクセスを取り消す必要がある場合に、グラント管理を利用します。
グラントが取り消されると、それらのグラントに対して発行された不透明トークン (Opaque token) のアクセス トークン (Access token) およびリフレッシュ トークン (Refresh token) は無効化されます。JWT アクセス トークン (Access token) はステートレスなため、既に発行されたものは有効期限まで有効です。
適切な方法を選択する
| シナリオ | 推奨される方法 |
|---|---|
| サインイン中のユーザー自身がアプリ認可 (Authorization) を管理する | Account API |
| 管理者やサポートチームが特定ユーザーのグラントを管理する | Management API |
| オペレーターが UI でサードパーティアプリの認可 (Authorization) を管理する | 管理コンソール |
直接的なグラント管理 API
Account API(セルフサービス)
エンドユーザーのアカウント設定ページで Account API を利用します:
GET /api/my-account/grantsDELETE /api/my-account/grants/{grantId}- 参考: Account API によるユーザー認可済みアプリ(グラント)の管理
Management API(管理ツール)
管理ツールやサポート業務で Management API を利用します:
GET /api/users/{userId}/grantsDELETE /api/users/{userId}/grants/{grantId}- 参考: Management API によるユーザー認可済みアプリ(グラント)の管理
アプリ種別でグラント一覧をフィルタリング
グラント一覧取得エンドポイントは、オプションのクエリパラメーター appType をサポートしています:
appType=firstParty:ファーストパーティアプリのグラントのみを一覧表示。appType=thirdParty:サードパーティアプリのグラントのみを一覧表示。appTypeを省略:すべての有効なグラントを返します。
ダイナミックアプリ クライアントはサードパーティアプリケーションであるため、そのグラントは appType=thirdParty で返されます。クライアント ID の URL がアプリケーション ID として使用されます。
コンソールでサードパーティアプリの認可 (Authorization) を管理
Logto コンソールでは、ユーザー詳細ページから認可済みサードパーティアプリの確認および取り消しが可能です。
セッション取り消し時にグラントも取り消す
DELETE /api/my-account/sessions/{sessionId} でセッションを取り消す際、オプションのクエリパラメーター revokeGrantsTarget でグラントの取り消し範囲を制御できます:
all:セッションに関連付けられたすべてのアプリのグラントを取り消す。firstParty:ファーストパーティアプリのグラントのみを取り消す。
セッションレベルの挙動やエンドポイントの詳細は、ユーザーセッションの管理 および サインアウト を参照してください。
関連リソース
セッション ユーザーセッションの管理Account API によるアカウント設定:ユーザー認可済みアプリ(グラント)の管理
Management API によるアカウント設定:ユーザー認可済みアプリ(グラント)の管理