专业支持:(0512) 63016160 / 销售热线:(0512)63016068
当前在线: 288 今日上线: 1384 今日新增: 3

企业和用户认证标准及协议的对比云计算服务的IAM 相关标准和协议

文章来源:  中国云计算 发布时间: 2011年08月29日   浏览: 1567   作者:中国云计算
【IT168 图书】本文节选自周洪波《云计算安全及隐私》一书。在之前的部分中,我们确立了对云计算服务应用标准的IAM 原理与实践的需求和益处。在这部分,我们将讨论有关IAM 的标准,这个标准是企业采用云计算服务的催化剂。目前正在基于业务和运作准则来评估云计算服务的机构,应当考虑到云计算服务提供商的承诺以及对于身份及访问管理标准的支持。

  5.7.1 机构的IAM 标准与规范

  下面的IAM 的标准与规范将有助于机构在云计算中实施有效果、有效率的用户访问管理实践及流程。在用户及访问管理方面,面对云计算用户的挑战分为以下四类:

  1. 应如何避免复制身份、属性和证书,并为用户提供单点登录的用户体验?安全断言标记语言(SAML )。

  2. 应如何为用户账户自动化提供云计算服务以及自动化用户开通及移除的流程?服务供应标记语言(SPML )。

  3. 应如何为用户账户提供合适的权限,并为用户管理权限权利?可扩展访问控制标记语言(XACML )。

  4. 应如何授权云计算服务X进而在不披露证书的情况下,访问云计算服务Y中的数据?开放式身份认证(OAuth )。

  5.7.1.1 安全断言标记语言(SAML)

  SAML 是最成熟详细且被广泛采用的云计算用户基于浏览器的身份联合单点登录规范族。当用户通过了身份服务的认证后,就可以自由访问在信任域内提供的云计算服务,从而规避云计算专用的单点登录程序。由于SAML 支持代理(单点登录),通过使用基于风险的认证策略,用户可以为某些云计算服务选择实施强认证(多因素认证)。使用机构的IdP (身份提供商)可以很容易实现,支持强认证和委派认证。通过实施强认证技术例如双因子认证,用户不那么容易遭受在互联网上稳步增长的钓鱼攻击。云计算服务的强认证对于保护用户证书不受中间人攻击也是可取的,例如当计算机或浏览器被攻陷而使用户遭受木马和僵尸网络攻击的情况。通过支持委派认证模式的SAML 标准,云计算服务提供商可以对用户机构委派认证策略。简言之,SAML 将使云计算服务提供商无须了解用户的认证需求。

  图5-3 描述了如何通过浏览器单点登录到Google Apps 。图片解释了Google 身份联合用户单点登录过程的具体步骤。

云计算服务的IAM 相关标准和协议
▲图5-3 :使用SAML 的单点登录处理步骤

  1. 机构的用户试图访问在Google 上的应用程序,例如Gmail、Start Pages 或其他Google 服务。

  2. Google 生成一个SAML 认证请求。SAML 请求是编码并内嵌到URL (统一资源定位符)中的,机构的IdP 支持单点登录服务。包含用户试图访问的Google 应用程序编码URL 的中继状态参数也同样内嵌在单点登录URL 中。这个中继状态参数的意思是一个不透明的标识符,传回时无须修改和检查。

  3. Google 发送到用户浏览器一个重定向URL 。重定向URL 包括编码的SAML 认证请求,这个请求应当提交给机构的IdP 服务。

  4. IdP 对SAML 请求编码,并为Google 声明使用者服务(ACS )和用户目标URL (中继状态参数)提取URL 。接下来IdP 认证用户。IdP 可以通过询问有效的登录证书或者检查有效会话cookie 来认证用户。

  5. IdP 生成SAML 答复,包含着认证用户的用户名。按照SAML 2.0 规范,这个答复是使用合作伙伴公共和私有DSA/RSA 密钥,采用了数字签名。

  6. IdP 编码SAML 答复以及中继状态参数,并返回这个信息到用户浏览器。IdP 提供一个机制,是浏览器将这个信息提交Google 声明使用者服务。例如,IdP 可以内嵌SAML 答复以及目标URL 并生成表格,然后提供一个按钮,用户点击后将该表格提交给Google 。IdP 也可以在页面上包含JavaScript ,自动把表格提交给Google 。

  7. Google 声明使用者服务使用IdP 公钥验证SAML 答复。如果成功验证答复,声明使用者服务将重定向用户到目标URL 。

  8. 用户重定向到目标URL ,并登录Google Apps。

  5.7.1.2 服务供应标记语言(SPML)

  SPML 是基于XML 框架,由结构化信息标准推动组织开发,用来在合作组织间交换用户、资源和服务供应信息。SPML 是新兴的标准,可以帮助机构为云计算服务自动化用户身份的开通(例如,运行在客户网站的应用程序或服务向Salesforce.com 提出请求,请求创建新账户)。当可以采用SPML 时,机构应当用它来开通云计算服务中用户账户和配置文件。如果支持SPML ,软件即服务(SaaS )提供商便可以做到“即时开通”,为新用户实时创建账户(相对于预注册用户)。在这种模式下,云计算服务提供商从SPML 的标记中提取新用户的属性,迅速创建SPML 信息,并把需求传递给用户开通服务,以在云计算用户数据库中增加用户身份。

  SPML 的采用可以使用户或系统的访问以及享有的权利实现标准化和自动化,这样用户不会锁定在私有解决方案中。

  图5-4 描述了一个SPML 用例,其中人力资源系统使用SPML 请求向云计算中的用户开通系统提出请求。在图中,人力资源系统记录(请求当局)是一个SPML Web 服务客户端,在云计算服务提供商处与SPML 用户开通服务的供应商相互作用,而后者负责在云计算服务中提供用户开通服务(用户开通服务目标)。

云计算服务的IAM 相关标准和协议
▲图5-4:SPML 用例

  5.7.1.3 可扩展访问控制标记语言(XACML)

  XACML 是一个由结构化信息标准推动组织批准的,通用的基于XML 的对于策略管理和访问决断的访问控制语言。它为通用策略语言提供一个XML 模式,用来保护任何类型的资源和在这些资源上制定访问决策。XACML 标准不仅仅为策略语言提供模式,还提出了一个用来管理策略和访问判断的处理环境模式。XACML 中还规定了应用程序环境能用来与决策点交流的请求/答复协议。访问请求的答复也使用XML 进行了规定。

  大多数应用程序(网络应用程序或其他)都有内建授权模块,基于分配给用户的权限,授予或拒绝对特定应用程序功能或资源的访问。在集中管理的身份及访问管理架构中,应用程序特定授权模式(竖井)使得跨越所有应用程序中说明个人用户的访问权限变得十分困难。因此,XACML 的目标是提供一个标准化语言、访问控制方法和跨越所有应用程序的策略执行,实施一个共同的授权标准。这些授权决策是基于集中在用户角色和工作职能的各种授权策略和规则。简言之,实施一个共同认可的标准允许统一的授权政策(例如,用户对多个服务实施一个共同认可的标准策略)。

  图5-5 描述了在各种有着特有角色(授予权限)的卫生保健参与者之间的交互,对在卫生保健应用程序中存储的敏感病例进行访问。

云计算服务的IAM 相关标准和协议
▲图5-5:XACML 用例

  图5-5说明了关于XACML 用例的具体步骤:

  1. 卫生保健应用程序管理各种访问各种病例要素的医院同事(医师、注册护士、护士助手和卫生保健主管)。这个应用程序依赖于政策执行点(PEP ),并把请求交给政策执行点。

  2. 政策执行点实际上是应用程序环境的接口。它接受访问请求,并在决策点(PDP)的帮助下评估这些请求,然后允许或者拒绝对资源(卫生保健记录)的访问。

  3. 政策执行点把请求送到决策点。决策点是访问请求的主要决定点,决策点从可用的信息资源收集所有必需信息,并决定给予什么样访问。决策点应当位于可信网络并使用强访问控制策略,例如在用企业防火墙保护的企业可信网络。

  4. 在评估之后,决策点把XACML 答复送到政策执行点处。

  5. 政策执行点履行其责任,执行决策点的授权决定。

  需求答复协议使用XACML 信息并作为其有效负载,通过这种方式实现交互。这样,使用XACML 来传达策略的评估,应对访问请求的决定。

  5.7.1.4 开放式身份认证(OAuth)

  OAuth 是新兴的认证标准,允许用户与另一个云计算服务提供商共享其存储在其他云计算服务提供商的私有资源(例如照片、视频、联系人名单和银行账户),而不用出示认证信息(例如用户名和密码)。OAuth 是个开放式协议,其建立的目标是通过安全应用程序编程接口(API )实现授权,为台式机、移动及网络应用程序提供一个简单和标准的方法。对于应用程序开发者,OAuth 是用来发布和交互受保护数据的方法。对于云计算服务提供商,OAuth 提供了为用户访问他们在其他提供商上的数据的方法,同时保护他们的账户证书。

  在企业内,OAuth 可能扮演重要的角色,它通过部署Web 服务单点登录模式,在可信服务提供商处实现单点登录。OAuth 促使一对服务授权进行交互,而不需要一个明确的身份联合结构。就像OpenID (开放式认证系统),OAuth 的出发点是以消费者为中心的世界,并帮助用户服务访问跨提供商处的用户数据。Google 已发布了OpenID 和OAuth 协议的混合版本,以较少的步骤结合了授权和认证流程并加强了可用性。Google 的GData API 宣布支持OAuth 。(GData 也支持安全断言标记语言以实现浏览器单点登录。)

  图5-6 描述了用户、合作伙伴网络应用程序、Google 服务以及终端用户的交互顺序。

云计算服务的IAM 相关标准和协议
▲图5-6:OAuth 用例

  1. 用户网络应用程序联络Google 授权服务,要求对一个或多个Google 服务的请求令牌。

  2. Google 对内容进行验证,确保网络应用程序已注册,并以一个未授权请求令牌进行回复。

  3. 网络应用程序引用请求令牌,重定向终端用户到Google 授权页面。

  4. 在Google 授权页面上,用户被提示要求登录用户账户(为了验证),然后授予或者拒绝网络应用程序对其Google 服务数据的有限访问。

  5. 用户决定是否授予或拒绝网络应用程序的访问。如果用户拒绝访问,用户将被重定向到Google 页面而不是返回网络应用程序。

  6. 如果用户授予访问,认证服务将重定向用户到通过Google 注册的网络应用程序指定页面。重定向包括已授权的请求令牌。

  7. 网络应用程序传送请求到Google 授权服务,更换授权请求令牌为访问令牌。

  8. Google 验证请求并返回有效的访问令牌。

  9. 网络应用程序传递请求到正在讨论的Google 服务。签署请求,请求包含访问令牌。

  10. 如果Google 服务识别令牌,将会提供被请求的数据。


一键分享:

在线客服