HOME/wso2/

IAM过渡战略

Article Outline
TOC
Collection Outline

IAM过渡战略

  • 作者: Johann Nallathamby

  • 2018年9月25日

介绍

组织在身份和访问管理(IAM)方面面临的共同挑战之一是在系统之间进行身份转换。 凭据在此过程中引起极大关注,因为大多数系统不会以任何形式显示凭据,更不用说以明文方式,并且不同系统之间的密码策略也存在差异。

在以下情况下可能需要转换系统之间的身份:

  1. 将来自多个身份库的用户整合到一个系统中,以便于管理
  2. 身份管理,重组,重组和简化目录
  3. 当组织合并或被收购时,他们可以整合和集中用户管理
  4. 如果分支机构被出售或分拆到新的企业中,则将用户从目录中分离出来
  5. 分离或移动身份数据的地理政治,数据保护,合规性和监管原因
  6. 清理目录是删除垃圾帐户和相关安全风险的好习惯

为了更好地理解转换的不同方法及其优缺点,我们需要首先了解存在的不同身份管理解决方案模式 。 这将有助于我们选择正确的目标模型和过渡战略

IAM转换采用两种常用方法:

  1. 大集中采用
  2. 并行采用

通常情况下,您需要采用上述策略的混合方式将所有应用程序转换为目标IAM系统。

大集中收养

大集中采用方法涉及同时将所有身份从源系统转换到目标系统,并且如果不再需要,可选择摆脱源系统。

好处:

  • 更快,更容易实施
  • 避免并行运行多个系统的问题
  • 可能是最便宜的方法,因为一旦我们完全切换到目标系统,旧系统就可以退役

坏处:

  • 如果在切换后发现问题,则无法回退系统

如果目标系统和源系统不兼容并行运行,那么大集中采用可能是我们留下的唯一选择。 例如,如果在新系统中添加了非空数据库列而没有默认值,则意味着新模式不与旧系统向后兼容。 因此,两个系统不能通过共享同一数据库来并行运行。

有两种大集中采用方法 - 数据集成和数据迁移。

数据集成

将IAM从源系统转换到目标系统的一个非常基本的方法是数据集成。 在我关于“身份管理解决方案模式”的文章中查看关于“数据集成”方法的讨论,以讨论如何在系统之间实现数据集成。 如果源系统不需要直接访问数据存储并且可以将IAM完全委托给目标系统,我们可以完全断开源系统中的集成。 但是,本文中讨论的这种方法存在一些挑战,它们是:

  • 不兼容的数据存储类型
  • 不兼容的密码散列/加密功能
  • 应用程序或服务使用的缓存策略的影响
  • 限制性防火墙策略
  • 如果您的内部用户正在访问公司网络外部的外部应用程序/服务
  • 如果外部用户正在访问您的内部应用程序/服务,并且他们的数据存储位于其网络中

除上述内容外,以下是您可能遇到的一些其他挑战,尤其是当您想要转换IAM时:

  • 多个应用程序或服务都有自己的数据存储,所有这些应用程序或服务都必须作为数据存储连接到目标系统。 为此,大多数IAM供应商都支持多个数据存储集成。
  • 如果源系统的管理方式类似于在每个系统中复制用户帐户的标识孤岛,那么当它们转换到目标系统时,您可能需要考虑本地帐户链接或本地帐户合并过程,以便识别目标系统中属于同一标识的帐户集。

本地帐户链接或本地帐户合并的目标是:

  1. 合并帐户以使帐户具有一个主要唯一且不可变的标识符。 如有必要,该帐户可能仍有多个登录登录名。
  2. 合并帐户以使每个凭据类型具有一个凭据值。
  3. 为身份合并声明,组和关系。 在此过程中必须解决冲突的价值观。
  4. 权利被合并为身份。 在此过程中必须解决冲突的权利。

可以将合并和冲突解决配置为自动或手动进行。 手动方法可能涉及自助服务解决或将任务分配给管理员以解决它。

数据迁移

如果共享或移动数据存储不起作用,则需要考虑的下一个最好的大集中采用方法是将现有帐户和权利数据迁移到目标系统。 数据迁移可以在两个级别进行 - 在数据存储级别和应用程序级别。

在大多数类型的数据存储中,将存在某种批量导入/导出机制。 例如,在LDAP中,您可以导出/导入LDIF文件。 在JDBC数据存储中,您可以导出/导入SQL Dumps。 在应用程序中,导出/导入将通过UI手动方法或通过API或两者以编程方式支持。 此类导出/导入选项倾向于使用CSV,XML等数据格式。如果应用程序支持SCIM等标准API,那将是一个优势,因为这样您就可以重用您编写的SCIM客户端从不仅仅是一个支持SCIM的源系统。 在某些情况下,您可能必须采用混合方法来处理导出和导入。 例如,源系统可能支持使用CSV进行批量导出,但目标系统可能不支持使用CSV进行批量导入。 但是,它可能支持使用SCIM进行批量导入。 在这种情况下,您需要能够将CSV作为输入提供给SCIM客户端,并将帐户批量配置到目标系统。

您将在数据迁移方法中面临的主要挑战是迁移密码,散列的任何类型的密码或任何加密的敏感信息。 大多数基于LDAP的实现即使以散列形式也不会泄露密码。 在JDBC数据存储中,您最多可以提取散列密码。 对于散列密码,如果您能够获得散列值并且目标系统支持完全相同的散列算法,则您将能够直接将该数据导入目标系统。 否则,您可能最终自定义数据存储插件以支持散列算法。

同样,对于加密数据,如果您能够获取加密数据并且目标系统支持完全相同的加密算法,您将能够直接将该数据导入目标系统。 否则,您必须在将纯文本数据导入目标系统之前通过解密程序运行加密数据,或者自定义数据存储插件以支持与源系统相同的加密算法。

强制密码重置

强制密码重置可以补充我们到目前为止讨论过的大集中采用方法,以便在无法进行大集中密码迁移的情况下提供帮助。 对于帐户供应通过目标系统的方法,可以与供应请求一起启动强制密码重置流程。 对于直接将帐户配置到数据存储而不通过目标系统的方法,可以像对现有用户那样启动强制密码重置流程。 这可以并行地为许多帐户批量启动。

强制密码重置通常有两种用户体验:

  1. 锁定用户的帐户并发送带有密码重置链接的电子邮件。
  2. 锁定用户的帐户并强制用户每次尝试通过目标系统登录时更新他/她的密码。 您可以使用发送到用户经过验证的电子邮件地址的一次性确认链接,也可以使用发送到用户经过验证的电子邮件地址或手机号码的OTP。

平行采用

并行采用方法涉及同时使用源系统和目标系统,直到所有标识都转换到目标系统,并且如果在转换所有标识后不再需要源系统,则可选择删除源系统。 并行采用的优点和缺点将与前面讨论的大集中采用完全相反。

在以下场景中,并行采用方法在与大集中采用方法一起迁移密码和机密时特别有用:

  • 如果无法通过大集中采用中建议的方法迁移源系统密码或机密。
  • 没有经过验证的地址(例如电子邮件地址或手机号码)附加到帐户以执行管理员启动的强制密码重置。
  • 目标系统没有管理员启动的强制密码重置功能。
  • 通过允许用户继续使用他/她之前的密码进行身份验证直到预定义的宽限时间限制并最终迫使他/她重置他/她的密码来提供优雅的用户体验。 在此宽限期内,您可以通过电子邮件或使用UI消息定期通知用户。

有两种类型的并行采用方法 - 登录时密码重置和JIT配置的身份联合。

密码重置登录

使用现有凭据在每次成功登录时自定义登录流以包含密码重置选项,直到用户决定重置其密码。 如果不需要重置宽限密码,请将密码重置为流的必需部分,而不是将其作为选项。

我们假设源系统的密码以某种方式可用于对目标系统的身份验证。 例如,可以使用诸如共享之类的大集中方法。

以下是此流程中的高级步骤:

  1. 一旦用户使用他/她现有的密码成功登录,就可以让用户选择登录应用程序或服务并重置他/她的密码。 如果不需要重置密码的宽限期,请不要选择继续登录应用程序或服务。
  2. 如果用户选择重置密码,请捕获用户输入的新明文密码,并根据目标系统中的密码存储策略进行存储。
  3. 维护一个查找表,以跟踪在转换过程调试后有或没有重置其密码的用户帐户。 仅针对未根据查找表重置密码的用户提示密码重置。
  4. 每当密码重置发生时,通过“下次成功登录时强制重置密码”或通常的“自助密码重置”或“忘记密码”,更新查询表中的用户帐户条目,表示密码已重置。
  5. 根据查找表成功转换所有用户帐户或您决定终止转换过程后,停用转换过程。

具有JIT供应的身份联合

具有JIT供应的身份联合也可以用作IAM的转换策略。 阅读我关于该主题的文章,以了解有关此技术的更多信息。 如果在目标系统中配置了密码,则一旦将所有身份迁移到目标系统,联合身份提供者就可以与生态系统断开连接。

退役源系统:

  1. 在将所有用户帐户转换到目标系统后,您可以决定停用旧系统。 但是,如果您正在查看Customer IAM(CIAM),这可能会非常耗时或者可能永远不会发生。
  2. 您可以确定截止日期并通知所有用户有关截止日期的信息。 可以通过应用程序或服务中的电子邮件或UI消息通知用户。
  3. 确定总用户的百分比,一旦完成切换到新系统,并强制其余用户遵循过渡流程。

IAM过渡中的其他挑战:

  1. 用户可以忽略发送到其电子邮件地址的密码重置链接并继续使用当前系统。
  2. 用户可以远离密码重置页面并稍后返回系统以使用旧密码登录。
  3. 尽管与IAM转换的主题没有直接关系,但目标系统中可能还有其他要求可能必须作为转换过程的一部分来实现(例如,声明验证)。 您可以在转换过程中执行声明验证,以最大限度地减少对用户体验的干扰。

摘要

在本文中,我们了解了一些流行的IAM过渡策略,这些策略可以帮助您将身份从源系统转换到目标系统,同时将对用户的干扰降至最低。

">img

WSO2 Identity Server是一个开源的IAM产品,以Apache 2.0许可证分发。 该产品拥有强大的身份集成和身份联合框架,使其能够支持我们在本文中探讨的所有IAM过渡策略。