标签: ntlm

Javamail NTLM身份验证失败

尝试在JavaMail中使用NTLM连接到Exchange服务器.我可以连接到SMTP,但不能连接到IMAP.我还可以使用相同的主机/用户名/密码,帐户类型="IMAP",端口143,ssl = false,身份验证= NTLM,域名=""通过OS X Mail.app应用程序进行身份验证.

连接代码:

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Store;
import java.util.Properties;

    public class NTLMTest {
        public static void main(String[] args) throws Exception {
            final String host = "example.com";
            final String user = "bob";
            final String password = "password";

            final Properties properties = new Properties();
            Session session = Session.getDefaultInstance(properties);
            session.setDebug(true);

            // SMTP CONNECT
            final Transport transport = session.getTransport("smtp");
            transport.connect(host, user, password);
            System.out.println("SMTP Connect successful");

            // IMAP CONNECT
            final Store store = session.getStore("imap");
            store.connect(host, user, password);
            System.out.println("IMAP Connect …
Run Code Online (Sandbox Code Playgroud)

java exchange-server ntlm jakarta-mail

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

使用NTLM的Windows身份验证的nginx反向代理

任何人都知道是否可以使用NTLM的Windows身份验证进行反向代理?我找不到任何这方面的例子.more_set_headers字段的值应该是多少?

location / {
            proxy_http_version      1.1;
            proxy_pass_request_headers on;
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;


            more_set_input_headers  'Authorization: $http_authorization';

            proxy_set_header  Accept-Encoding  "";

            proxy_pass              http://host/;
            proxy_redirect          default;
            #This is what worked for me, but you need the headers-more mod
            more_set_headers        -s 401 'WWW-Authenticate: Basic realm="host.local"';
}
Run Code Online (Sandbox Code Playgroud)

如果我直接访问主机,则如果我使用反向代理访问身份验证,则每次身份验证都会失败.

ntlm reverse-proxy nginx

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

在使用NTLM进行身份验证时,HttpClient 4.1.1返回401,浏览器工作正常

我正在尝试使用Apache/Jakarta HttpClient 4.1.1使用给定的凭据连接到任意网页.为了测试这一点,我在运行的dev机器上安装了最少的IIS 7.5,其中一次只有一种身份验证模式处于活动状态.基本身份验证工作正常,但每当我尝试登录时,Digest和NTLM都会返回401错误消息.这是我的代码:

    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpGet httpget = new HttpGet("http://localhost/"); 
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(AuthScope.ANY,
            new NTCredentials("user", "password", "", "localhost"));
    if (!new File(System.getenv("windir") + "\\krb5.ini").exists()) {
        List<String> authtypes = new ArrayList<String>();
        authtypes.add(AuthPolicy.NTLM);
        authtypes.add(AuthPolicy.DIGEST);
        authtypes.add(AuthPolicy.BASIC);
        httpclient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF,
                authtypes);
        httpclient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF,
                authtypes);
    }
    localContext.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider);
    HttpResponse response = httpclient.execute(httpget, localContext);
    System.out.println("Response code: " + response.getStatusLine());
Run Code Online (Sandbox Code Playgroud)

我在Fiddler中注意到的一件事是Firefox和HttpClient发送的哈希值不同,这让我觉得IIS 7.5可能比HttpClient提供更强的哈希值?有任何想法吗?如果我能够验证这适用于NTLM,那就太棒了.摘要也会很好,但如果有必要,我可以不用它.

java iis ntlm httpclient digest

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

Windows集成(NTLM)身份验证与Windows集成(Kerberos)

Windows集成(NTLM)身份验证和Windows集成(Kerberos)之间有什么区别?

如何在IIS6中实现这些

wrt MSDN

c# asp.net ntlm iis-6 kerberos

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

有没有可靠的方法来处理Android应用程序的Windows集成(NTLM)身份验证?

正如标题所述,我们正在寻找一种方法来访问Windows集成(NTLM)身份验证背后的.NET 3.5 Web服务.

我们整整一周都在搜索互联网和本论坛,我们还没有找到解决这个问题的方法.

我们尝试过,DefaultHttpConnections,HttpPost,HttpGet等的不同变体.

但是,我们试图验证自己,我们遇到这些:

    SSLHandshakeException
Run Code Online (Sandbox Code Playgroud)

要么

   Authentication scheme ntlm not supported
   Authentication error: Unable to respond to any of these challenges: 
   ntlm=WWW-Authenticate: NTLM, negotiate=WWW-Authenticate: Negotiate
Run Code Online (Sandbox Code Playgroud)

IIS身份验证设置如下: 在此输入图像描述

我们尝试访问的页面是默认站点的子文件夹中的.aspx,我们没有优势,也不能将身份验证更改为默认站点.

我知道互联网中有很多其他人也有类似的问题.

此外,我们正在开发的应用程序不应该使用Web视图.

任何有关如何解决这个问题的建设性指示都将受到高度赞赏.提前致谢.




更新:我们现在已经更改了服务以执行基本身份验证和ntlm身份验证.

当我们将下面的代码运行到localhost测试服务器时,我们得到了正确的响应,localhost没有任何类型的身份验证机制.答复如下:

<soap:Body>
<FooResponse xmlns="uri:FlexAPI">
<FooResult>
<typeFooBar>
<FooNumber>4545</FooNumber>
<BarNumber>1</BarNumber>
</typeFooBar>
</FooResult>
</FooResponse>
</soap:Body>
Run Code Online (Sandbox Code Playgroud)

但是,当我们在经过身份验证的服务器上运行以下代码时,我们会得到此信息

org.xmlpull.v1.XmlPullParserException:expected:START_TAG { http://schemas.xmlsoap.org/soap/envelope/ } Envelope(位置:START_TAG @ 2:44 in java.io.InputStreamReader@4054b398)

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);



        request.addProperty("Foo", Bar.getText().toString());
        request.addProperty("Foo", Bar.getText().toString());
        request.addProperty("Foo", Bar() );
        request.addProperty("Foo", Bar.getText().toString());



        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);


        envelope.dotNet = true; …
Run Code Online (Sandbox Code Playgroud)

java authentication android ntlm web-services

11
推荐指数
1
解决办法
5393
查看次数

解析增量后,带有NTLM代理的git clone会挂起

我在这里看到很多关于git和代理主题的问题,但没有一个能解决我的问题.我正在从Bitbucket克隆一个git存储库.从我的家庭网络一切正常,但挂起工作,我们使用代理与NTLM身份验证.请参阅git clone命令的输出:

$ git clone https://my_user@bitbucket.org/my_user/my_project.git --verbose
Cloning into 'my_project'...
Password for 'https://my_user@bitbucket.org':
POST git-upload-pack (174 bytes)
remote: Counting objects: 548, done.
remote: Compressing objects: 100% (367/367), done.
remote: Total 548 (delta 216), reused 0 (delta 0)
Receiving objects: 100% (548/548), 5.28 MiB | 533 KiB/s, done.
Resolving deltas: 100% (216/216), done.
Run Code Online (Sandbox Code Playgroud)

git clone命令总是挂起"Resolving deltas".

我的设置:


似乎这个问题与git对象大小有某种关系,因为当我只在我的存储库中存在少量文件时,git clone就开始工作了.

git https ntlm clone

11
推荐指数
2
解决办法
4679
查看次数

使用ntlm身份验证时出现Java URLConnection错误,但仅限Linux和Java 7

我正在尝试打开与NTLM身份验证方案保护的URL的http连接.当我们使用Java 6时,这段代码已经正常工作了2年.我写了一个小的java程序,它访问该特定的url,使测试用例尽可能简单.

问题是我无法使程序在Linux上运行,并且在使用JDK 7的版本时.Java尝试20次访问URL,然后我收到一个错误,告诉我服务器重定向次数太多.它适用于linux和JDK 6,以及带有JDK 6或7的Windows 7.

我检查并尝试了此处列出的解决方案(和许多其他人):获取"java.net.ProtocolException:服务器重定向次数太多"错误.它没用.我还要补充一点,当从浏览器访问URL时,我可以看到没有涉及cookie.

以下是我尝试过的os/java版本的确切细节:

成功:

  • Windows 7:Java(TM)SE运行时环境(版本1.7.0_15-b03)(64位)
  • Windows 7:Java(TM)SE运行时环境(版本1.7.0_10-b18)(64位)
  • Windows 7:Java(TM)SE运行时环境(版本1.6.0_33-b04)(64位)
  • Redhat enterprise linux 6.4:Java(TM)SE运行环境(版本1.6.0_33-b04)(64位)

失败:

  • Redhat enterprise linux 6.4:Java(TM)SE运行时环境(版本1.7.0-b147)(64位)
  • Redhat enterprise linux 6.4:Java(TM)SE运行时环境(版本1.7.0_05-b06)(64位)
  • Redhat enterprise linux 6.4:Java(TM)SE运行时环境(版本1.7.0_13-b20)(64位)
  • Redhat enterprise linux 6.4:Java(TM)SE运行时环境(版本1.7.0_15-b03)(64位)

当程序工作时,我看到使用的身份验证方法和我尝试下载的文档作为输出:

Scheme:Negotiate
Scheme:ntlm
.... document content ....
Done
Run Code Online (Sandbox Code Playgroud)

当它失败时,我有以下输出:

Scheme:Negotiate
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
Scheme:ntlm
java.net.ProtocolException: Server redirected too many  times (20)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1635)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) …
Run Code Online (Sandbox Code Playgroud)

java authentication ntlm urlconnection

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

SSO - 使用Apache获取AD用户名

我在Debian 8上运行PHP 5.6.17和Apache 2.4.10.

我想$_SERVER['REMOTE_USER']用Windows用户名填充PHP变量,如果用户名在我的数据库中,则登录用户.我对此方法涉及的安全风险感到满意,因为这只会暴露在本地网络上.

这是我在Apache vhost定义中所做的:

<LocationMatch "/login/ssologin">
    PerlAuthenHandler Apache2::AuthenNTLM
    AuthBasicAuthoritative on

    AuthType ntlm
    AuthName "hello"

    Require valid-user

    PerlAddVar ntdomain  "my.local"
    PerlSetVar defaultdomain my.local
    PerlSetVar splitdomainprefix 1
    PerlSetVar ntlmauthoritative off
    PerlSetVar ntlmdebug 1
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)

我将URL放入Internet Explorer中的受信任站点,但仍然提示我进行基本身份验证.

我错过了什么?

我唯一的目标是获取Windows会话的用户名.还有另一种更简单的方法吗?

php apache ntlm mod-perl

11
推荐指数
1
解决办法
995
查看次数

Apache SSPI(NTLM,Active Directory)自动登录不起作用

我想在Intranet中自动登录.
我们的基础设施正在追随(无法改变):

  • Web服务器:Apache + PHP,在域名下 test.local
  • 域名下的Active Directory服务器 ldap.local

我安装authnz_sspi_module在Web服务器上并配置.htaccess:

AuthName "test"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain ldap.local
SSPIOmitDomain On
SSPIOfferBasic Off
SSPIBasicPreferred Off
SSPIOfferSSPI On
Require valid-user
Run Code Online (Sandbox Code Playgroud)

在Firefox中about:config我换network.automatic-ntlm-auth.trusted-uristest.local.

然后Firefox不会要求输入用户名和密码,而是立即打印401 Unauthorized页面.Apache在错误日志中打印用户名或密码不正确且该用户未知.
在Chrome(没有额外配置)它要求凭据,当我提供它们时,我也得到401错误.
我在Windows服务器上启用了NTLM审核.在事件日志中从Chrome进行日志记录时会出现两个事件 - Audit Success其中安全ID是域名用户名,第二个Audit Failure是安全ID NULL SID.从Firefox输入页面时,只创建一个事件 - Audit Failure具有安全ID NULL SID.
当我打开基本身份验证时,Firefox要求输入两次用户名和密码并重定向到www.test.local并说明连接已重置.

也许Windows服务器配置不正确?我花了一整天时间搜索网页并尝试不同的配置,没有一个工作.一种配置用于提示用户输入用户名和密码,但是,我再也不能重复了.

有谁知道问题出在哪里以及如何让它发挥作用?

apache ntlm sspi active-directory

11
推荐指数
0
解决办法
545
查看次数

UIWebView + Sharepoint + NTLM Auth - 我得到Stream在打开之前发送一个事件

我一直在开发一个应用程序,其中有一个简单的UIWebView,显示一个Sharepoint站点.我原本以为NTLM身份验证会是一个问题,但事实证明这是非常直接的.但是,自iOS8以来,我的应用程序一直在发送垃圾邮件"Stream在打开之前发送一个事件"在我的日志中一遍又一遍,以至于页面真的永远无法加载.

我最初认为这是我正在做的事情,所以我创建了一个小应用程序(下面),以消除我的其他应用程序可能有的任何奇怪,但不幸的是我得到相同的问题.我想我的主要问题是我不知道从哪里开始寻找这个问题的答案.互联网已经提到了这一点,但没有明确的解决方案,如[webView dontDoThat].:d

我正在玩手动添加连接到运行循环,你会在代码中看到这一点.我已经尝试了各种方式,我知道如何创建连接,但这是最近的尝试.

我开始处理SSL质询,因为我的证书对域名无效,然后我得到NTLM质询并发送硬编码用户名并作为测试传递.它部分加载了网站,但最终放弃了加载我认为是这个错误的所有资源.理论欢迎.

//
//  ViewController.m
//
//  Created by Greg Frame on 10/2/14.
//

#import "ViewController.h"

#define APPURL @"https://mysharepoint.com"
#define USERNAME @"usernamehere"
#define PASSWORD @"passwordhere"

@interface ViewController ()

@end

@implementation ViewController

BOOL _Authenticated = NO;
BOOL _SSLAuthenticated = NO;
NSURLConnection *_Connection;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.webView.delegate = self;
    NSURLRequest *requestURL = [NSURLRequest requestWithURL:[NSURL URLWithString:APPURL]];
    [self.webView loadRequest:requestURL];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // …
Run Code Online (Sandbox Code Playgroud)

ssl sharepoint ntlm uiwebview ios

10
推荐指数
0
解决办法
1674
查看次数