在追寻Web服务安全方面,有两个主要的方法。W3C采用加密和XML方法来确保来自Web服务的数据不会被拦截。OASIS(WS-I 也将其前期工作交给OASIS)采用基于安全口令的方法来保证只有通过认证的用户才能够访问Web服务。上个月我们着重看了一下W3C对于安全的方法。本月我们将重点关注OASISWeb服务安全的安全口令方法。
OASIS标准通常被当做WS-*标准。WS代表Web服务,星号被理解为具体标准寻找中的任何一方面。例如,安全标准都以由WS-Security标准出发的原则为基础,通常缩写为WSS。
WS-Security提出一套SOAP扩展标准集,旨在允许安全的SOAP消息交换。该标准符合多种安全口令格式、信任域、安全签名格式和加密技术。该标准提供三个主要的构建模块,从而构建成OASIS基于口令安全的基础,即消息完整性、消息保密性和将安全口令并入消息的能力。OASIS网站提供一些重要的安全口令标准文件的链接,包括Kerberos和SAML。
OASIS的其他标准都以最高的WS-Security标准为基础,构建出Web服务安全堆栈。WSS是地基。在这上面创建WS-Trust、WS-SecureConversation和WS-SecurityPolicy。最顶层的是SAML。
WS-Trust是第一个创建完整的WSS,它对WS-Security规范提供了一些扩展,专门处理有关安全口令的发布、整新和验证,确保各方参与者的互操作处在一个可信任的安全数据交换环境中。
通过创建和维护信任规则以及安全口令创建和交换规则,Web服务会更加安全。但是系统中仍有漏洞。WS-SecureConversation 被引入,利用安全内容概念协助填补WS-Security和WS-Trust之间的缝隙。根据WS-SecureConversation 1.3 OASIS标准,“安全内容是指引用确立的认证状态和协商密钥追加安全相关的性能的一种抽象概念。”
WS-SecurityPolicy标准连接WSS和相关的标准到WS-Policy框架,这也是WS-*如何服从于Web服务表达限制和需求的体现。WS-SecurityPolicy为所有其余WS-*安全标准的使用定义了策略断言,确保提供必要信息来决策Web服务交互性,保障各种Web 服务安全协议之间的模块性。
在所有WS-*安全标准顶层,OASIS主张SAML,安全断言标记语言。SAML关注多种域中的单点登录(SSO),提供基于属性的认证,也为 Web服务提供了更好的安全性。为了确保多种域中的单点登录,SAML方法命令服务提供者以来神人提供者。委托人和用户用身份提供者登记来管理其安全身份。第三方身份提供者系统在浏览器cookies上更具优势,要求一对一的Web应用关系。
通过从Web服务提供者解耦身份管理任务,SAML确保终端用户可以登陆,获取多种服务访问,因为,每一种服务将重新检阅身份提供者。这种解耦也允许基于属性的认证,身份提供者可以维护用户属性信息,如用户在组织中的职位。这些属性随后由Web应用用来进行认证决策。SAMl同时和SOAP消息一起为Web服务提供安全。因此,SAML在WS-Security框架中充当安全口令提供者。