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