标签: ntlm

使用curl与NTLM auth发布帖子失败

我似乎无法绕过这个.我正在尝试编写自动上传csv的脚本,但卷曲失败了401.

curl -v --ntlm -u username --upload-file ~/galaxy/forums/pt_update.csv https://connect.example.com/11063/csv_import?op=add -k
Enter host password for user 'username:
* About to connect() to connect.example.com port 443 (#0)
*   Trying x.x.x.x... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, …
Run Code Online (Sandbox Code Playgroud)

curl ntlm http request

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

如何从WWW-Authenticate:Negotiate标头中查找是否使用NTLM或Kerberos

我正在编写.Net中的客户端应用程序,它通过HTTP与服务器通信.

在NTLM和Kerberos授权的情况下,我需要设置不同的请求缓冲选项.

如何确定是否使用NTLM或Kerberos?有可能以某种方式解码'WWW-Authenticate:Negotiate'标题?

.net ntlm kerberos www-authenticate negotiate

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

配置NuGet服务器以使用身份验证

NuGet 1.5状态的发行说明

NuGet now supports connecting to private repositories that require basic 
or NTLM authentication.
Run Code Online (Sandbox Code Playgroud)

但是,其中包含的链接只会导致托管您自己的nuget供稿页面,而不再提及如何设置身份验证.

我想建立一个可通过互联网https访问的NuGet服务器,但只允许能够成功通过身份验证的人查看或下载服务器上的软件包.

我确实创建了一个没有auth的应用程序,如文档中的Creating Remote Feeds部分所述,它在Intranet上运行良好.如何在此repo上启用身份验证?

另外一个要求是解决方案不应该花费数百美元(前两个答案促进了可能解决问题但成本很高的产品).

authentication iis ntlm nuget nuget-server

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

在Silverlight中获取当前Windows用户名

是否可以使用Silverlight获取当前登录用户的用户名?您可以假设用户具有Windows操作系统,并且Silverlight应用程序托管在Internet Explorer中.使用ASP.NET从服务器端获取标识不是一个选项,此Silverlight应用程序将托管在静态HTML文件中.

windows silverlight ntlm kerberos

20
推荐指数
3
解决办法
4万
查看次数

如何支持NTLM身份验证与ASP.NET MVC中的回退形式?

如何在ASP.NET MVC应用程序中实现以下内容:

  1. 用户打开内联网网站
  2. 如果可能,用户将进行静默身份验证
  3. 如果NTLM身份验证没有成功,请向用户显示登录表单
  4. 用户指示登录密码并从预定义域列表中选择域
  5. 用户使用AD在代码中进行身份验证

我知道如何实现4和5,但无法找到有关如何组合NTLM和表单的信息.因此,永远不会显示NTLM本机登录/密码对话框 - 透明身份验证或外观漂亮的登录页面.

该怎么办?是否应该询问用户登录名和密码?可以使用她当前的凭据(域用户名)而无需输入登录名和密码吗?

更新这些,调查相同的问题:

当我问这个时,我并不完全理解NTLM身份验证如何在内部工作.这里需要了解的重要一点是,如果用户的浏览器不能正确支持NTLM,或者用户禁用了NTLM支持,那么服务器永远不会有机会解决这个问题.

Windows身份验证的工作原理:

  1. 客户端向服务器发送常规HTTP请求
  2. 服务器以HTTP状态401响应并指示必须使用NTLM身份验证来访问资源
  3. 客户端发送NTLM Type1消息
  4. 服务器使用挑战响应NTLM Type2消息
  5. 客户端发送Type3消息以响应challenge
  6. 服务器响应请求的实际内容

如您所见,不支持NTLM的浏览器不会转到步骤(3),而是会向用户显示IIS生成的错误401页面.

如果用户没有凭据,则在取消NTLM身份验证后,弹出对话框窗口浏览器也不会继续(3).

因此,我们没有机会自动将用户重定向到自定义登录页面.

这里唯一的选择是有一个"网关"页面,我们决定用户是否应该支持NTLM,如果是,请重定向到受NTLM保护的主页.

如果没有,请显示登录表单并通过手动输入登录名和密码进行身份验证.

通常通过匹配IP范围或通过检查预定义IP表来基于用户的IP地址和/或主机名做出决定.

c# authentication asp.net-mvc ntlm

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

Python中的NTLM身份验证

我正在尝试使用python从Windows 7在IIS(Windows Server 2003)上实现NTLM身份验证.LAN Manager身份验证级别:仅发送NTLM响应.
客户端计算机和服务器位于同一个域中.
域控制器(AD)位于另一台服务器上(也运行Windows Server 2003).

我收到401.1 - 未经授权:由于凭据无效,访问被拒绝.你能帮我找出这个代码有什么问题和/或向我展示解决这个问题的其他可能方向(使用NTLM或Kerberos)吗?

import sys, httplib, base64, string
import urllib2
import win32api
import sspi 
import pywintypes
import socket

class WindoewNtlmMessageGenerator:
    def __init__(self,user=None):
        import win32api,sspi
        if not user:
            user = win32api.GetUserName()
        self.sspi_client = sspi.ClientAuth("NTLM",user)   

    def create_auth_req(self):
        import pywintypes
        output_buffer = None
        error_msg = None
        try:
            error_msg, output_buffer = self.sspi_client.authorize(None)            
        except pywintypes.error:
            return None
        auth_req = output_buffer[0].Buffer
        auth_req = base64.encodestring(auth_req)
        auth_req = string.replace(auth_req,'\012','')
        return auth_req 

    def create_challenge_response(self,challenge):
        import pywintypes
        output_buffer = None
        input_buffer …
Run Code Online (Sandbox Code Playgroud)

python authentication ntlm

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

在Windows上配置Git以使用NTLM代理身份验证

我正在尝试从需要NTLM身份验证的代理后面的Windows机器访问Github上的存储库.SSH和git://协议都不是直接可用的,所以我试图通过代理使用HTTPS.

没有密码NTLM代理的帮助下?我已经能够curl使用msysgit提供的二进制文件与代理一起使用:

curl -U : --proxy-ntlm --proxy xxx.xxx.xx.xx:8080 https://github.com
Run Code Online (Sandbox Code Playgroud)

这是成功的并返回Github主页.

但是,我发现了一篇来自2010年2月Proxying Git的文章(强调我的):

不幸的是,curl似乎总是使用代理进行基本身份验证.如果您的代理需要其他东西,可能是Windows网络的NTLM,那么您就遇到了问题.Curl用于处理所有http传输细节,这确实支持NTLM身份验证方法,但我知道没有方法可以将必要的选项传递给curl.Git通过其库绑定使用curl,因此不应该只使用包装器脚本替换curl可执行文件.

我知道core.gitproxyGit配置中的选项,但似乎只适用于git://协议.同样,该http.proxy选项设置代理的地址,但无法提供适当的卷曲选项.

git proxy ntlm msysgit

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

Javascript/Ajax NTLM身份验证

我正在开发一个与之通信的HTML5移动应用程序WebServices.WebServices使用NTLM身份验证协议.我很难通过JavaScript处理握手.NTLM将401 unauthorized响应发送到我的POST,我没有找到任何回复的方法.

JavaScript可以进行NTLM身份验证吗?我应该使用例如基本身份验证来构建代理Web服务吗?

我的jQuery调用就像......

$.ajax({
                    type: "POST",
                    url: URL,
                    contentType: "text/xml",
                    dataType: "xml",
                    data: soapRequest,
                    username: 'username',
                    password: 'password',
                    xhrFields: {
                        withCredentials: true
                    },
                    success: processSuccess,
                    error: processError
});
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery ntlm web-services

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

使用NTLM对受保护站点使用wget

尝试镜像本地Intranet站点,并使用'wget'找到以前的问题.它适用于匿名网站,但我无法在期望用户名\密码(具有集成Windows身份验证的IIS)的网站上使用它.

这是我传递的内容:

wget -c --http-user ='domain\user'-- http -password = pwd http:// local/site -dv

这是调试输出(注意我显然用虚拟值替换了一些):

Setting --verbose (verbose) to 1
DEBUG output created by Wget 1.11.4 on Windows-MSVC.

--2009-07-14 09:39:04--  http://local/site
Host `local' has not issued a general basic challenge.
Resolving local... seconds 0.00, x.x.x.x
Caching local => x.x.x.x
Connecting to local|x.x.x.x|:80... seconds 0.00, connected.
Created socket 1896.
Releasing 0x003e32b0 (new refcount 1).

---request begin---
GET /site/ HTTP/1.0
User-Agent: Wget/1.11.4
Accept: */*
Host: local
Connection: Keep-Alive

---request end---
HTTP request sent, …

ntlm wget mirroring

18
推荐指数
3
解决办法
4万
查看次数

git clone是否可以通过NTLM代理工作?

我试过用export http_proxy=http://[username]:[pwd]@[proxy]git config --global http.proxy http://[username]:[pwd]@[proxy].

我无法让它发挥作用.看起来git使用Basic身份验证:

Initialized empty Git repository in /home/.../.git/
* Couldn't find host github.com in the .netrc file, using defaults
* About to connect() to github.com port 8080 (#0)
*   Trying 10.... * Connected to github.com (10....) port 8080 (#0)
* Proxy auth using Basic with user '...'
> GET http://github.com/sunlightlabs/fiftystates.git/info/refs HTTP/1.1
Proxy-Authorization: Basic MD...
User-Agent: git/1.6.1.2
Host: github.com
Pragma: no-cache
Accept: */*
Proxy-Connection: Keep-Alive

< HTTP/1.1 407 Proxy Authentication Required ( …
Run Code Online (Sandbox Code Playgroud)

git proxy curl ntlm

18
推荐指数
6
解决办法
2万
查看次数