如何为ESB实现身份验证和授权服务

时间:2010-11-26 05:01:55

标签: authentication authorization single-sign-on esb saml

我正在开发一个安全组件,用于ESB,用于具有非常具体的高级别要求的客户端:

  1. 集成到现有的IWay服务管理器5.5版ESB中(现有设置中没有安全系统)。
  2. 从存储在用于其他系统的现有活动目录服务器中的源数据(最好使用LDAP)提供身份验证和授权级别信息。
  3. 应在ESB中执行身份验证和授权,因为ESB的接口将向内部和外部客户端公开,因此无法完全控制客户端。
  4. 客户端不能依赖于证书来允许双边SSL身份验证,但是单方面身份验证,客户端可以检查他是否正在访问正确的服务器,因此可以建立HTTPS连接。
  5. 服务应该在Weblogic上(但我很乐意接受建议)
  6. 更多信息: IWay ESB是一个商业,封闭且相当差的解决方案,在5.5版本中它没有提供符合要求的开箱即用解决方案。它也是无状态的,因此除了使用cookie或类似于商店信息的方法之外,不能维护任何会话。

    目前的想法: 要实现添加到提供身份提供者,服务提供者功能的消息传递总线的SSO服务,因此初始身份验证将提供令牌,然后该令牌可以由客户端存储并与每个后续请求一起传递以进行身份​​验证,并且授权级别通过(我相信这是一个相当标准的设计模式)。

    已经对SSO + SAML实施进行了研究,openAM,Shibboleth,CAS似乎都提供了一个过于完整的解决方案,可以满足门户类型架构(如CAS)或初始SAML身份令牌的系统从另一个服务器完全接收然后被带到系统(就像谷歌为其某些服务实现SAML)。

    我还研究过JBossESB,openESB和服务组合解决方案,这些解决方案似乎使用了SAML的定制实现,无法将其移植到Weblogic和Zxid上,而这些文档的文档有限。

    这是一项复杂的工作,所以我期待更高层次的建筑风格和图书馆/项目建议,而不是完整的解决方案。我的印象是,这应该是一个相当普遍的要求,ESB的身份验证和授权服务,它使用令牌系统来防止凭证必须以纯文本连续输入或存储,但我无法找到太多信息,我错过了吗?

    任何进一步的问题我都非常乐意详述。

3 个答案:

答案 0 :(得分:1)

使用SAML的解决方案似乎是一种有效的解决方案,用于当用户可能/确实需要访问ESB上的第三方服务但不希望第三方服务了解ESB的安全细节和用户的凭证信息。这样,ESB可以提供SAML令牌提供程序,其中用户可以获取票证并将其传输到不同的服务以进行身份​​验证,然后服务使用令牌进行检查以进行身份​​验证和可能的授权信息(仅限SAML2)。除此之外,SAML可以像开放式ID一样使用,用户在外部进行管理,用户可以通过外部令牌提供商获取SAML门票。

这对我们来说是一个有效的解决方案,因为客户希望非常了解访问ESB的用户,并且没有计划访问第三方服务,因为它是一个完全封闭的系统。

我们随后在ESB中实现了一个更自定义的SAAS(安全即服务)机制,用于内部身份验证和授权(我知道这听起来很糟糕,但iWay的选项有限)使用Spring安全库和记住我的功能我们的案例符合要求。

很低,看到我们的客户改变了他们的要求,并要求与共享点集成。然而,这确实简化了我们系统中的安全模型,因为我们设计了以下内容:

iWay的主要安全模型基于SSL证书,可以实现管理证书的SSL提供商,因此您应该能够提供SSL证书的共享点,并使用公共证书提供iWay并保护渠道在两台服务器之间,您可以管理iWay中可以在系统级别访问ESB并指定共享点用户甚至指定其IP的用户,此信息以纯文本形式发送,但通过SSL发送,在我们的情况下,在服务器之间发送同一个网络。

然后我们将它留给共享点来更好地验证用户身份,以便在共享点“门户”级别管理对应用程序的访问,并且ESB唯一清楚地知道的是授权信息。客户端SOAP消息并定义可以访问服务的级别(此信息在服务级别使用)。

此解决方案的缺点是:

对于为访问ESB接口而开发的每个新客户端应用程序,必须配置新的ESB用户,以便无法开发可以在ESB上自由使用某些服务的客户端。

新客户端必须实现授权逻辑,以便服务可以发送和理解正确格式化的授权字符串。

其他要点:

我知道较新版本的iWay提供了一个LDAP适配器,该适配器应该能够与AD通信,因此您可以通过这种方式将LDAP服务器连接到ESB,以便它可能被其他客户端或服务器使用。 ESB但您必须自定义共享点以通过iWay业务提供商访问信息。

我也相信iWay 6提供了一个SAML令牌提供程序,你可以利用它(回到我之前所说的SAML的使用),但我不认为这适用于共享点解决方案。

我想分享更多的想法,因为我们都在做同样的事情,你能通过我博客中指定的推特账户找到我吗?

答案 1 :(得分:0)

我们目前正在使用iWay Server Manager 6.0.1,并且在识别如何在此工具中处理Web服务的安全性方面也遇到了困难。

我们希望使用具有AD安全性的Web服务来构建Web服务,就像我们使用.NET Web服务并且没有找到解决方案一样。即使与iWay工作人员讨论这个问题也没有在我们的脑海中清除它。

现在我们必须连接到SharePoint Web服务,问题肯定会存在。

你的情况有进展吗?我们希望人们使用该工具获得一些反馈,了解他们如何通过iWay实际实现安全性。

答案 2 :(得分:0)

抱歉延迟......在这里很忙...

基本上我们在iWay和SharePoint之间进行了很多测试,我们无法将其设置为发送SharePoint所需的NTLM凭据。我们已尝试在该工具中设置渠道,代理和各种其他解决方案......

我们打电话给他们希望得到一些帮助......

帕斯卡