草庐IT

c++ - 为什么 WinInet 在通过 FQDN 连接时无法通过协商自动验证,但通过 IP 连接时会成功?

有一个奇怪的问题,如果我通过名称连接到内部服务,WinInet无法使用用户当前凭据进行身份验证,但如果我通过IP连接则不会。在我们的一个环境中,它位于自己的域DOM1中,我们的客户端可以使用服务器名称连接到我们的WCF服务,即http://machine_name:port/service.在另一个环境中,在域DOM2中,客户端可以使用http://sss.xxx.yyy.zzz:port/service自动进行身份验证,但如果我们将客户端配置为使用机器名称进行连接,它会连接,但无法使用集成安全性进行身份验证。我们最终不得不求助于basic,而这是我们想要避免的。也就是说,我们可以切换

c++ - 无法获得协商身份验证以在 libcurl 程序中工作

我目前正在使用libcurl(版本7.19.6,内置SPNEGO和GSS-Negotiate支持)编写连接到protected网页(Kerberosprotected)在Tomcat服务器后面。使用命令行:-curl--negotiate-u:http://prtotectedpage.jsp--verbose这有效(服务器返回HTTP401未经授权,然后它允许传递和处理SPNEGOtoken,我可以访问protected页面)。但是,当我编写以下代码并尝试时:-usingnamespacestd;#include#include#defineYOUR_URL"http://prote

从 Windows 到 Linux 的 HTTP 协商失败

我正在尝试将我的本地Windows10计算机验证为在docker容器内运行的Web服务。更具体地说,这个容器正在运行Hadoop服务和MITKerberosKDC。我已经在我的本地机器上安装了适用于Windows的MITKerberos并成功获得了一张票hadoop/quickstart.cloudera@CLOUDERA来自KDC。当我在我的容器中使用相同的主体进行身份验证并调用此命令时:curl-i--negotiate-u:"http://quickstart.cloudera:50070/webhdfs/v1/?op=GETFILESTATUS"我得到一个有效的回应。但是,从我

java - 我如何使用 Spnego/Kerberos 和 Apache 的 HttpClient 进行身份验证?

如何正确设置与HttpClient的连接,该连接使用登录用户的ActiveDirectory凭据对网站进行身份验证并需要Kerberos/Spnego身份验证? 最佳答案 这是一个例子:publicclassHttpSpnegoConnection{/***UsesHttpClient4.3.4andCommonsIO2.4*/publicstaticvoidmain(String[]args)throwsClientProtocolException,IOException{Stringdomain="yourdomain.com

java - 人们如何使 Java SPNEGO 客户端在 Windows 中工作?

为了在Windows上使用Java进行客户端HTTPSPNEGO身份验证,您需要设置Windows注册表项allowtgtsessionkey.这是有据可查的。我不明白的是人们如何解决这个问题?大多数公司站点永远不会接受为了单个软件而更改Windows中的此注册表项。如果需要在组织中的每个工作站上进行更改,还要考虑麻烦。但这只是理论,因为到目前为止我无法说服我们的任何客户更改此注册表项。我不怪他们。大多数公司管理员会认为这是一种放松的安全措施,因此会反对它。我读过这个:IsthereawayinJavaoracommand-lineutiltoobtainaKerberosticket

php - curl - SPNEGO 无法找到协商机制

我正在尝试将php-curl与MicrosoftWeb服务一起使用:这是我的代码(使用wamp在Windows10上工作):");$response=curl_exec($handle);$url_info=curl_getinfo($handle);print_r($url_info);echo(htmlentities($response));echo("");当我尝试从centos7(或ubuntu15)使用此代码时,出现错误401unautorized。Php、curl、libcurl在windows和linux上具有相同的版本(并且所有扩展都与phpinfo相同)。所以,我正

php - curl - SPNEGO 无法找到协商机制

我正在尝试将php-curl与MicrosoftWeb服务一起使用:这是我的代码(使用wamp在Windows10上工作):");$response=curl_exec($handle);$url_info=curl_getinfo($handle);print_r($url_info);echo(htmlentities($response));echo("");当我尝试从centos7(或ubuntu15)使用此代码时,出现错误401unautorized。Php、curl、libcurl在windows和linux上具有相同的版本(并且所有扩展都与phpinfo相同)。所以,我正

java - 在没有 SPnego 的情况下访问受 kerberos 保护的 WebHDFS

我有一个使用WebHDFS管理HDFS的工作应用程序。我需要能够在Kerberos安全集群上执行此操作。问题是,没有库或扩展来为我的应用协商票证,我只有一个基本的HTTP客户端。是否可以创建一个Java服务来处理票证交换,一旦它获得服务票证就将其传递给应用程序以用于HTTP请求?换句话说,我的应用程序会要求Java服务协商票证,它会以字符串或原始字符串的形式将服务票证返回给我的应用程序,而应用程序只会将其附加到HTTP请求?编辑:是否有像@SamsonScharfrichter为HTTPfs描述的类似的优雅解决方案?(据我所知,它不支持委托(delegate)token)EDIT2:大

hadoop - 将 SPNEGO 凭证转发到安全集群

我有一个受Kerberos保护的集群,并且有一个RESTAPI需要代表用户与集群进行交互。我已经将SpringSecurity与SPNEGO结合使用来对用户进行身份验证,但是当我尝试使用HadoopSDK时,根据我的尝试,由于各种原因它失败了。当我尝试在用户登录后直接使用SDK时,它给我SIMPLEauthenticationisnotenabled。我注意到session的Authenticator是UserNamePasswordAuthenticationToken,这没有意义,因为我正在使用用户的凭据对Kerberos领域进行身份验证。我正在尝试使用我自己的服务帐户和key表开

c# - .NET Core SPNEGO 身份验证与 HttpClient

我目前正在编写一个简单的基于.NETCore的客户端,用于通过WebHCat与Hadoop集群进行交互,我正在尝试弄清楚如何使用SPNEGO进行身份验证,就像在curl或PowershellCore中一样。使用Curl我可以像这样查询WebHCat的状态端点:curl"http://10.2.0.9:50111/templeton/v1/status"--negotiate-k-u:同样的请求也可以在PowershellCore中执行:$client=New-ObjectSystem.Net.WebClient;$client.UseDefaultCredentials=$true;$