我们正在评估将jxBrowser集成到桌面解决方案中,以处理IDP(Key斗篷(的身份验证。
在这个集成中,我们希望支持Kerberos身份验证,为此我们需要对SPNEGO的支持。
这是jxBrowser支持的吗?否则它在路线图上吗?
在JxBrowser中,您可以配置HTTP服务器授权白名单,该白名单表示一个用逗号/分号分隔的URL列表的字符串。此功能允许您对列出的域使用集成Windows身份验证(IWA(和Kerberos身份验证。使用IWA,Chromium可以向web服务器或代理验证用户,甚至无需提示用户输入用户名或密码。它通过使用缓存凭据来实现这一点,缓存凭据是在用户最初登录到运行浏览器的计算机时建立的。IWA仅支持协商和NTLM质询。
HttpAuthPreferences.serverWhitelist((方法允许您指定哪些服务器应该被列入集成身份验证的白名单。默认情况下,只有当存在来自此允许列表中的代理或服务器的身份验证质询时,才会启用集成身份验证。如果未设置此列表,Chromium引擎将尝试检测服务器是否在Intranet上,只有这样它才会响应IWA请求。如果一个服务器被检测为Internet,那么来自它的IWA请求将被忽略。
HttpAuthPreferences.deleteWhitelist((方法指定Chromium可以委托的服务器。如果未设置此列表,即使检测到服务器为Intranet,Chromium也不会委托用户凭据。
如果在列表中指定了多个服务器名称,请用逗号将它们隔开。允许使用通配符(*(。
示例
让我们假设IIS在127.0.0.1上运行。已为服务器启用NTLM/协商身份验证。
默认情况下,服务器的响应为401 Unauthorized。在将127.0.0.1添加到白名单后,身份验证通过,无需任何额外请求。
engine.network().httpAuthPreferences().serverWhitelist("http://127.0.0.1");
engine.network().httpAuthPreferences().delegateWhitelist("http://127.0.0.1");
我们还没有用Kerberos身份验证测试过这个解决方案,因为我们还没有所需的基础设施,但您可以尝试使用这种方法来配置服务器,并使用使用Kerberos身份验证的地址委派白名单。请尝试这种方法,如果有帮助,请告诉我。