问题标签 [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.
internet-explorer - 为什么 IE 不将 Kerberos 票证信息发送到我在 Linux 上的 JBoss?
我正在尝试使用 Windows 客户端和 JBoss 实现 SSO。拥有我的开发 PC,JBoss 在 Windows 7 上运行,在开发服务器上,它在 (Red Hat) Linux 上运行。
有一个JBoss Negotiation Toolkit允许我检查 Negiation 标头是否正确到达。
BasicNegotiation
只要我在自己的 PC 上运行 JBoss,测试就可以正常工作,使用localhost
. 发送的标头是
Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB...
(加上更多字节)
测试的响应是
Negotiation Toolkit Basic Negotiation WWW-Authenticate - Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIK...
NegTokenInit Message Oid - SPNEGO Mech Types - {NTLM} {Kerberos V5 Legacy} {Kerberos V5} {1.3.6.1.4.1.311.2.2.30} Req Flags - Mech Token -TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF Mech List Mic -
但在 Linux 服务器上,同样的测试不起作用。基本原因(我猜)是标题看起来不同:
Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==
然后 JBoss Negotiation Toolkit 回退到 NTML 身份验证,这是我不想要的,并且在 webapp 的输出中显示为错误。
协商工具包 NTLM 协商 WWW-Authenticate - 协商 TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==
NTLM - Negotiate_Message 警告,这是 NTLM,仅支持 SPNEGO!协商标志 - (encryption56Bit)(explicitKeyExchange)(sessionKeyExchange128Bit)协商版本)(ntlm2)(alwaysSign)(ntlm)(lmKey)(sign)(requestTarget)(oem)(unicode) 域名 = null - {length=0}{maxLength =0}{offset=0} 工作站名称 = null - {length=0}{maxLength=0}{offset=0} 版本 - ?
我将 Internet Explorer 和 Firefox 都配置为发送协商标头,但它们都因 Linux 服务器而失败。
我究竟做错了什么?
顺便说一句:我在某处读到 Windows 总是在本地机器上发送 Kerberos 协商标头 - 这是真的吗?
http - 无法使用 curl 协商到不同的域
我想使用 curl 使用 B.COM 用户的凭据从域 A.COM 访问域 B.COM 上的 Web 服务器。所有这些都使用 Kerberos 身份验证。所以我使用以下命令:
两个域之间存在信任,但问题是 AS-REQ/TGS-REQ 请求被发送到域 A.COM 而不是域 B.COM 的域控制器。因此,SPNEGO 身份验证失败,回退到 NTLM(在我的 Web 服务器中未启用),因此我得到了未经授权的响应。
有没有办法让 curl 与域 B.COM 的 DC 协商,从而正确完成 Kerberos 身份验证?
java - 当客户端和服务器在同一台机器上时,Kerberos 身份验证未运行
尝试从运行 jboss 服务器的同一台机器访问应用程序时出现以下错误
当客户端和服务器都在同一个输入代码的机器上时,有什么方法可以让它工作?我在 Win7 上使用 IE9,如何确认令牌是 NTLM 而不是 kerberos?
java - Kerberos SSO:高级流和 ldap 访问
在掌握整个流程时遇到一些问题。我正在尝试完成所有强大的 kerberos SSO 集成,其中 auth 用户信息是直接从 Windows 中挑选出来的。
我在用着:
- Tomcat 7 中的 Spnego 过滤器,以便从 IWA 获取用户名
- 爪哇 1.6
- 后端的 windows server 2003 / windows XP 作为客户端机器进行测试
我对整个流程的理解是这样的:
- 我可以使用 spnego 通过那个 tomcat 过滤器获取用户名(这部分已经在工作)
- 我通过 LDAP 进行单独调用(我在其上使用 Kerberos 进行身份验证),以检索我需要的有关登录用户的任何信息(例如它所属的组等)
我正在尝试使用 apacheds 2 来搜索 LDAP 部分。
问题(1):我的理解正确吗?这通常以不同的方式完成吗?(也许使用 spnego 直接获取我需要的所有信息?)
现在,我正在尝试使用 apacheds 通过 kerberos 登录到 LDAP 后端,以便检索用户信息,如下所示:
我收到此错误:
我的问题是:
Q2:我认为 ldap+kerberos 是一个非常常用的组合;我还认为 apacheds 是用于此目的的常用库(如果不是,你们用什么?)。但是,尽我所能,我并没有真正找到任何通过 apacheds 访问 ldap 的 Kerberos 示例代码。我通过 apacheds 找到了大量有关 ldap 客户端的信息,但没有使用 kerberos 身份验证。这通常表明我做错了什么,或者我抓住了这根棍子的错误一端(走错了方向)。有什么想法吗?
Q3:SaslGssApiRequest 似乎是为了通过 kerberos 访问 ldap 的 LdapNetworkConnection 的确切方式(我的意思是 apacheds)。但是,仅在 google 上快速搜索此类名称显示的有用信息为零(例如有关如何使用它的文档)。是否有另一种更简单的方法来完成我的目标,通过使用 apacheds (我的意思是客户端)但没有 SaslGssApiRequest ?
Q4:为什么我上面的代码不起作用?请注意,如果我更改任何一个用户或传递给无效的东西(我目前正在使用我的常规 XP 用户用户/传递来登录到 ldap),我会得到完全相同的错误。是否需要在某处指定 ldap 的服务主体名称(即使我已经指定了主机/端口)?如果有,在哪里?
PS 我的 login.conf 和 krb5.ini 文件与我在已经工作的 spnego 示例中使用的完全相同,因此它们应该是正确的。
spring-mvc - 使用 kerberos/spnego 身份验证的弹簧安全性
我已经使用 kerberos 身份验证成功地获得了 Spring Security。但似乎 spring 框架正在调用 KerberosServiceAuthenticationProvider.userDetailsService 来获取角色,我原以为它只会获取一次角色,直到会话无效。我的配置看起来像
所以每次请求安全页面时都会调用我的 DummyUserDetailsService.loadUserByUsername(Styring username),我正在从数据库中加载用户角色并且不想在每次发出请求时都运行查询,是否有任何配置我需要做什么来防止这种情况?
aes - jaaslounge spnego/kerberos 票证解密 aes-256
有人用 jaas Lounge 和 aes256-cts 做过这个吗?jaaslounge KerberosEncData 似乎没有任何此类加密的实现。
有没有人一起破解 aes256-cts-hmac-sha1-96 的工作解密器?
spring-security - 当 kerberos 票证过期时会发生什么?
我正在使用带有 spring security 的 kerberos/spnego 身份验证来验证来自 Active Directory 服务的用户,客户端是 Windows 7。我对 kerberos 票证续订过程感到担忧。我知道票证的有效期为 10 小时,当用户启动和使用 kerboros 票证的应用程序并且他的机器上存在的票证已过期时会发生什么,浏览器会自动向 AD 服务器请求新票证还是身份验证失败?
java - 使用 SPNEGO 的 Java SSO
我是这个话题的新手。我需要帮助才能通过 Tomcat 6.0.29 为 Web 应用程序实现身份验证 Java SSO。我已经阅读了有关 SPNEGO 的信息,并在http://spnego.sourceforge.net/上证明了示例 helloKDC.java 和 hello_spnego.jsp效果很好,但我不知道实现该解决方案必须遵循哪些步骤。即足以获取远程用户的名称?或者我必须做其他事情来确保其身份并保持当前用户的会话?
wcf - WCF 互操作性 Kerberos SPNego 启用的 Web 服务
我们有一个测试 Windows Server 2012 域。有两台计算机是该域的成员。
Oracle Corporation 正在开发一台计算机,并在虚拟机上运行 Linux 的一个版本。这台机器托管了一个 SPNego Kerberos 认证的 Web 服务,大概由 IBM WebSphere 托管。
另一台计算机是托管在 Microsoft 虚拟机上的 Windows XP 客户端。
我们在 Active Directory 中创建了 SPN,以使用 Kerberos 对用户进行身份验证。
然后,我们使用浏览器测试了 Web 服务。WSDL 地址完美地带回了 SOAP 数据。
Kerberos 已关闭,因此客户端代理代码可以合并到 WCF 4.0 客户端中并再次打开以测试身份验证。
但是,当尝试使用客户端代理中提供的方法连接到 Web 服务时,会引发各种与安全相关的错误:
下面是用于连接到 Web 服务的客户端 App.config 文件:
提供网络凭据也是在代码中完成的;但很可惜,无济于事。
谢谢你。
swing - 使用 kerberos/spnego 在服务器端为 Swing 客户端验证用户
我正在使用 kerberos 协议对 Java Swing 应用程序的用户进行身份验证。我能够在客户端成功进行身份验证,但是在服务器端获取用户凭据和角色时遇到问题,我有 ejb,它需要某些角色来创建这些 ejb。
jboss-app.xml 看起来像
调用 Subject.doAs(s, lv) 的客户端类;lv 是一个扩展 PrivilegedExceptionAction 的类。
在 jboss 服务器中的服务器端 login-config.xml 得到以下设置
收到以下错误: