授权 (Authorization)
在 Logto 中,授权 (Authorization) 定义了用户和应用在认证 (Authentication) 后可以做什么:每个身份可以访问哪些 API、资源或执行哪些操作。
Logto 为现代 SaaS 和 AI 应用提供灵活的、基于令牌的授权 (Authorization)。你可以在全局范围或每个组织 (Organization) 内保护 API 资源。所有权限都通过 基于角色的访问控制 (RBAC) 系统进行管理,并通过 组织模板 为多租户应用提供高级支持。
核心概念
- 基于角色的访问控制 (RBAC): Logto 以 RBAC 为基础,为用户、客户端和服务分配权限。了解更多 RBAC 相关内容。
- API 资源: 你希望保护的任何后端服务或端点(全局或组织 (Organization) 专属)。
- 角色 (Role): 权限 (Permissions) 的集合(如 admin、viewer、editor)。
- 权限 (Permission)(权限 (Scope)): 具体允许的操作(如
read:report
、invite:member
)。 - 组织 (Organization): 代表你的应用中的租户、工作区或客户。这不同于 Logto 租户,后者指的是你的整体 Logto 项目或实例。
- 组织模板: 针对多租户应用,定义可复用的角色 (Roles) 和权限 (Permissions) 集合,应用于所有组织 (Organizations)。了解组织模板如何工作。
- 访问令牌 (Access token) / 组织令牌 (Organization token): 包含全局或组织范围权限 (Permissions) 声明 (Claims) 的令牌。
授权 (Authorization) 场景
Logto 中有三种主要的授权 (Authorization) 模式。请选择与你需求相符的场景:
场景 | 适用时机 | 令牌类型 | 角色 (Role) 配置 | 了解更多 |
---|---|---|---|---|
全局 API 资源权限 (Permissions) | 保护整个 Logto 租户共享的 API 资源(非组织 (Organization) 专属) | 访问令牌 (Access token) | 分配全局角色 (Roles) / 权限 (Permissions) | 保护全局 API 资源 |
组织 (Organization)(非 API)权限 (Permissions) | 控制组织 (Organization) 专属操作、UI 功能或业务逻辑(非 API) | 组织令牌 (Organization token) | 为应用控制分配组织 (Organization) 角色 (Roles) / 权限 (Permissions) | 保护组织(非 API)权限 |
组织级 API 资源权限 (Permissions) | 保护特定组织 (Organization) 内可访问的 API 资源 | 组织令牌 (Organization token) | 为组织 (Organization) API 分配组织 (Organization) 角色 (Roles) / 权限 (Permissions) | 保护组织级 API 资源 |
Logto 按照 RFC 8707 建模 API 资源,在 OAuth 2.0 授权 (Authorization) 流程中使用 resource
参数。这让你可以轻松保护多个 API 或微服务,并确保与其他基于标准的系统兼容。
需要自定义声明 (Claims) 或高级访问控制?请参阅 自定义令牌声明 (Claims)。
Logto 授权 (Authorization) 工作原理
-
基于令牌: 每次访问都通过安全签名的访问令牌 (Access token) 授权 (Authorization)。你的后端验证令牌并强制执行权限 (Scopes)。
-
全局与组织 (Organization) 权限 (Scope):
- 全局 权限 (Scope):控制整个 Logto 租户范围内 API 资源的访问。
- 组织 (Organization) 权限 (Scope):控制组织 (Organization) 内的业务逻辑(应用功能)和 API 资源。组织 (Organization) 权限 (Permissions) 可应用于非 API 功能(如 UI 元素或工作流)和 / 或组织 (Organization) 范围的 API 端点。
-
角色 (Roles) 与权限 (Scopes): 角色 (Roles) 是权限 (Scopes) 的集合。根据你的场景,将角色 (Roles) 分配给用户或客户端(全局或组织 (Organization) 内)。
下一步
准备进一步探索?动手实践、查阅真实案例指南,或加深理解:
掌握角色 (Roles) 与权限 (Permissions),实现细粒度访问控制。
了解如何为多租户应用设置可复用的角色 (Roles) 和权限 (Permissions)。
使用全局角色 (Roles) 和权限 (Permissions) 保护你的 Logto 租户共享 API。
通过组织 (Organization) 角色 (Roles) 控制组织 (Organization) 专属操作和 UI 功能。
使用组织 (Organization) 角色 (Roles) 保护特定组织 (Organization) 内可访问的 API。
了解如何在后端验证 Logto 令牌,保护 API。
了解如何为高级访问控制场景添加自定义声明 (Claims)。
使用场景
想要实际案例和真实场景?请查阅以下指南:
查看基于 RBAC 的安全授权 (Authorization) 真实案例和分步演示。
跟随全面指南,了解多租户 SaaS 架构与实现。