kerberos跨域互信_使用Kerberos的Web服务安全互操作性

kerberos跨域互信

需要Web服务安全性标准,以确保异构环境中的互操作性。 WS-Security标准及其依赖项(例如WS-Trust和WS-Security Policy)是该领域中的重要标准。 WS-Security与安全令牌无关,允许使用多种安全令牌类型。 在内联网方案中流行的一种安全令牌类型是Kerberos令牌。 这主要是因为Kerberos是Microsoft Active Directory服务器中安全系统的组成部分。

可以合理预期使用这些标准可以实现Web服务的安全互操作性,而事实确实如此。 但是,要实现Microsoft .NET和IBM WebSphere环境之间的互操作性,需要执行一些非显而易见的步骤。 本文提供了有关如何使用Kerberos安全令牌作为Microsoft .NET和IBM WebSphere环境之间Web服务的身份验证机制的端到端示例。

本文本节的其余部分介绍了用于实现此解决方案的关键技术。

的Kerberos

Kerberos是一种网络身份验证协议,最初是由麻省理工学院开发的。 它最初在RFC 1510中进行了描述,而协议的最新版本在RFC 4120下进行了描述。 Kerberos协议需要一个称为密​​钥分发中心(KDC)的受信任第三方。 KDC具有两个主要组件:身份验证服务器(AS)和票证授予服务器(TGS)。 身份验证服务器与Kerberos领域(域)中的每个客户端和服务器共享一个秘密。 这些共享机密用于导出对称密钥,该对称密钥用于在客户端或服务器与KDC之间交换加密信息。

图1. Kerberos的概念图

TGS发出“票证”作为允许客户端向服务器进行身份验证的方式。 KDC设计的好处之一是,服务器在验证从客户端收到的票证时无需与KDC通信。 图1显示了从客户端身份验证到客户端身份验证到服务器应用程序的步骤顺序。

  1. UserA向身份验证服务器进行身份验证。 用户A的密码不需要通过网络传输到身份验证服务器。 成功认证后将返回票证授予票证(TGT)。 TGT允许UserA与票证授予服务器联系,以请求其他服务器的票证。
  2. UserA使用TGT来向票证授予服务器进行身份验证。 TGT可以由TGS验证,因为它已使用TGS的密钥加密。 UserA获得与ServerB一起使用的服务票证。
  3. UserA将在上一步中获得的服务票证提供给ServerB。 ServerB可以通过使用其密钥对其进行解密来在本地验证此票证。

在Windows 2000(包括Windows 2000)以后的Microsoft Windows服务器发行版中,Microsoft Active Directory中的安全子系统部分基于Kerberos。 当用户登录配置为Microsoft Active Directory域的桌面时,他们正在向Kerberos身份验证服务器的Microsoft实现进行身份验证。 然后可以从Microsoft Active Directory获取Kerberos票证,以通过简单和受保护的GSSAPI协商机制(SPNEGO)对其他服务器(例如Microsoft Internet信息服务器(IIS))进行身份验证。

Microsoft网站提供了有关Windows Server 2003中Kerberos实现的内容。

Kerberos的有用参考站点位于:

  • 麻省理工学院
  • 维基百科

Microsoft Web服务增强

Microsoft Web服务增强功能是Microsoft .NET框架受支持的扩展,可以在Web服务领域提供高级功能。 .NET框架提供了包括基本安全性在内的某些Web服务功能,而WSE包含Microsoft对诸如WS-Security和WS-Trust之类的Web服务中的关键行业标准的实现。 WSE提供与Microsoft Visual Studio开发环境的集成,并且与较新的Microsoft Windows Communications Foundation(WCF)有线兼容。

Web服务通过“策略声明”在WSE中得到保护。 提供了许多内置的断言(交钥匙断言)。 交钥匙声明的示例包括:

  • usernameOverTransportSecurity-使用UsernameToken进行身份验证,但不对消息进行加密或签名;
  • usernameForCertificateSecurity-使用UsernameToken对客户端进行身份验证。 使用X.509证书提供服务器身份验证,并执行消息级别的安全性。
  • kerberosSecurity-使用Kerberos令牌对客户端和服务器进行身份验证,并执行消息级安全性。

通常使用策略配置文件以声明方式配置安全策略,该配置文件包含对Microsoft .NET程序集的引用,这些Microsoft .NET程序集包含策略声明类以及每个安全策略声明的任何配置。 在应用程序的配置文件(即Web.config或app.config)中引用了策略配置文件,并且应用程序本身指定了要使用的策略配置的名称。 清单2包含一个策略配置文件的示例,该文件期望UsernameToken可以验证传入的Web服务请求。

清单1. WSE 3.0策略文件的示例

  
    
    

你可能感兴趣的:(python,linux,java,大数据,数据库)