認可 (Authorization)
認可 (Authorization) は、ユーザーが認証 (Authentication) された後に実行できるアクションやアクセスできるリソースを定義し、アプリ内で何ができるかを決定します。
Logto の認可 (Authorization) サービスは、トークンベースのメカニズムを使用します。Logto は アクセス トークン
を提供しますが、リソースサーバーはアクセス制御の一環としてそれらを検証し、実施する責任があります。
アクセス トークン には 2 種類あります:
- アクセス トークン:ユーザー / システム API リソースにアクセスするために使用されます。
- 組織トークン:組織リソース用の特別なアクセス トークンで、組織機能が有効になっているマルチテナントアーキテクチャで使用されます。
Logto はさまざまなシナリオに対して認可 (Authorization) サービスを提供しています。以下は典型的なユースケースであり、Logto の機能やサービスと一致するものを選択できます。
シナリオ | 方法 | 認可 (Authorization) フロー |
---|---|---|
RBAC なしで API リソースを単純に保護する。 | Logto コンソールで API を登録し、Logto が単純にアクセス トークンを付与します。 | Logto は アクセス トークン (権限なし)を付与し、これらのトークンを検証して API リソースを保護する必要があります。 |
RBAC を使用して API リソースを保護する | API を登録し、柔軟で詳細なアクセス制御のために RBAC を適用します。 | Logto は 権限 を含む アクセス トークン を付与して API リソースを保護します。 |
組織レベルの RBAC(組織テンプレート)を使用して組織リソースを保護する。 | 各組織をリソースとして扱い、マルチテナントアーキテクチャでのアクセス制御のために組織レベルの RBAC(組織テンプレート)を使用します。 | Logto は 組織トークン を 組織権限 と共に付与して組織レベルのリソースを保護します。 |
また、カスタムトークンクレーム などのツールを使用して、カスタム技術要件を満たすためにアクセス トークンに追加のクレームを含めることもできます。さらに高度なユースケースとしては、組織レベルの RBAC(組織テンプレート)を使用して API リソースを保護する があります。
ロールベースのアクセス制御に慣れる
ロールベースのアクセス制御は、システムレベル(ロールベースのアクセス制御)と組織レベル(組織 RBAC)の両方で、Logto インフラ全体で使用されます:
- サブジェクト (Subjects):これらは実際のユーザー(または組織コンテキスト内のメンバー)や、マシン間アプリのような非人間エンティティです。
- API リソース:保護が必要なシステム内のリソース。
- ロール (Roles):職務や責任を表します。
- 権限 (Permissions):特定のリソースで許可されるアクションを定義します。
これらのエンティティとその関係を管理することで、アクセス制御のニーズに柔軟に対応できます。Logto では、ユーザー / システムレベル(中間の組織レイヤーを含まない)と組織レベルの 2 つのレベルで RBAC を使用できます。組織コンテキストでは、「組織テンプレート」と呼ばれる独立した RBAC 設計があります。
認可 (Authorization) のための機能
Logto コンソールで API リソースを簡単に登録し、API リソースを保護します。
ロールベースのアクセス制御 (RBAC) を使用して、ユーザー / システムレベルの権限を管理し、管理を容易にし、柔軟性を持たせます。
組織テンプレート(組織 RBAC)を使用してリソースを保護します。組織レベルでロールが定義されたマルチテナント製品に最適です。
カスタムトークンクレームを使用して、属性ベースのアクセス制御を実装するためにカスタムクレームを追加します。
関連リソース
RBAC と ABAC: 知っておくべきアクセス制御モデルLogto の認可 (Authorization) システムとそのアイデンティティ管理シナリオでの使用