授权 (Authorization)
授权 (Authorization) 定义了用户在通过认证后可以执行的操作或访问的资源,决定了他们在你的应用中可以做什么。
Logto 授权服务使用一种基于令牌的机制。虽然 Logto 提供 访问令牌
,但你的资源服务器负责验证和执行它们作为访问控制的一部分。
访问令牌 (Access tokens) 有两种类型:
- 访问令牌:用于访问用户 / 系统 API 资源。
- 组织令牌:用于组织资源的特殊访问令牌,在启用组织功能的多租户架构中使用。
Logto 为各种场景提供授权服务。以下是几个典型的用例,你可以选择合适的方案,并将你的需求与 Logto 的功能和服务相匹配。
场景 (Scenario) | 方法 (How to) | 授权流程 (Authorization flow) |
---|---|---|
简单保护你的 API 资源,不使用 RBAC。 | 在 Logto Console 中注册你的 API,Logto 将简单地授予访问令牌 | Logto 授予 访问令牌 (不含权限),你需要验证这些令牌以保护你的 API 资源。 |
使用 RBAC 保护你的 API 资源 | 注册你的 API 并应用 RBAC 以实现灵活、细粒度的访问控制。 | Logto 授予包含 权限 的 访问令牌 以保护你的 API 资源。 |
使用组织级 RBAC(组织模板)保护你的组织资源。 | 将每个组织视为资源,在多租户架构中使用组织级 RBAC(组织模板)进行访问控制。 | Logto 授予包含 组织权限 的 组织令牌 以保护组织级资源。 |
你还可以使用诸如 自定义令牌声明 之类的工具在访问令牌中包含额外的声明,以满足你的自定义技术需求。还有更高级的用例:使用组织级 RBAC(组织模板)保护你的 API 资源
熟悉基于角色的访 问控制 (Role-based access control)
基于角色的访问控制 (Role-based access control) 在整个 Logto 基础设施中使用,包括系统级别(基于角色的访问控制)和组织级别(组织 RBAC):
- 主体 (Subjects):这些可以是真实用户(或组织上下文中的成员)或非人类实体,如机器对机器应用。
- API 资源 (API resources):系统中需要保护的资源。
- 角色 (Roles):代表工作职能或职责。
- 权限 (Permissions):定义在特定资源上授权的操作。
管理这些实体及其关系可以灵活地满足你的访问控制需求。在 Logto 中,你可以在两个层次上使用 RBAC,用户 / 系统级别(不涉及中间组织层),以及组织。在组织上下文中,它有一个独立的 RBAC 设计,我们称之为“组织模板”。
授权功能 (Features for authorization)
只需在 Logto Console 中注册 API 资源并保护你的 API 资源。
使用基于角色的访问控制 (RBAC) 管理用户 / 系统级权限,以便于管理和灵活性。