规划你的架构
为了在设计中建立最佳实践并规划你的架构,需要从不同的角度考虑你的需求。关注最终目标和工作流程,而不仅仅是底层技术和功能。以下是一些关键问题,可以指导和激励你为产品构建理想的架构。
你的商业模式是什么,涉及哪些关键方和利益相关者?
通常,有两种主要的商业模式,B2C 和 B2B,每种模式在复杂的身份管理场景中涉及不同的参与方。了解这些关键利益相关者有助于你设计出以用户为中心的系统,并解决身份管理的各个方面。
B2C
在 B2C 应用中,身份管理通常比较简单,通常只涉及两个参与方。
开发者(你)
这指的是 Logto Console 管理员和协作者 —— 通常是你和你的开发团队 —— 管理和保护用户身份池,并直接与身份数据库交互。你可以直接在 Logto Console 中管理客户身份,或使用 Logto Management API 进行自定义开发。
你的消费者
你的消费者是存储在 Logto 核心服务和数据库中的用户身份。在 B2C 模式中,消费者可以管理自己的认证和个人信息。
B2B
在 B2B 应用中,这种架构中引入了另一层和上下文。业务单元所有者(或组织)控制谁可以访问他们的实例、如何认证以及他们可以做什么。组织管理访问其实例的所有终端用户的身份。
开发者(你)
这仍然指的是 Logto Console 管理员和协作者。尽管组织管理员可以管理身份,开发者仍然可以直接在 Logto Console 中管理客户身份,或通过使用 Logto Management API 进行自定义开发。
你的客户(组织管理员)
你的客户是代表多租户应用中“组织”的业务单元,例如,Slack 或 Notion 中的 工作区。每个工作区通常有多个角色和一个或多个管理员来管理员工或用户。在以下内容中,我们将能够管理成员身份的人称为“组织管理员”。
你的客户的员工、合作伙伴或消费者
这些是终端用户身份,在组织上下文中称为“成员”,可以在组织内进行管理。虽然这些身份由组织分隔,但它们都聚合在一个单一的身份系统下。
在现实世界的场景中,从产品的角度来看,这些可能是公司员工、业务合作伙伴,甚至是与组织相关的消费者。
其他
由于复杂性,可能会从这两种模式中衍生出其他模式,如 B2B2C。然而,方法仍然相同:所有变化都源于相同的核心基础。
在下一章中,我们将详细了解这两种常见架构,并重点介绍 Logto 支持的相关功能。
提炼你的认证需求
一旦你了解了技术和产品设计中涉及的关键用户和参与方,请考虑以下问题,以优化你的身份架构并确定你的认证需求和控制级别:
-
客户在认证和登录体验方面有哪些选择?这些通常取决于你的业务、获取策略和产品需求。
例如,我的应用需要哪些功能?社交登录?无密码登录?
-
你(开发者)希望对客户行为有多大程度的控制?
例如,客户可以更新和维护他们的个人资料吗?客户可以自行开启和关闭 MFA 吗?他们可以选择偏好的登录方式吗?
-
你希望将哪些类型的自定义委托给组织?这些取决于你的产品领域和行业,以及客户的具体需求,可能因组织而异。
例如,登录体验是否应该因组织而异?如果是,定制是否仅限于品牌,还是也包括认证流程的差异?
-
你希望组织管理员对其成员的行为有多大程度的控制?
例如,组织管理员是否应该能够决定是否需要 MFA?管理员是否应该有能力更改成员的密码?
你需要一个单一的通用身份系统还是多个独立的身份系统?
另一个需要牢记的关键问题是,问问自己或你的业务或产品的某个部分是否需要一个身份系统或多个独立的身份系统。
通常,答案是一个单一的通用身份系统,这意味着你只需要一个 Logto 租户(或在 OSS 中的一个 Logto 管理控制台实例)。Logto 被构建为支持在单个租户内的多个应用和多个组织。一个生产 Logto 租户通常足以满足大多数需求。以下是你可能面临的一些常见场景:
我想构建一个具有多租户的 SaaS 应用
如果你正在构建一个为每个客户提供“工作区”或“组织”概念的 SaaS 应用,你可以使用组织在单个租户内管理每个客户的工作区。
在这种情况下,用户可以是多个组织的成员。例如,用户可以拥有一个个人工作区并加入公司的工作区。
我有多个应用
使用 Logto,你可以在单个租户内管理多个应用,无论
- 应用的类型(例如,web、移动、桌面等)
- 应用的使用场景和功能(例如,司机应用、叫车应用等)
我有多个企业客户
你可以使用组织和企业 SSO 在单个租户内管理多个企业客户。通过配置企业 SSO 邮件域设置并使用即时供应功能,你可以自动化使用企业 SSO 账户的用户加入或登录到适当组织的过程。