- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在我们的一个内部站点上实现 NTLM 身份验证,并且一切正常。我没有解决的一个难题是如何从 NTLM 获取信息并使用 Active Directory 进行身份验证。
有一个good description of NTLM和 encryption used for the passwords ,我曾经实现过这个,但我不确定如何验证用户的密码是否有效。
我正在使用 ColdFusion,但此问题的解决方案可以使用任何语言(Java、Python、PHP 等)。
编辑:
我在 Redhat Enterprise Linux 上使用 ColdFusion。不幸的是,我们不能使用 IIS 来管理它,而必须为此编写或使用第三方工具。
更新 - 我开始工作了,这就是我所做的
我去了 JCIFS library from samba.org.
Note that the method below will only work with NTLMv1 and DOES NOT work with NTLMv2. If you are unable to use NTLMv1 you can try Jespa, which supports NTLMv2 but is not open source, or you can use Kerberos/SPNEGO.
<web-app>
<display-name>Ntlm</display-name>
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>dc01.corp.example.com</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>CORP.EXAMPLE.COM</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
</web-app>
/admin/*
将需要 NTLM 身份验证。
最佳答案
您真正要问的是:在执行单点登录 (SSO) 时,是否有任何方法可以验证 IE 和其他 HTTP 客户端提交的“WWW-Authenticate: NTLM” token 。 SSO 是当用户在执行 Ctrl-Alt-Del 时输入密码“单次”,工作站会记住并在必要时使用它来透明地访问其他资源,而无需再次提示用户输入密码。
请注意,Kerberos 与 NTLM 一样,也可用于实现 SSO 身份验证。当出现“WWW-Authenticate: Negotiate” header 时,IE 和其他浏览器将发送 SPNEGO 包装的 Kerberos 和/或 NTLM token 。稍后会详细介绍,但首先我会按要求回答问题。
验证 NTLMSSP 密码“响应”(如 IE 和其他浏览器提交的“WWW-Authenticate: NTLM” header 中编码的那些)的唯一方法是使用 NetrLogonSamLogon(Ex) DCERPC 调用与 Active Directory 域的 NETLOGON 服务对目标帐户具有权限或具有“信任”权限的 Controller 。此外,为了正确保护 NETLOGON 通信,应使用安全 channel 加密,并且从 Windows Server 2008 开始需要。
不用说,实现必要的 NETLOGON 服务调用的包很少。我所知道的只有:
yum install samba-winbind
和 yum install mod_auth_ntlm_winbind
.但这很容易——设置这些东西是另一回事。 关于http - 如何在 Active Directory 中使用 NTLM 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135/
我正在做一些关于 Windows 密码的研究,我有一个小问题。 Windows 对用户密码进行加密并存储在:C:\WINDOWS\system32\config\SAM 通过NTLM算法(加Syske
我一直在尝试在 IIS 托管的网站中使用 service worker 来缓存站点的一些静态内容。该站点是使用 Windows 身份验证的内部应用程序。我已经能够在没有太多麻烦的情况下注册和运行 se
我的任务是创建一个脚本,该脚本登录到公司门户转到特定页面,下载该页面,将其与早期版本进行比较,然后根据所做的更改向特定人员发送电子邮件。最后一部分很简单,但给我带来最大麻烦的是第一步。 在使用 url
我知道有很多关于 SO 的问题与此类似,但我找不到针对这个特定问题的问题。 首先有几点: 我无法控制我们的 Sharepoint 服务器。我无法调整任何 IIS 设置。 我相信我们的 IIS 服务器版
我浏览了大量 SO 文章,甚至浏览了其他网站,但似乎无法让这项服务正常工作。我有一个 SOAP 服务,我正在尝试访问它,它的配置如下:
我正在查看一些遗留代码并试图确定应用程序是使用 ntlm 还是 ntlmv2。 查看源将响应头设置为“WWW-Authenticate”、“NTLM”。 但我不确定这是否表明身份验证类型。 如何区分
我试图使用NTLM身份验证对我使用RestSharp的TeamCity进行REST调用。 IRestClient _client=new RestClient(_url); _client.Authe
我正在尝试使用需要 NTLM 身份验证的 API。此 curl 命令工作正常: curl -X POST --header 'Content-Type: application/json' --hea
我在公司 Internet 代理后面的 VMWare VPC 中运行程序 (Mathematica)。安装在该 VPC 中的各种程序(如 IE、Chrome、Excel、Word、Acrobat Re
我正在用java开发一个应用程序,以从交换服务器(版本10)获取电子邮件附件,我有Windows 7(32位)电脑。我的代码编译成功,但在运行时出错,说- May 20, 2013 5:58:46 P
我最近开始学习 C#。我试图用这种语言生成一个 NTLM 散列,但找不到为我执行此操作的函数。在 python 3.x 中,我将导入 hashlib 并使用 hashlib.new("md4", "H
我正在尝试创建一个应用程序,该应用程序使用用户名和密码连接到使用 NTLM 身份验证(不是我的,所以我无法更改身份验证方法)的网页,并返回页面的源代码,稍后我将使用它提取我需要的信息。 我的问题是身份
我有一个问题。当我尝试访问我的 Web 应用程序时出现此错误 Response header 'WWW-Authenticate' value of 'NTLM TlRMTVNTUAACAAAAAAA
我从调用 WCF 服务的 ASPX 页面收到以下错误。 The HTTP request is unauthorized with client authentication scheme 'Ntlm
尝试在 JavaMail 中使用 NTLM 连接到 Exchange 服务器。我可以连接到 SMTP,但不能连接 IMAP。我还可以通过 OS X Mail.app 应用程序使用相同的主机/用户名/密
我正在尝试从需要 NTLM 登录的 url 中提取信息。 我最初收到 401 错误,经过一些调整后能够拉出页面,说明我输入了无效凭据。 用户名和密码正确,但我无法通过无效凭据页面。 Lgn2.py:
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在运行 curl 命令,以便从 Linux 机器上的 Windows 2012 服务器获取信息。每次,我都会收到 NTLM 握手被拒绝的错误。以前遇到过这个问题吗?可以解决吗? 最佳答案 你试过
在 Visual Studio 2012 中,使用发布配置文件和 Web 部署可以大大简化部署。但是它仍然缺少一些东西,或者我可能还不知道如何使用它。 我更喜欢使用 NTLM 身份验证,而不将用户名和
我使用 Samba 来实现窗口认证。在我的 web.xml 我把这个 NtlmHttpFilter jcifs.http.NtlmHttpFilter jcifs.http.domainC
我是一名优秀的程序员,十分优秀!