[TOC]
企业身份管理的九种常见解决方案模式
- 作者: Dimuthu Leelarathne
- 2016年1月22日
介绍
事实上,孤立的应用程序在现代企业中是没有生命力和前途的。
一,企业正在开放API;您现在可以并需要开放您的数据,以便在竞争中获得优势。
二,员工在自己的设备上工作;他们有更多的自由; 他们甚至沉迷于我们所谓的“带来你自己的身份” - 身份只在一个域中进行处理,访问由其他几个域处理。
一个很好的例子是用Facebook登录我们使用的多个应用程序。 他们这样做是因为它快速,简单和方便。 孤立存在的应用程序是这一过程的绊脚石。
但是,这些变化也伴随着身份和安全管理问题。 输入WSO2 Identity Server(WSO2 IS) ,它是一种开源身份和访问管理解决方案。 在本文中,我们将探讨一些用例,并了解WSO2 IS在这些场景中的用途。
问题1:Kermit Co及其身份需求
Kermit Corp是一家开源产品开发公司。 它拥有员工,客户和开源社区。
它有一些员工使用的内部系统(Office 365,Redmine,Salesforce和Star Accounts)。 它有一些供客户和社区使用的外部系统。 它打算升级其身份基础设施。
所有员工都驻留在Kermit数据中心的LDAP中。 Kermit不希望将LDAP同步到云系统,因此员工必须为他们使用的其他系统维护多个帐户密码。 因此,这些是分散的身份,姓名和帐户更改不同步。 随着系统数量的增长,这成为一个问题。
首先,他们需要一个单点登录(SSO)系统;当员工登录到一个系统时,他们应该能够访问其他系统。 这里的问题是不同的系统使用不同的协议。 Office 365使用WS-Federation,Salesforce使用SAML,Star Accounts使用Open ID Connect等。
WSO2 Identity Server在这些系统中添加了一层身份管理以提供SSO。
现在,当用户登录到第一个系统时,它会向浏览器添加会话cookie。 只要用户使用相同的浏览器(和相同的cookie)访问其他系统,他们就会被授予访问权限。 这消除了编写可以跨不同系统和协议处理身份的代码的大部分负担。
问题2:多因素身份验证MFA
Ginger在金融业工作。 Ginger的帐号遭到黑客入侵。 由于她使用了一个简单的密码,Kermit公司的所有财务数据都被泄露了。 Kermit决定引入多因素身份验证。
这引入了另一个问题:有多少内部系统可以处理这种类型的输入? 毕竟,并非每个内部系统都支持多因素身份验证作为内置功能。
这就是WSO2 IS的用武之地。通过一些逐步配置,Identity Server可以提供这种安全性。 您可以在用户传递的一系列身份验证阶段中配置密码身份验证并使用FIDO(专注于生物识别验证)或SMSOTP(生成一次性密码one-time password以短信传送到您的移动设备)等协议。 可以为不同的应用程序配置不同的认证步骤。
问题3:当外部用户想要进入时
Kermit Corp现在有一个他们为WSO2 IS部署的变种。 客户需要对几个面向客户的系统进行身份验证:一个用于产品下载的网站,一个用于报告问题的JIRA,一个认证门户和一个合作伙伴门户。 根据设计,所有外部用户都在不同的LDAP中。Kermit决定在不同的存储中分别维护客户和员工。
我们可以将两个身份存储添加到WSO2 IS,但这不是我们建议的方法:外部用户和员工是不同的东西。 外部用户可以通常数量较多:外部用户可以随意添加,修改或删除他们的记录;外部用户还可以使用多个电子邮件地址和虚假数据。 对这一特定方面的控制不受组织控制。
随着业务拓展,Kermit还决定允许面向客户的系统具有社交注册/登录功能。 Kermit需要添加这些用户并在外部用户数据库上执行即时配置。
这意味着两个问题:
一、Kermit无法访问JIRA的源代码,以便添加新的注册功能;
二、Facebook和谷歌使用不同的协议。
对于那些他们可以修改的应用程序,这意味着每个应用程序都需要编写大量代码,并且需要大量容易出错的代码。
通过使用WSO2 Identity Server,Kermit可以执行身份联合。 该网站将他们引导至登录屏幕;它仅使用SAML 2.0身份验证,WSO2 IS提供协议转换。 Kermit作为WSO2 IS中的服务提供商。 我们告诉身份服务器,出站身份验证可以是Kermit用户名和密码,Google或Facebook- 三者中的任何一个。 身份服务器能够读取这些服务提供的不同声明 —— 它们以不同方式发送用户详细信息并根据需要转换用户详细信息。
因此,用户被适当地重定向、登录并返回到身份服务器,身份服务器被配置为信任来自Google和Facebook的身份验证响应并将用户登录到网站。
如果Kermit的开发人员选择了即时配置,身份服务器将检查用户存储并适当地配置用户。 这允许用户立即创建和注册,巧妙地解决了这个相当复杂的问题。
问题4:用户,配置文件和无障碍管理
通常仅仅为用户提供访问权限是不够的。 一旦每个人都登录到应用系统,他们常常需要管理他们的用户配置文件。 一种方法是允许应用系统直接访问LDAP。 但是,这意味着将有两个系统要更新LDAP:应用系统和身份服务器。 这可能会导致冲突。
最好的方式是使用身份服务器上提供的API来执行用户管理。 有一组标准SCIM API可添加,删除,读取和更新用户和角色,以及内置于身份服务器中的用户管理服务。 对于开发人员来说,这是理想的,因为他们可以使用REST和SOAP调用,而不是通过LDAP模块来直接处理。
问题5:员工想要连接到外部系统(面向外部客户使用的系统)时
我们考虑到Kermit Corp的员工需要连接到多个内部系统。 如果员工也希望连接到面向客户的系统,例如JIRA,该怎么办? 请记住,这些用户不在保存客户数据的数据库中;他们的身份必须从内部LDAP到外部LDAP联合。
我们需要将内部身份服务器作为联合身份提供程序添加到外部身份服务器。 这里内部IdP成为联邦IdP,就像Google或FaceBook一样。 因此,Kermit的员工可以使用他们的Kermit登录详细信息登录面向客户的系统。
问题6:使用OAuth进行合作伙伴访问
考虑一个营销分析公司,该公司为Kermit进行潜在顾客开发。我们暂且称之为Matrix。
Matrix执行基于文件的批处理过程,该过程的实质是更新Kermit的Salesforce。 现在,他们创建了一个Excel工作表并将其发送给Kermit; Kermit的某个技术人员运行一个添加数据的shell脚本完成数据的更新。这是一种实现方式。
Kermit希望通过将这些更新数据的功能公开为API来自动执行此过程。 他们创建了三个API:addSQLead、getRawLeads和getUsers。 这些API需要使用标准协议进行保护。OAuth是一个针对此需求的非常有用的方法:Kermit使用WSO2网关,为Matrix提供OAuth令牌,并使用这些令牌访问内部数据库。 WSO2 IS可以作为这些OAuth令牌的提供者。 这是另外一种实现方式。
问题7:配置新员工
每当新员工加入Kermit时,技术保障团队就必须逐个添加他们到每个系统。 虽然Single Sign-On适用于身份验证,但应用程序通常需要为了授权和工作角色管理的需要而创建用户配置文件。 Kermit 技术保障团队希望自动化此配置过程。
如果我们将LDAP同步与LDAP规则一起使用,则应用程序基本上可以对LDAP执行授权。 可以由技术保障团队维护一个LDAP,并且可以将此LDAP同步到所有应用程序。 这提供了与配置相同的效果。
但是,只有在所有情况下控制域都相同时,这才真正起作用。 例如,如果技术保障团队控制LDAP和应用程序,则此同步方法是可行的。 但是,Salesforce用户管理在云中,并且技术保障团队无法控制其登录系统。
这就是配置有用之处。 Kermit的开发人员可以编写一组自定义配置连接器,将用户配置到具有相应角色的不同应用程序。 Kermit技术保障团队将用户添加到数据库中,根据角色,WSO2身份提供者可以通过API将用户配置到适当的应用程序。
问题8:设置细粒度授权
Kermit的用例现在扩展了:他们为客户部署了多个网站和应用程序,但希望采用集中的细粒度授权策略。此外,他们需要所有内部应用程序遵从集中策略注册表。
在这种情况下,WSO2身份服务器可以充当您定义策略的策略管理点(PAP)。它还可以充当策略信息点(PIP)和策略决策点(PDP) —— 查看用户并决定是否授予对此特定资源的访问权的实际点。 策略执行点在网站上, 这些点可以检索策略决策的结果并相应地应用之。
问题9:管理审批流程
Kermit Corp希望合作伙伴注册必须经过审批流程。 WSO2身份服务器为此提供了工作流:如果一个经销商尝试注册,IS会生成一个工作流,提醒审批人审核,审批人可以批准或不批准它; 一旦批准,就可以在整个架构中触发相关的配置和授权协议。
结论:继续使用Kermit
尽管这不是一个详尽的用例列表,但它们仍然是处于数字化转型过程中的公司面临的一些最常见的问题。
如您所见,WSO2 身份服务器涵盖了广泛的这些问题,并且可以在单一组织方案或具有集中式基础架构管理的公司或部门组中同样工作。
随着云服务采用率的快速增长,一些像多个系统的配置和身份验证的用例正变得越来越紧迫需要解决,解决这些问题无论在在时间和精力上花费的成本都比较可供。
在使用WSO2身份五福我增强基础架构的能力时,企业可以运行更快、更精简的运营并开辟新的业务功能,例如紧密集中的技术管理,而不会造成不必要的延迟,这正是当今数字世界所需的优势。