SAML和联邦身份验证
当需要对企业外部的SOA用户进行身份验证和授权时,又会怎么样呢?SOA的开放性使得上述情况比以往任何时候都更可能出现。您可能会面临这样一个难题:在一组在现有安全性基础架构中没有记录的用户中,搞清楚每个用户的身份。为了解决保护第三方过程中固有的安全性问题,SOA安全性解决方案可以使用联邦身份验证。联邦身份验证是这样一个过程:通过这个过程,多方可以达成一致,使用一组给定的标准来对一组指定的用户进行身份验证。联邦身份验证方法的使用者可以创建一个联邦身份管理系统(Federated Identity Management System),这是一个已验证用户的库。SOA安全性解决方案可以通过检查联邦身份管理系统来对某个用户进行身份验证。换句话说,一些相互通信的系统的“联邦”,可以一致同意某个用户是合法的。
在某些情况下,身份验证过程会导致在SOA安全性解决方案中创建安全断言标记语言(Security Assertion Markup Language,SAML)断言,用于以一种可为用户调用的web服务所接受的方式表达用户的真实性。SAML是一种基于XML的标准,它为以标准方式描述安全性信息提供了一个框架。WS-Security是迄今为止得到认可的安全性标准集合的总称。许多SOA安全性解决方案都利用了这些新兴的安全性标准。如图8所示,SOA安全性解决方案可以侦听SOAP消息,然后使其经过一个对用户进行身份验证的过程。接下来,SOA安全性解决方案把SOAP消息传递给目的web服务,但是会附加上一个SAML断言。注意:SAML断言不依赖于联邦身份验证过程。
图2 要在SOA安全性中使用联邦身份验证,SOAP拦截器必须把传入的SOAP消息转发给安全性解决方案,该安全性解决方案再把SOAP消息标题头中包含的用户身份与联邦身份验证数据库中列出的用户进行匹配。如果匹配成功,SOA安全性解决方案就会创建一个安全“断言”,内容是用户已经在安全断言标记语言文档中通过了身份验证,该文档是在SOAP消息到达它要调用的web服务时附加给该SOAP消息的。
网友评论