了解即时创建
即时创建是身份和访问管理系统中使用的一种流程,用于在用户首次登录系统时动态创建用户账号。本文解释了即时创建的基本概念,并解答了与其实施相关的常见问题。
在我们讨论即时创建之前,假设你正在构建一个 SaaS B2B 应用,并且希望支持会员功能,允许成员轻松加入你的工作区(租户)。你会建议哪些功能?以下是一个供你参考的清单:
场景 | 流程 |
---|---|
管理员邀请 | 用户可以收到邀请加入组织的电子邮件。 |
管理 API 用户创建或导入 | 用户可以使用预先创建的用户账号加入组织。 |
即时创建 | 首次登录应用的用户可以加入该组织。 |
目录同步(如 SCIM) | 使用身份提供商(IdP)的目录同步功能提前在应用中预配置用户。 |
即时创建(JIT)是一种在身份和访问管理系统中使用的流程,用于在用户首次登录系统时动态创建用户账号。与预先为用户预配置账号不同,JIT 创建会在用户认证时动态创建并配置必要的用户账号。 即时创建因其自身的特点如高效性、无需管理员参与、自动组织成员身份等而备受欢迎。 现在你已经了解了即时创建的基本概念,当你深入实际产品开发时,可能会有一些问题。我将在本文中回答这些问题,这些问题可能富有争议性,并且高度依赖于你具体的业务案例。
你的产品是否需要实施即时创建?
在构建涉及多租户架构、企业单点登录(SSO)、与企业合作或需要团队入驻功能的 B2B 应用时,以下情况非常常 见。以下是你客户可能遇到的一些示例场景。
快速入驻
你的某个客户因为频繁招聘或快速增长,可以使用 JIT 创建快速为新员工设置用户账号。让我们来看一个例子:
Sarah 是 SuperFantasy
公司的新员工,该公司使用 Okta
作为企业身份提供商。HR 团队只需在 Okta 中将她的商业身份 [email protected]
添加一次。当 Sarah 首次使用该电子邮件登录公司使用的名为 Smartworkspace
的生产力应用时,系统会自动在公司的工作区内为她创建账号并分配合适的角色。通过这种方式,Sarah 和 SuperFantasy 的 HR 团队都无需经过多个步骤完成账号创建和角色分配。
并购和临时工
你的某个客户正在并购或收购他人,JIT 创建可以简化新用户获取该收购公司系统访问权限的流程。让我们再来看一个例子,
Peter 在被 SuperFantasy
新收购的 MagicTech
公司工作。MagicTech 是一家规模较小的企业,没有企业 SSO,但仍然使用 Smartworkspace
,而 Peter 已经有一个商业账号。
HR 团队可以在 Okta
中添加 Peter。当 Peter 通过 Okta 首次登录 Smartworkspace 时,系统会自动将他的现有商业账号与 SuperFantasy 关联,并授予适当的访问权限。
以上场景是实施 JIT 功能的理想选择。
它是 SAML 和企业 SSO 专有的吗?
即时创建(JIT)通常与 SAML 认证中的单点登录(SSO)相关联,但它并不专属于 SAML。JIT 创建也可以与其他认证协议(如 OAuth 2.0 和 OpenID Connect)一起使用,而且并不总是需要企业 SSO 配置。例如,基于电子邮件的 JIT 创建可以通过自动将用户添加到工作区来简化团队入驻,这对于没有预算和资源去购买和管理企业 SSO 的组织特别有用。 JIT 创建的基本理念是在用户首次尝试访问服务时自动创建或更新用户账号,而不依赖于使用的具体协议。
它适用于应用的新用户还是现有用户?
这是一个棘手的问题。即时创建(JIT)通常指用户首次尝试访问应用。然而,不同的产品对这个功能有不同的理解。有些只使用 JIT 创建来进行身份和账号创建,而其他产品还包括即时更新,如重新创建和属性同步。除了自动创建用户外,SAML JIT 创建还允许在创建过程中授予和撤销组成员身份。它还可以更新已创建用户,以确保服务提供商(SP)存储中的属性与身份提供商(IDP)用户存储中的属性同步。 例如,在 Oracle Cloud 中,JIT 创建可以配置为以下方式。
- 即时创建
- 即时更新
用户登录时情况 | 流程 |
---|---|
存在且启用了 JIT 创建。 | 正常的 SSO 失败流程。 |
不存在且启用了 JIT 创建。 | 用户被创建,并根据 JIT 配置映射 SAML 断言属性。 |
存在且启用了 JIT 更新。 | 用户属性值已使用 JIT 配置映射的 SAML 断言属性更新。 |
如果你确实希望考虑后续的现有用户登录场景,请确保你有一个强大的创建系统以及你的 JIT 系统。 例如,
- 冲突解决: 如果在 JIT 过程中 IdP 提供的信息与已存在的账号不同,那么你的系统应有策略来处理冲突。这可能需要详细控制你组织的政策和 IdP 配置。
- 审计追踪: 为了安全性和合规性,最好保留通过 JIT 过程创建新账号和更新现有账号的日志。
- 性能: 虽然 JIT 创建发生很快,但请考虑对登录时间的潜在影响,尤其是当你在每次登录时更新现有用户信息时。
- 数据一致性: 确保你的 JIT 创建过程保持数据一致性,尤其是在更新现有用户账号时。
JIT 和 SCIM 有什么区别?
除了即时创建(JIT),你可能还听说过 SCIM(跨域身份管理系统)。SCIM 是一种开放标准协议,旨在简化和自动化不同系统和领域之间的用户身份管理。它通常用于目录同步场景。 JIT 和 SCIM 的主要区别在于,JIT 在用户尝试登录时创建账号,而 SCIM 可以通过离线自动流程来创建用户账号,独立于用户的登录尝试。 这意味着 JIT 专注于新的用户入驻,而 SCIM 专注于用户的全生命周期管理。 此外,JIT 通常是 SAML 的扩展,并且在各系统中的实现缺乏标准,而 SCIM 是一个定义明确的、用于身份管理的标准协议(RFC 7644)。 一些规模较大的组织使用 SCIM 进行账号创建,并将其与他们自己的系统集成。这可能非常复杂,并且需要根据具体情况逐案处理。这些组织通常有一个创建系统,涉及自动化流程和手动管理员参与。
Logto 中的即时创建
在 Logto 中,我们支持 SSO 即时创建 和 电子邮件域即时创建。 在 Logto 中,我们在组织级别设置了这一功能,使用户可以根据特定条件自动加入组织并获得角色分配。我们在最具可扩展性和安全性的级别实施了 JIT 功能,以简化和自动化开发人员为其客户入驻的流程。然而,正如我们前面讨论的,由于创建系统可能很复杂,并且根据客户的具体需求量身定制,因此你 应该利用 Logto 的预构建 JIT 功能、精心的系统设计和 Logto 管理 API 来构建强大的创建系统。让我们来看一下这个图表,看看它在 Logto 中是如何工作的,
企业 SSO 创建
如果你在 Logto 中设置了企业 SSO,则可以选择你的组织企业 SSO 以启用即时创建。 通过企业 SSO 首次 登录的新用户或现有用户将自动加入该组织并获得默认的组织角色。以下列表列出了潜在的流程:
用户状态 | 流程描述 |
---|---|
用户不存在且启用了 JIT。 | 用户被创建并自动加入相应组织并获得适当的角色。 |
用户存在并拥有与企业 SSO 相同的已验证电子邮件地址,且启用了 JIT。 | 用户的电子邮件地址会自动与企业 SSO 账号关联,并加入相应组织并获得适当的角色。 |
用户不存在且未启用 JIT。 | 正常 SSO 失败流程。 |
用户存在且未启用 JIT。 | 正常 SSO 流程。 |
电子邮件域创建
如果一个组织没有专门的企业 SSO,你可以使用电子邮件域启用即时创建。这通常发生在那些没有预算进行企业 SSO 但仍然希望拥有一定水平的成员入驻自动化和安全管理的小型企业。当用户注册时,如果他们的已验证电子邮件地址与组织级别配置的电子邮件域匹配,他们将被分配到相应的组织并获得相应的角色。
电子邮件域创建适用于:
- 电子邮件注册认证
- 社交注册认证
电子邮件流
用户状态 | 流程描述 |
---|---|
用户不存在并使用电子邮件注册,且已启用 JIT。 | 用户被创建并自动加入相应组织并获得相应的角色。 |
用户存在并拥有用于配置电子邮件域的相同已验证电子邮件地址,且已启用 JIT。 | 正常的电子邮件登录流程。 |
用户不存在并使用电子邮件注册,且未启用 JIT。 | 正常的电子邮件注册流程。 |
用户存在并使用电子邮件登录,且未启用 JIT。 | 正常的电子邮件登录流程。 |
社交流
用户状态 | 流程描述 |
---|---|
用户不存在,使用带有已验证电子邮件的社交账号注册,且已启用 JIT。 | 用户被创建并自动加入相应组织并获得相应的角色。 |
用户不存在,使用带有未验证电子邮件或没有电子邮件的社交账号注册,且已启用 JIT。 | 正常的社交注册流程。 |
用户存在并拥有与配置电子邮件域的相同已验证电子邮件地址,通过社交账号登录,且已启用 JIT。 | 正常的社交登录流程。 |
用户不存在,使用社交账号注册,且未启用 JIT。 | 正常的社交注册流程。 |
用户存在,通过社交账号登录,且未启用 JIT。 | 正常的社交登录流程。 |
处理电子邮件域创建和企业 SSO 潜在冲突
如果你最初设置了电子邮件域创建,并且后来配置了具有相同电子邮件域的企业 SSO,会发生以下情况:
当用户输入其电子邮件地址时,他们将被重定向到 SSO 流程,绕过电子邮件认证。这意味着 JIT 过程不会被触发。 为了解决此问题,我们会在配置时显示警告消息。确保你通过选择正确的 SSO 来启用即时创建,而不是依赖于电子邮件域创建。
默认组织角色
在创建用户时,你可以设置他们的默认组织角色。角色列表来自组织模板,你可以选择一个角色或留空。
企业 SSO 即时更新
好消息是,企业 SSO 中已经内置了这一功能! 你可以选择是在首次登录时还是每次登录时将配置信息同步到 Logto。我们还将考虑添加更多功能,如角色和组织映射以及重新创建。
查看此链接了解更多信息。
即时创建功能在 Logto 中立即可用。立即注册 Logto ,开始自动化你客户的成员入驻。