启用了Windows身份验证的IIS7 Intranet站点.当从Windows上的Chrome点击时,传递身份验证工作正常(没有用户/密码提示),但是,Mac上的Chrome会出现提示.由于内部网络使用CAC/PKI,因此没有人拥有密码.
我尝试在网站上切换Windows身份验证以进行协商,但同样的用户/传递提示.
appcmd set config /section:windowsAuthentication /-providers.[value='Negotiate']
Run Code Online (Sandbox Code Playgroud)
有人知道OS X上的Chrome解决方案吗?
编辑
OS X 10.6.8
Centrify for Mac将用于通过CAC对(Windows 2008 R2 ActiveDirectory)网络进行身份验证.
编辑2
有一个代理设置,但它被绕过本地Intranet站点,所以我不认为它正在发挥作用.
还尝试使用--auth-server-whitelist命令行开关,没有用.
编辑3
解
open 'Google Chrome.app' --args --auth-server-whitelist="*DOMAIN.TLD" --auth-negotiate-delegate-whitelist="*DOMAIN.TLD" --auth-schemes="digest,ntlm,negotiate"
Run Code Online (Sandbox Code Playgroud)
不幸的是,谷歌Chrome for Mac无法在每次加载时指定命令行参数,因此需要制作某种shell脚本.
在登录时运行以下shell脚本是解决Chrome更新和额外文档图标的最终解决方案.
#!/bin/bash
cd /Applications/Google\ Chrome.app/Contents/MacOS/
if [ -f 'Google Chrome.bin' ];
then
echo "Already Modified"
else
sudo chmod u+wr ./
sudo mv 'Google Chrome' 'Google Chrome.bin'
sudo echo "#!/bin/bash" > "Google Chrome"
sudo echo 'exec /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome.bin --args --auth-server-whitelist="*DOMAIN.TLD" --auth-negotiate-delegate-whitelist="*DOMAIN.TLD" --auth-schemes="digest,ntlm,negotiate"' >> …Run Code Online (Sandbox Code Playgroud) 我试着通过JAX-WS访问SharePoint列表中所描述的在这里
但是,当运行下面的代码时,我得到:
java.lang.Exception: Exception. See stacktrace.com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized
Run Code Online (Sandbox Code Playgroud)
Sharepoint需要NTLM身份验证.可能是什么问题?非常感谢!
public static ListsSoap sharePointListsAuth(String userName, String password) throws Exception {
ListsSoap port = null;
if (userName != null && password != null) {
try {
Lists service = new Lists();
port = service.getListsSoap();
System.out.println("Web Service Auth Username: " + userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);
} catch (Exception e) {
throw new Exception("Error: " + e.toString());
}
} else {
throw new Exception("Couldn't …Run Code Online (Sandbox Code Playgroud) 我想在我的Java应用程序中使用Windows NTLM身份验证来透明地验证Intranet用户.如果使用浏览器(单点登录),用户不应注意任何身份验证.
我找到了一些支持NTLM的库,但不知道使用哪一个:
有什么建议从哪里开始?
考虑一个简单的C#.NET Framework 4.0应用程序,它:
这是一个工作正常的样本:
using System;
using System.Net;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string URL_status = "http://localhost/status";
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(URL_status), "NTLM", new NetworkCredential("username", "password", "domain"));
WebClient WebClient = new WebClient();
WebClient.Credentials = myCache;
for (int i = 1; i <= 5; i++)
{
string Result = WebClient.DownloadString(new Uri(URL_status));
Console.WriteLine("Try " + i.ToString() + ": " + Result);
}
Console.Write("Done");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题:
启用跟踪时,我发现NTLM身份验证不会持久存在. …
我试图在WinForms应用程序中使用System.Net.WebClient将文件上传到具有Windows身份验证的IIS6服务器,因为它只是"身份验证"方法.
WebClient myWebClient = new WebClient();
myWebClient.Credentials = new System.Net.NetworkCredential(@"boxname\peter", "mypassword");
byte[] responseArray = myWebClient.UploadFile("http://localhost/upload.aspx", fileName);
Run Code Online (Sandbox Code Playgroud)
我得到一个'远程服务器返回错误:(401)未授权',实际上它是401.2
客户端和IIS都在同一台Windows Server 2003 Dev计算机上.
当我尝试在Firefox中打开页面并输入与代码中相同的正确凭据时,页面出现.但是,当使用IE8时,我得到相同的401.2错误.
试过Chrome和Opera,他们都工作.
我在IE Internet选项中启用了"启用集成Windows身份验证".
安全事件日志具有失败审核:
Logon Failure:
Reason: An error occurred during logon
User Name: peter
Domain: boxname
Logon Type: 3
Logon Process: ÈùÄ
Authentication Package: NTLM
Workstation Name: boxname
Status code: 0xC000006D
Substatus code: 0x0
Caller User Name: -
Caller Domain: -
Caller Logon ID: -
Caller Process ID: -
Transited Services: -
Source Network Address: 127.0.0.1
Source …Run Code Online (Sandbox Code Playgroud) 我有一个需要访问Web服务的Java应用程序(不是applet).已经使用JAX-WS生成了Web服务的代理,并且似乎工作正常.在一种情况下,它需要通过Web代理服务器(实际上是Squid 3.0)进行通信,该服务器设置为需要NTLM身份验证.
在Sun的JRE 1.6.0_14上运行,一切都可以正常访问HTTP URL,而无需任何更改:内置的NTLM身份验证器启动,它们都无法正常工作.但是,如果Web服务URL是HTTPS URL,则Web服务调用将在Sun的代码内部失败:
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.lang.NullPointerException
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:121)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:142)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
... our web service call ...
Caused by: java.lang.NullPointerException
at sun.net.www.protocol.http.NTLMAuthentication.setHeaders(NTLMAuthentication.java:175)
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1487)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:109)
... 16 more
Run Code Online (Sandbox Code Playgroud)
查看Sun的bug数据库会在这些类中出现一些例外情况,但所有这些异常似乎都已得到修复.有没有人遇到这样的事情?有人有这个工作吗?
我想使用登录的Windows用户的凭据来验证使用NTLM到Exchange服务器的SMTP连接.
我知道python-ntlm模块和两个 为SMTP启用NTLM身份验证的补丁,但我想使用当前用户的安全令牌而不必提供用户名和密码.
与使用Python和urllib2的Windows身份验证非常相似的问题.
你好,
我目前正在编写一个客户端来访问Microsoft Exchange服务器并从中读取联系人,约会等.
经过几天的搜索,我已经能够通过PHP的Soap客户端和自定义HTTPS流包装器连接到EWS.这个网站在这一点上给了我很大的帮助.
使用XAMPP在我的Windows 7机器上一切正常
现在我将我的项目上传到Debian 6.0 Squeeze开发机器,它与我的Windows机器完全相同,关于web服务器,php设置,mysql设置等等,但它不再适用了
debian机器可以毫无问题地解析和ping交换服务器
我将实际问题解决到了一定程度,其中cURL无法检索EWS的WSDL文件
它始终收到空响应和401(未授权)状态代码
我使用的凭据是正确的,相同的凭据在我的Windows机器上工作
我提取了有问题的代码并尝试独立运行它,它看起来像这样:
echo "Trying to get https://".$cfg[ 'Exchange.Server' ]."/EWS/Services.wsdl<br>";
$curl = curl_init( 'https://'.$cfg[ 'Exchange.Server' ].'/EWS/Services.wsdl' );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_NTLM );
curl_setopt( $curl, CURLOPT_USERPWD, $cfg[ 'Exchange.User' ].':'.$cfg[ 'Exchange.Password' ] );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
echo '<pre>';
$response = curl_exec( $curl );
$info = curl_getinfo( $curl );
var_dump( $info );
var_dump( …Run Code Online (Sandbox Code Playgroud) 我在工作中使用代理(使用NTLM身份验证).每当我加载页面时,我的Firebug控制台就会充斥着这样的消息:
"NetworkError: 407 Proxy Authentication Required - http://somewebsite/Scripts/jquery-1.8.2.min.js"
Run Code Online (Sandbox Code Playgroud)
它为该页面上引用的所有URL执行此操作:JS,CSS,Image,诸如此类.
令人讨厌的是该文件实际上已成功加载.似乎Firefox遇到407错误,垃圾邮件日志,然后无论如何使用NTLM凭据加载它.
有什么方法可以阻止这些无用的错误出现,所以他们不会淹没我真正感兴趣的控制台消息吗?
在chrome dev工具中,我如何查看请求的所有元素,特别是Ntlm挑战的工作?
防爆.如果我对URL执行GET并且服务器发出NTLM质询,则会有多个请求和响应 - 初始质询,对其的响应以及使用Authorization标头重新运行原始请求.
我在chrome中看到的只是最后一个元素,添加了auth头的最终请求(如果auth当然有效).
我可以通过Fiddler捕捉整个循环或查看服务器.只是想知道是否有办法通过Chrome(或任何其他浏览器)中的开发工具查看它,我缺少一个视图或设置?