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

認可 (Authorization)

認可 (Authorization) は、ユーザーが認証 (Authentication) された後に実行できるアクションやアクセスできるリソースを定義し、アプリ内で何ができるかを決定します。

Logto の認可 (Authorization) サービスは、トークンベースのメカニズムを使用します。Logto は アクセス トークン を提供しますが、リソースサーバーはアクセス制御の一環としてそれらを検証し、実施する責任があります。

アクセス トークン には 2 種類あります:

  1. アクセス トークン:ユーザー / システム API リソースにアクセスするために使用されます。
  2. 組織トークン:組織リソース用の特別なアクセス トークンで、組織機能が有効になっているマルチテナントアーキテクチャで使用されます。

Logto はさまざまなシナリオに対して認可 (Authorization) サービスを提供しています。以下は典型的なユースケースであり、Logto の機能やサービスと一致するものを選択できます。

シナリオ方法認可 (Authorization) フロー
RBAC なしで API リソースを単純に保護する。Logto コンソールで API を登録し、Logto が単純にアクセス トークンを付与します。Logto は アクセス トークン(権限なし)を付与し、これらのトークンを検証して API リソースを保護する必要があります。
RBAC を使用して API リソースを保護するAPI を登録し、柔軟で詳細なアクセス制御のために RBAC を適用します。Logto は 権限 を含む アクセス トークン を付与して API リソースを保護します。
組織レベルの RBAC(組織テンプレート)を使用して組織リソースを保護する。各組織をリソースとして扱い、マルチテナントアーキテクチャでのアクセス制御のために組織レベルの RBAC(組織テンプレート)を使用します。Logto は 組織トークン組織権限 と共に付与して組織レベルのリソースを保護します。

また、カスタムトークンクレーム などのツールを使用して、カスタム技術要件を満たすためにアクセス トークンに追加のクレームを含めることもできます。さらに高度なユースケースとしては、組織レベルの RBAC(組織テンプレート)を使用して API リソースを保護する があります。

ロールベースのアクセス制御に慣れる

ロールベースのアクセス制御は、システムレベル(ロールベースのアクセス制御)と組織レベル(組織 RBAC)の両方で、Logto インフラ全体で使用されます:

  1. サブジェクト (Subjects):これらは実際のユーザー(または組織コンテキスト内のメンバー)や、マシン間アプリのような非人間エンティティです。
  2. API リソース:保護が必要なシステム内のリソース。
  3. ロール (Roles):職務や責任を表します。
  4. 権限 (Permissions):特定のリソースで許可されるアクションを定義します。

これらのエンティティとその関係を管理することで、アクセス制御のニーズに柔軟に対応できます。Logto では、ユーザー / システムレベル(中間の組織レイヤーを含まない)と組織レベルの 2 つのレベルで RBAC を使用できます。組織コンテキストでは、「組織テンプレート」と呼ばれる独立した RBAC 設計があります。

認可 (Authorization) のための機能

関連リソース

RBAC と ABAC: 知っておくべきアクセス制御モデル

Logto の認可 (Authorization) システムとそのアイデンティティ管理シナリオでの使用