标签: ntlm

使用谷歌浏览器或Safari在Mac上集成Windows Auth(NTLM)

启用了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)

macos iis-7 ntlm google-chrome

14
推荐指数
2
解决办法
5万
查看次数

JAX-WS Sharepoint 401未经授权的NTLM

我试着通过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 sharepoint exchange-server ntlm jax-ws

13
推荐指数
1
解决办法
2万
查看次数

在Java应用程序中使用NTLM身份验证

我想在我的Java应用程序中使用Windows NTLM身份验证来透明地验证Intranet用户.如果使用浏览器(单点登录),用户不应注意任何身份验证.

我找到了一些支持NTLM的库,但不知道使用哪一个:

有什么建议从哪里开始?

java windows security authentication ntlm

13
推荐指数
1
解决办法
4万
查看次数

每个请求的C#WebClient NTLM身份验证启动

考虑一个简单的C#.NET Framework 4.0应用程序,它:

  • 使用WebClient
  • 使用NTLM进行身份验证(在IIS 6.0和IIS 7.5服务器上测试)
  • 使用DownloadString()多次从URL检索字符串

这是一个工作正常的样本:

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身份验证不会持久存在. …

.net c# authentication ntlm webclient

13
推荐指数
1
解决办法
1万
查看次数

System.Net.WebClient不适用于Windows身份验证

我试图在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)

iis ntlm webclient

12
推荐指数
1
解决办法
2万
查看次数

Java 6 NTLM代理身份验证和HTTPS - 有没有人让它工作?

我有一个需要访问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数据库会在这些类中出现一些例外情况,但所有这些异常似乎都已得到修复.有没有人遇到这样的事情?有人有这个工作吗?

java proxy ntlm squid jax-ws

12
推荐指数
2
解决办法
3万
查看次数

使用集成Windows身份验证(NTLM)使用Python通过Exchange进行SMTP

我想使用登录的Windows用户的凭据来验证使用NTLM到Exchange服务器的SMTP连接.

我知道python-ntlm模块和两个 为SMTP启用NTLM身份验证的补丁,但我想使用当前用户的安全令牌而不必提供用户名和密码.

使用Python和urllib2的Windows身份验证非常相似的问题.

python ntlm smtp pywin32

12
推荐指数
2
解决办法
1万
查看次数

使用PHP和cURL访问Exchange Web服务

你好,

我目前正在编写一个客户端来访问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)

php curl ntlm exchangewebservices http-status-code-401

12
推荐指数
1
解决办法
2万
查看次数

Firebug控制台错误HTTP 407需要代理验证

我在工作中使用代理(使用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凭据加载它.

有什么方法可以阻止这些无用的错误出现,所以他们不会淹没我真正感兴趣的控制台消息吗?

firefox proxy firebug ntlm

12
推荐指数
1
解决办法
1万
查看次数

如何在网络视图中查看NTLM挑战?

在chrome dev工具中,我如何查看请求的所有元素,特别是Ntlm挑战的工作?

防爆.如果我对URL执行GET并且服务器发出NTLM质询,则会有多个请求和响应 - 初始质询,对其的响应以及使用Authorization标头重新运行原始请求.

我在chrome中看到的只是最后一个元素,添加了auth头的最终请求(如果auth当然有效).

我可以通过Fiddler捕捉整个循环或查看服务器.只是想知道是否有办法通过Chrome(或任何其他浏览器)中的开发工具查看它,我缺少一个视图或设置?

ntlm google-chrome google-chrome-devtools

12
推荐指数
1
解决办法
580
查看次数