问题标签 [spnego]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3497 浏览

java - 当 SPNEGO 不能用于客户端时,如何回退到 BASIC 或 FORM 身份验证?

我终于将我的 JBoss AS 7 服务器配置为SPNEGO在针对 Windows 2008 R2 的 AD 域上使用。我正在使用 Java 7。

当用户从域计算机以外的其他地方(例如,从手机或更广泛的 Internet)访问服务器 URL 时,系统会提示他们输入用户名和密码,然后我收到错误消息:

当用户在登录域时访问 url 时,一切正常。

SPNEGO安全域(standalone.xml)上,我配置了 2 个登录模块:

第一的:org.jboss.security.negotiation.spnego.SPNEGOLoginModule

第二:

问题是:我如何回退到BASICFORM何时SPNEGO超出范围?

谢谢

完整的例外如下:

0 投票
1 回答
727 浏览

java - Java Web - Intranet 上的 SSO 和 Internet 上的 FORM 或 BASIC

我正在寻找用于身份验证的 SSO(单点登录)框架。

我的情况是:

  • JBoss 7 + Debian
  • 使用 Windows 2008 活动目录的 SSO
  • 在 Intranet 上时的 SSO
  • 通过 Internet 或移动设备时的 BASIC 或 FORM 或其他

有人知道这些需求的任何框架吗?

我研究了两周,发现:

  • JBoss Negotiation + SPNEGO (Kerberos)(不支持 NTLM,因此不能通过 Internet 使用)
  • 华夫饼:不是 100% Java
  • jCIFS(不支持 NTLMv2)

谢谢

0 投票
1 回答
4254 浏览

java - Java/SPNEGO:不需要的 SPN 规范化?

我目前正在尝试使用 SourceForge 中的SPNEGO 库(服务器使用相同的库)将 Java 客户端实现到受 SPNEGO 保护的 Web 服务。我无法让它成功验证,我的请求总是以

这类似于我从具有不适当主机名的浏览器访问 Web 服务时得到的症状,并且确实 Wireshark 中的一些调试显示客户端发送了错误的 SPN 与请求 - 我发送到service-test.client.com注册为 SPN并且在 DNS 中有A记录,但在 Windows 域中注册为server-1234.client.corp. 即使我将请求发送到http://service-test.client.com(请参阅匹配Host的标头),Java 请求票证的 SPN 是“内部”Windows 名称:

HTTP 请求的 Wireshark 解码

从 Chrome 或 IE 发送的相同内容具有匹配的Host标头和 SPN:

在此处输入图像描述

由于在我的代码或 SPNEGO 库中没有发生这种转换,我认为它一定是在 JRE 中发生的。我一直在研究 JGSS 源代码,但有点难以理解。谁能告诉我如何跳过这个翻译并获得正确 SPN 的票?

客户端代码:

0 投票
1 回答
1893 浏览

apache - 为什么不同域中的浏览器根本不响应 mod_auth_kerb 发送的“WWW Authenticate : Negotiate”标头?

我已经在我们的 apache-active 目录环境中通过 mod_auth_kerb 实现了 SSO,它按预期工作。然而,以下知识困扰着我:

我从两台客户端机器请求了一个受 Kerberos 保护的页面,一个用户属于 Kerberos-setup 域,另一个用户属于其他某个域。然后我比较了两台机器上的 HTTP 数据包。在两台机器上,发送对 Kerberos 保护页面的请求后,服务器会使用以下 HTTP 数据包进行响应:

HTTP/1.1 401 Authorization Required Date: Wed, 05 Sep 2012 14:25:20 GMT 服务器:Apache WWW-Authenticate : 协商 WWW-Authenticate: Basic realm="Kerberos Login" Content-Length: 60 Connection: close Content-Type: text/html; 字符集=iso-8859-1

但是,在来自服务器的上述响应之后,属于 Kerberos-setup 域的客户端计算机浏览器以WWW-Authenticate : Negotiate 'token'响应,而其他客户端浏览器(属于其他某个域的用户)根本不响应.

现在我的理解是,属于另一个域的客户端也应该用它自己的 TGT+Session 密钥令牌进行响应,活动目录应该拒绝它。但是为什么这个客户端根本不响应服务器的WWW-Authenticate : Negotiate挑战超出了我的逻辑。更令人困惑的是,服务器的 HTTP 响应(如上所示)不包含有关它链接到的域的任何信息。

那么,属于正确域的客户端浏览器基于什么决定它必须响应服务器的WWW-Authenticate : Negotiate challenge,以及属于某个其他域的客户端基于什么决定不响应相同的请求?

注意:两台客户端机器都有 Windows 7,活动目录是 Windows 2008 服务器。

我正在尝试了解 mod_auth_kerb 的 SSO 实现,而这一特定知识是其中的关键。

0 投票
1 回答
3085 浏览

websphere - Websphere 7 中 SPNEGO 的登录方法回退

我正在尝试 Websphere 7 中的 SPNEGO 功能。我想在客户端不支持 SPNEGO 的情况下允许基本身份验证。

在我的 web.xml 中,我有

在 Websphere 的管理控制台中,

Security -> Global Security -> Web and SIP security -> General settings,我"Default to basic authentication when certificate authentication for the HTTPS client fails"检查过,

在 下Security -> Global Security -> Web and SIP security -> SPNEGO Web authentication,我已经“ Allow fall back to application authentication mechanism”检查了。

当我使用客户端支持 SPNEGO(例如 IE)来访问我的 Web 应用程序时,它似乎很好。但是,当我切换到不支持 SPNEGO 的客户端(例如 Firefox)时,它只会显示一条消息“此客户端不支持 SPNEGO 身份验证”。,而不提示我进行基本身份验证。

谁能给我一些关于我可能错过的提示?非常感谢。

0 投票
1 回答
780 浏览

glassfish - spnego 身份验证后的 glassfish ldap 授权

我们使用 Apache mod_proxy_http 和 SPNEGO 成功实现了 SSO。在我的 Java EE 6 Web 应用程序中,我使用 request.getRemoteUser() 获得了经过身份验证的用户。

现在什么是授权的最佳方式。我们的目标是通过 LDAP 在我们的 Microsoft AD 中检查用户的特定角色成员身份。使用 glassfish 3.1.2 实现这一目标的最佳方法是什么?

0 投票
2 回答
11242 浏览

spring - BadCredentialsException:Kerberos 验证不成功

我想使用 SPNEGO 进行身份验证。我用:

  • spring-core-3.1.0.RELEASE.jar
  • spring-security-core-3.1.0.RELEASE.jar
  • spring-security-kerberos-core-1.0.0.M2.jar
  • 来自 spring core security 3.0.7 的包编解码器(https://jira.springsource.org/browse/SES-98)
  • 雄猫

我的配置文件如下所示。当我尝试使用上述库进行身份验证时,出现以下异常。

有人遇到同样的问题并处理了吗?

配置文件(取自 spring security kerberos 示例):

我得到的例外:

0 投票
1 回答
432 浏览

java - JGSS 和 NTLMSSP/NegoEx

我正在开发一个在 JRE 7u7 上运行的 Web 应用程序,该应用程序使用 Sourceforge 的SPNEGO 库进行身份验证。只要 Kerberos 正常工作,一切都很好,但由于它部署在包含多个域和各种干扰网络设备的复杂环境中,因此情况并非总是如此。

在 Windows 客户端无法获得服务票证的情况下,它们显然会尝试仅使用两种提供的机制来执行 SPNEGO:NTLMSSP 和 NegoEx。有没有希望使用 JGSS 库来理解这些?

我看过几次说Java 6 SPNEGO 实现只支持Kerberos 机制,但是对于Java 7 是否仍然如此,找不到明确的答案。如果不能做到,是否有第三方Java启用 SPNEGO 并支持 Kerberos 和(至少)NTLMSSP 的代码?

0 投票
1 回答
340 浏览

active-directory - 为什么服务器需要访问 Kerberos?

我正在尝试找出如何向远程服务器验证 Active Directory 用户。

目标是使用 SPNEGO 接收 Kerberos 票证。然后可以解密 Kerberos 票证并确定用户的身份。

我不明白的是,为什么需要服务器和 Kerberos 之间的访问。由于服务票证包含客户端身份并由 TGS 私钥加密,因此服务器不需要访问 Kerberos TGS。它可以只解密票证并知道用户身份。有人可以向我解释为什么有必要吗?

http://www.adopenstatic.com/cs/blogs/ken/archive/2007/01/16/1054.aspx

如果我想要的只是客户身份,那么任何像身份提供者或 WIF 这样的方案对我来说似乎都没有必要。

0 投票
1 回答
201 浏览

java - Spnego / Kerberos 支持与 hessian

我爬了很多谷歌来找到一些关于这个主题的文档,但没有找到任何东西。我正在尝试使用 kerberos 票证访问受保护的服务器,但出现 401 错误。

我所做的是在调用 Web 服务之前添加带有 base64 编码令牌的标头

我知道 hessian 支持基本身份验证(HessianProxyFactory => setUser/PWD/BasicAuth),但我不确定 Spnego/Negotiate。

请注意,我们设法在另一个项目中使用 cxf 设置 spnego(它有 HttpAuthSupplierImpl),但这个使用的是 hessian。

问题:有可能还是我在浪费时间?谢谢