【问题标题】:Tomcat authentication using SPNEGO/Kerberos and delegation使用 SPNEGO/Kerberos 和委派的 Tomcat 身份验证
【发布时间】:2010-09-25 05:50:23
【问题描述】:

是否有实现 Kerberos 身份验证以供 Tomcat 使用并且还支持 Kerberos 委派的 apache 模块?

我已经查看了 mod_spnego,它丢弃了它创建的 SSPI 上下文,只保留了主体名称。相反,我正在寻找一个模块,该模块允许委托发送到 Tomcat 的票证 - 也就是说,获取发送的服务票证以进行身份​​验证并使用它在服务器端代表用户访问另一个服务。

编辑:澄清一下,我需要在 Win32 下使用 GSS/SSPI 上下文进行模拟,因此当遗留代码连接到另一台服务器时,将使用委托凭据。

【问题讨论】:

    标签: apache tomcat kerberos spnego


    【解决方案1】:

    WAFFLE(Windows 身份验证功能框架)现在从 v1.4beta 版开始提供该功能。

    它提供了一个 ServletFilter,该过滤器使用本机 Windows API 来对用户进行身份验证,可以使用 Basic 身份验证或 Negotiate 身份验证。然后可以模拟用户,并使用模拟用户的访问令牌执行本机 API 调用。

    【讨论】:

    • 这正是我一直在寻找的(虽然项目已经结束了)。
    【解决方案2】:

    使用 JAAS 领域和使用 kerberos 5 JAAS 模块怎么样?

    http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#JAASRealm

    http://java.sun.com/j2se/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html

    看起来它可能需要一些编码,但应该在那里。

    【讨论】:

    • 这似乎是我将 kerberos 上下文导入 TomCat + 修改 mod_spnego 所需的一半,所以我在调用 win32 代码时有一个安全上下文来模拟。
    • 我已经使用 JRE 6 和 Tomcat 通过实现我自己的 Tomcat Authenticator 和 Realm 成功地完成了 Kerberos/SPNEGO 身份验证。在您的情况下,这可以通过 GSS-API 和一些发送到客户端的标头来完成。然后该主体可用于执行其他 JAAS 操作。
    【解决方案3】:

    这是http://spnego.sourceforge.net/credential_delegation.html 教程。它将 Kerberos/SPNEGO 实现为 HTTP Servlet 过滤器并支持凭证委托。

    【讨论】:

    • 这看起来很有趣,但似乎并没有解决我的问题。我看不到使用 GSSContext 模拟(通过 win32)的方法。这就是我正在尝试做的事情,但我需要通过 sspi 委托而不是委托给另一个 http 服务器。我会澄清这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2019-10-31
    • 2019-05-20
    • 1970-01-01
    相关资源
    最近更新 更多