Java 配置SPNEGO HTTP Servlet筛选器

Java 配置SPNEGO HTTP Servlet筛选器,java,single-sign-on,kerberos,spnego,Java,Single Sign On,Kerberos,Spnego,我正在尝试使用SourceForge的de SPNEGO库为Web应用程序实现Java SSO。hello_spnego.jsp的示例运行良好,但关于下一个参数,我还不了解一些事情: spnego.prompt.ntlm为不支持Kerberos的客户端启用基本身份验证。此参数的建议值是哪个?为什么 除了Kerberos身份验证之外,spnego.allow.basic还提供基本身份验证。我知道基本身份验证请求凭据不是很安全。此参数的建议值是哪个?为什么 spnego.allow.unsecure

我正在尝试使用SourceForge的de SPNEGO库为Web应用程序实现Java SSO。hello_spnego.jsp的示例运行良好,但关于下一个参数,我还不了解一些事情:

  • spnego.prompt.ntlm为不支持Kerberos的客户端启用基本身份验证。此参数的建议值是哪个?为什么
  • 除了Kerberos身份验证之外,spnego.allow.basic还提供基本身份验证。我知道基本身份验证请求凭据不是很安全。此参数的建议值是哪个?为什么
  • spnego.allow.unsecure.basic。我认为,如果启用了基本身份验证,则其值必须为false,但我不确定

  • 参数的值取决于您的用例。如果您有一个严格的kerberos/spnego专用环境(最安全,但所有客户端和用户都需要启用kerberos/spnego),那么使用

    • spnego.prompt.ntlm=false,因为我们只允许kerberos
    • spnego.allow.basic=false,因为我们只允许kerberos
    • spnego.allow.unsecure.basic=false不相关,因为spnego.allow.basic=false
    如果您想允许kerberos/spnego之外的其他身份验证机制,则必须决定使用哪种身份验证机制:NTLM和/或basic。此库不支持NTLM,因此只剩下Basic

    • spnego.prompt.ntlm=true,因为我们希望为非spnego/ntlm-only客户端允许basic
    • spnego.allow.basic=true,因为我们希望允许非spnego客户端使用basic
    • spnego.allow.unsecure.basic=false我们强制通过HTTPS进行基本身份验证(如果您不这样做,并在此处将值设置为true,那么您将以未加密的纯文本传输凭据,我猜这不是您想要的)