Logto 的授权系统及其在身份管理场景中的应用
探索 Logto 多功能授权系统。
Logto 不仅是一个身份验证提供者,还是一个授权提供者。在本文中,我将概述 Logto 的授权方法,并解释这些灵活层如何应用于各种场景。
使用基于角色的访问控制保护你的 API 资源
在 Logto 中注册 API 资源
为了建立一个让不同用户对资源和操作权限有不同访问级别的授权系统,你可以首先在 Logto 中注册 API 资源,然后添加权限。利用角色来汇总这些权限,无论是单个 API 还是多个 API。
Logto 的一个很棒的功能是它能够创建多种类型的角色,这些角色可以应用于不同的实体,包括用户和机器对机器应用。用户可以继承为他们设计的用户特定角色,而机器对机器应用可以继承为它们设计的角色。
目标实体:用户
如果你的应用是一个普通应用程序,需要不同用户执行不同的操作,利用用户角色是一种灵活的方法来建立有效的访问控制系统。
目标实体:机器对机器应用
机器对机器(M2M)是一种常见的认证实践,如果你有一个应用需要直接与资源通信。例如,一个在 Logto 更新用户自定义数据的 API 服务,一个拉取每日订单的统计服务等。
在 Logto 中,机器对机器应用可用于两个关键使用场景:
- 通过设置授权系统保护你的无界面 API 应用。
- 使用 Logto 管理 API 开发你的服务,例如启用用户配置文件以允许终端用户更新他们的身份相关信息。
在此上下文中与用户角色的区别是角色被定义为机器对机器角色,而不是用户角色,并且只能分配给机器对机器应用。
在这个 API RBAC 上下文中,API 资源、角色和权限在统一的身份系统中被 "民主化" 并被视为系统级别。这种方法在简单的 B2C 产品中很常见,因为不需要复杂的层级管理。
使用组织模板(RBAC)保护你的组织级别资源
在 B2B 场景中,用户角色可能在不同组织中有所不同。例如,John 在组织 A 可能拥有管理员角色,而在组织 B 仅为成员角色。
这可以通过在 Logto 中设置组织模板来实现,帮助你的多租户应用构建访问控制系统。
与其为每个组织创建众多角色,Logto 允许你创建一个组织模板。这种方法在所有组织中保持一致性,同时允许用户在不同组织拥有不同角色的灵活性。
组织权限不需要注册 API 资源。Logto 发放组织令牌,其中包含角色和其他声明,可用于在 API 中进一步验证组织令牌。