ibm tivoli_使用Tivoli Access Manager的多租户云解决方案中的访问控制最佳实践

本文探讨了在云环境中实现多租户架构的安全措施,包括使用TivoliAccessManager进行访问控制,以及如何通过防火墙规则和WebSEAL服务器加强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多租户是一种在单个共享应用程序环境中支持多个客户的方法。 为了进一步利用规模经济,还希望在一个共享的SaaS交付平台中支持多个SaaS应用程序。 SaaS交付平台本身将启用多租户功能,其中其租户是多租户应用程序。 在这样的平台内,在应用程序之间以及应用程序租户之间强制执行安全性约束是一项关键要求,并且Tivoli Access Manager可以发挥关键作用。 图1显示了在IBM Cloud中运行的总体Tivoli Access Manager组件及其与其他软件组件的关系。

图1:在IBM Cloud的生产环境中运行的Tivoli Access Manager
在IBM Cloud的生产环境中运行的Tivoli Access Manager

特别:

  • Tivoli Access Manager WebSEAL服务器:一种安全代理组件,用于强制访问Web服务器并集中管理Web空间,将所有Web服务器链接到一个逻辑Web空间。
  • Apache服务器:充当反向代理,并将负载从传入请求分发到SaaS应用程序。 在每个传入请求中重写URL,以匹配所请求资源的相关内部位置。
  • Tivoli Access Manager Policy Server:支持策略定义和基于策略的安全性管理。 例如,密码规则。
  • Tivoli Access Manager LDAP(轻型目录访问协议):目录服务器,用于存储有关其授权用户以及每个用户具有哪些特权的信息。
  • 租户管理服务器:用于管理有关SaaS产品,订购产品的公司和用户,产品中版本或席位数量,价格等信息。
  • SaaS应用程序服务器:特定于每个SaaS应用程序的应用程序服务器的群集。
  • 垂直线表示防火墙配置。 此图中的防火墙模拟了Intranet和Internet之间用于公司防火墙的传统非军事区(DMZ)设置。 它们旨在添加其他IP级别访问控制。

Tivoli Access Manager for e-business是一种成熟的产品,可以为公司的Web环境提供基于策略的强大安全性。 这包括用户身份验证,访问权限控制,审核,单点登录,高可用性和日志记录,这些都是任何安全管理解决方案的要素。 有许多出色的文档描述了它的功能。 在以下情况下,我们重点介绍特定于云和租户管理的区域。

粗粒度访问控制

通常,您可以将应用程序资源(例如,诸如http://www.mycompany.com/logo.gif之类的URL)分类为不受保护或受保护 。 任何用户都可以访问不受保护的资源,并且不需要身份验证。 未受保护的资源的示例可以是静态图像,登录页面,注册页面,演示,营销材料等。

只有在用户通过身份验证并建立有关用户的详细信息(例如,他们的角色,他们所属的组织或团队)后,用户才能访问受保护的资源。 受保护资源的示例可以是用户个人资料,文档,电子邮件,应用程序小部件等。

为了简化Tivoli Access Manager Policy Server中受保护资源与未受保护资源的规范,通常希望将资源归为公共URL前缀,然后将包含的资源作为一个组进行保护或取消保护。 例如:

protect   /secure
unprotect /public

然后可以将这些规则轻松添加到Tivoli Access Manager策略服务器,并由Tivoli Access Manager WebSEAL强制实施。

当HTTP请求到达时,WebSEAL与策略服务器一起确定所请求的资源是否受到保护。 如果受到保护,WebSEAL将确保在允许请求到达应用程序之前对用户进行身份验证-例如,用户是否注册了该服务? 他们是否指定了正确的密码?

WebSEAL还用于为请求建立租户上下文 。 承租人上下文包括标识用户属于哪个承租人的元数据,以便可以实施适当的限制。 例如,承租人1可能注册了SaaS应用程序1和2,而承租人2则注册了SaaS应用程序2和3。承租人上下文作为HTTP请求标头向下游传播,并向下游服务器通知用户身份,角色,关联的承租人身份和权利。 Apache HTTP服务器通过根据客户授权将HTTP请求分配给适当的服务来强制执行粗粒度的授权,并为负载平衡和粘性提供支持。

细粒度的访问控制

应用程序可能需要施加其他更细粒度的控件,这些控件进一步限制了对受保护资源的访问。 这些附加控件可以基于从租户上下文中获得的用户角色和/或租户权利。 例如,特定用户可能有权创建和编辑业务流程,但无权部署该流程。 可以为特定用户分配管理角色,以便该用户可以从同一帐户中删除其他成员创建的资产。

每个SaaS应用程序的唯一登录和登录页面

WebSEAL允许使用模板页面定制其各种与认证相关的页面。 但是,对于多租户SaaS交付平台,WebSeal提供的定制级别是不够的。 如果我们要为每个SaaS应用程序使用不同的登录页面,或者甚至是租户特定的登录页面,该怎么办? 幸运的是,我们能够使用简单的HTTP重定向找到解决方案。 图2显示了整体方法。

图2:由WebSEAL支持的每个SaaS应用程序的定制登录页面
WebSEAL支持的每个SaaS应用程序的定制登录页面

用户导航到SaaS应用程序登录页面(箭头1)。 然后,SaaS应用程序登录页面使用XMLHttpRequest(XHR)将凭证发布到WebSEAL登录服务(箭头2)。 响应(箭头3)由SaaS应用程序登录页面中JavaScript解析,以检测成功或登录失败。

如果用户尝试不先登录就直接访问受保护的页面(例如,通过使用书签或跟随链接),则WebSEAL服务器将返回其缺省登录页面。 可以自定义此默认登录页面,以将用户重定向到正确的SaaS应用程序登录页面。

这种通用方法可以扩展为支持其他WebSEAL页面以执行适当的间接操作-例如,密码重置; 成功登录等后重定向到针对用户个性化的其他页面

WebSEAL集群用于不同的访问

要注意的一件事是,可以将WebSEAL服务器配置为支持基本访问认证或基于表单的认证,但不能同时支持这两种。 因此,我们必须部署多个WebSEAL服务器,其中一些配置用于基本访问认证,而另一些配置用于基于表单的认证,以便支持各种类型的客户端访问,例如Web表单,移动访问,Eclipse等。

这些WebSEAL服务器共享公共的Tivoli Access Manager Policy Server,并由Apache前端反向代理作为前端,该代理通过使用Apache mod_rewrite模块将流量路由到正确的WebSEAL服务器:

  • 如果请求具有基本访问头(即:HTTP:Authorization),它将请求转发到启用了基本访问的WebSEAL。
  • 否则,它将请求转发到启用了基于表单的WebSEAL。

前端反向代理还处理WebSEAL服务器之间的负载平衡。

使用防火墙增强安全性

IBM Cloud是公共云,这意味着默认情况下,每个虚拟机都可以从世界任何地方访问。 但是,我们不希望我们的所有虚拟机都可以直接评估。 例如,运行我们的数据库服务器的虚拟机只能由我们的应用程序服务器访问; 我们在上一篇文章中描述的资产存储库只能由我们的SaaS应用程序访问,依此类推。 防火墙在添加这些额外的安全保护层方面起着关键作用。

在IBM SmartCloud Enterprise入门文章(请参阅参考资料 )中,作者解释了在虚拟机管理程序级别(相对于虚拟机本身)配置防火墙规则的优缺点。 鉴于环境的动态性质,我们需要根据使用情况轻松添加或删除虚拟机,因此我们使用了iptables方法来定义适用于每个虚拟机的防火墙规则。

防火墙规则的简单方案

基本操作系统映像仅打开了一个用于输入的端口:端口22,以便您可以通过SSH(安全Shell)进入该端口。 但是,在虚拟机上安装应用程序时,您想要打开额外的端口,以便可以访问您的应用程序。 例如,在图3中,有两个应用程序。 通过HTTP端口8081访问应用程序1,通过HTTP端口8082访问应用程序2。

图3:防火墙规则示例
防火墙规则示例

但是,您可能不希望只打开这些端口以供世界上任何人未经适当的访问控制访问。 您可以在此处添加其他防火墙规则以提供额外的保护。

在运行应用程序1的虚拟机(9.8.7.6)上,添加防火墙规则,例如:

-A INPUT -s 1.2.3.4 -p tcp -m tcp -dport 8081 -j ACCEPT

这将打开端口8081,但只能由虚拟机1.2.3.4(即Apache服务器)访问。

同样,在运行应用程序2的虚拟机(5.1.2.3)上,添加防火墙规则以打开端口8082,如下所示:

-A INPUT -s 1.2.3.4 -p tcp -m tcp -dport 8082 -j ACCEPT

现在假设可以通过端口80访问Apache服务器(1.2.3.4),则可以将以下防火墙规则添加到Apache服务器以仅打开端口80,如下所示:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

另一个常见的有用模式是通过启用环回支持使虚拟机能够接受来自其自身的输入。 例如,您可能想要在虚拟机上部署操作系统代理程序,以便它可以将其状态报告给IBM Tivoli Enterprise Portal,在这种情况下,该代理程序可能需要连接到本地运行的服务。 要启用这种回送支持,请添加以下防火墙规则:

- A INPUT -i lo -j ACCEPT

最后,测试防火墙规则并正确保存它们很重要。 确保在重新引导虚拟机时使用新配置初始化iptables,而不是使用默认设置初始化。 您可以发出以下命令来保存防火墙规则:

/sbin/service iptables save

通过仔细管理哪些人可以使用身份验证和防火墙规则访问哪些内容,可以保护构成在公共Internet中运行的云解决方案的虚拟机。

摘要

安全经常被认为是采用云的主要障碍之一。 在本文中,我们向您展示了如何使用成熟的产品(例如IBM Tivoli Access Manager电子商务)来实现访问控制解决方案,该解决方案可以保护您的云资源并支持多租户架构。 IBM还发布了一份红皮书:“云安全性指南IBM实施云安全性的建议”(请参阅参考资料 )。 它提供了有关您应该考虑拥有安全云解决方案的更多见解。


翻译自: https://www.ibm.com/developerworks/cloud/library/cl-cloudTAM/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值