给定用于身份验证的现有 LDAP 服务器,Windows 桌面能否根据 LDAP 或 Kerberos 对用户进行身份验证?
突然,昨天,我的一台 apache 服务器无法连接到我的 LDAP (AD) 服务器。我在该服务器上运行了两个站点,当用户登录到任一站点时,这两个站点都使用 LDAP 对我的 AD 服务器进行身份验证。两天前它一直运行良好。由于未知原因,截至昨天,它停止工作。错误日志只说:
auth_ldap authenticate: user foo authentication failed; URI /FrontPage [LDAP: ldap_simple_bind_s() failed][Can't contact LDAP server], referer: http://mysite.com/
Run Code Online (Sandbox Code Playgroud)
我想也许我的自签名 SSL 证书已经过期,所以我为 mysite.com 创建了一个新证书,但不是为服务器主机名本身创建的,问题仍然存在。我启用了调试级别的日志记录。它显示了与 LDAP 服务器的完整 SSL 事务,直到最后我收到“无法联系 LDAP 服务器”消息时,它似乎都没有错误地完成。我可以在这台服务器上从命令行运行 ldapsearch,我可以登录它,它也使用 LDAP,所以我知道服务器可以连接和查询 LDAP/AD 服务器。只有apache无法连接。
谷歌搜索没有结果,所以我在这里问。任何人都可以提供有关此问题的见解吗?
这是 apache 配置中的 LDAP 部分:
<Directory "/web/wiki/">
Order allow,deny
Allow from all
AuthType Basic
AuthName "Login"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
#AuthBasicAuthoritative off
AuthLDAPUrl ldaps://domain.server.ip/dc=full,dc=context,dc=server,dc=name?sAMAccountName?sub
AuthLDAPBindDN cn=ldapbinduser,cn=Users,dc=full,dc=context,dc=server,dc=name
AuthLDAPBindPassword password
require valid-user
</Directory>
Run Code Online (Sandbox Code Playgroud) 我们有一些依赖 Windows 身份验证的应用程序 - 几个启用了 AD 身份验证的 Web 应用程序,我们通常使用 Windows 身份验证连接到我们的 SQL 服务器。这通常可以顺利运行。但是,如果我们通过 VPN 连接到客户端站点,则效果不佳。
从开始菜单正常打开 SSMS,然后选择一个通常接受 Windows 身份验证的服务器,会显示一条消息:
登录失败。登录名来自不受信任的域,不能与 Windows 身份验证一起使用。(.Net SqlClient 数据提供程序)
如果我进入命令提示符并用于runas /user:domain\user启动 SSMS,我可以使用该 ssms 进程成功地对我们的 SQL 服务器实例进行 Windows 身份验证。
如果我查看任务管理器,ssms.exe(开始菜单与 runas)的两个副本都具有相同的用户,并且我看不到 procexp 中的进程之间存在明显差异。
如果我打开 IE 并浏览到任何需要经过身份验证的 Windows 用户的网站,我都会收到“你是谁”的提示,并且该对话框认为我就是 VPN 用户。我可以单击“使用另一个帐户”并以这种方式进行身份验证。
当我们使用 VPN 时,甚至 Outlook 也会提示输入用户名!
它正在影响我们的 Win7 和 Vista 机器。我们已经有一段时间没有 XP 盒了,但我不记得在 XP 上有这个问题,因为它的价值。
VPN 连接只是使用内置的 Windows VPN 连接,它们不是花哨的 cisco VPN 或任何类似的东西。
有谁知道如何在对我们域中的资源进行身份验证时告诉 windows 我想成为我的普通旧主域用户而不是 VPN 用户?哎呀,如果我尝试访问需要客户端 VPN 上的资源的 Windows 身份验证,我会对提示我“你是谁”的解决方案感到满意。 …
有谁知道 IIS7 的不同 Windows 身份验证提供程序是什么意思。有 3 个可用的提供者
NTLM 非常明显,我认为它的 NTLM 和 Negotiate 是 Kerberos 如果是这样,那么 Negotiate:Kerberos 是什么?
我们在 Apache 2.2.9(在 Debian 5.0、2.2.9-10+lenny7 中提供)中使用 mod_authnz_ldap 和 mod_authn_alias 来验证多个 Active Directory 域以托管 Subversion 存储库。我们目前的配置是:
# Turn up logging
LogLevel debug
# Define authentication providers
<AuthnProviderAlias ldap alpha>
AuthLDAPBindDN "CN=Subversion,OU=Service Accounts,O=Alpha"
AuthLDAPBindPassword [[REDACTED]]
AuthLDAPURL ldap://dc01.alpha:3268/?sAMAccountName?sub?
</AuthnProviderAlias>
<AuthnProviderAlias ldap beta>
AuthLDAPBindDN "CN=LDAPAuth,OU=Service Accounts,O=Beta"
AuthLDAPBindPassword [[REDACTED]]
AuthLDAPURL ldap://ldap.beta:3268/?sAMAccountName?sub?
</AuthnProviderAlias>
# Subversion Repository
<Location /svn>
DAV svn
SVNPath /opt/svn/repo
AuthName "Subversion"
AuthType Basic
AuthBasicProvider alpha beta
AuthzLDAPAuthoritative off
AuthzSVNAccessFile /opt/svn/authz
require valid-user
</Location>
Run Code Online (Sandbox Code Playgroud)
对于同时拥有 Alpha 和 Beta 帐户的用户,我们遇到了问题,尤其是当他们的 Alpha 帐户已过期(但仍然存在;公司政策是帐户的有效期至少为 1 年)。例如,当用户x(在Alpha中已过期,在Beta中为有效账户)时,Apache错误日志报告如下:
[Tue …Run Code Online (Sandbox Code Playgroud) active-directory ldap authentication apache-2.2 mod-authn-alias
我一直在 Asus N66U 路由器上使用 Shibby 的 Tomato 版本(64k NVRAM 版本)来运行 OpenVPN 服务器。
我很好奇是否可以将此 OpenVPN 服务器设置为在允许用户访问之前同时要求证书和用户名/密码。
我注意到在填写证书详细信息时有一个“挑战密码”条目,但每个人都说将其留空“否则”;我不知道为什么,我找不到解释。此外,我在谷歌上搜索了很多这个问题,并注意到人们在谈论 OpenVPN 的 PAM 模块以通过用户名/密码进行身份验证,但这似乎是一个非此即彼的选项;换句话说,我可以通过用户名/密码或证书强制进行身份验证。我想两者都需要。
这可能吗?如果是这样,如何?
我们的网络工程团队使用多台 linux 服务器进行syslog 收集、配置备份、tftp 等...
我们想在Cisco ACS 机器上使用 TACACS+作为我们的中央身份验证服务器,我们可以在这些 linux 服务器上更改密码和用户活动帐户。我们还需要回退到静态密码,以防 tacacs+ 服务关闭。
我们如何sshd在 CentOS 上针对我们的Cisco ACS tacacs+ 服务器进行身份验证?
注意:我正在回答我自己的问题
对于针对 Active Directory DC 进行身份验证的应用程序,显然最好将它们指向主域 DNS 记录而不是特定的 DC 以进行故障转移、负载平衡等。
对于那些迫使您对 DC 的 IP 进行硬编码的应用程序,最佳实践是什么?我们可以对负载均衡器的 IP 地址进行硬编码,这样即使一个 DC 出现故障,该应用程序仍然能够进行身份验证。有没有更好的选择?
我正在创建一个 Java 开源包,它可以轻松地将 HttpClient 3.1 连接到受 NTLm v1/v2 和 Kerberos 保护的资源。
我需要在现实世界的服务器上测试这个工具。是否有任何受 NTLM 或 Kerberos 保护的公开可用端点,我可以获得用户和密码以进行测试?
基本上我正在寻找类似用于 NTLM/Kerberos 的Browserspy 的东西。使用自签名证书的公共站点也有助于测试。
我正在尝试使用 nslcd(nss-pam-ldapd-sasl 包)从 FreeBSD 10.0 中的 Active Directory 设置身份验证,并希望允许 sAMAccountName 和 userPrincipalName 作为服务器中的有效登录属性。
我不知道是否可以使用此特定配置。
这是我的实际映射 /usr/loca/etc/nslcd.conf
# Do not allow uids lower than 1000 to login (aka Administrator)
nss_min_uid 1000
# Disallow disabled accounts to login
pam_authz_search (!(userAccountControl:1.2.840.113556.1.4.803:=2))
#filter passwd (&(objectClass=user)(!(objectClass=computer)))
#map passwd uid sAMAccountName
filter passwd (&(objectClass=user)(userPrincipalName=*)(!(objectClass=computer)))
map passwd uid userPrincipalName
map passwd uidNumber objectSid:S-1-5-21-NULL-NULL-NULL
map passwd gidNumber primaryGroupID
map passwd gecos displayName
map passwd homeDirectory "${unixHomeDirectory:-/home/$sAMAccountName}"
map passwd loginShell "${loginShell:-/bin/tcsh}"
filter group (objectClass=group)
map group cn sAMAccountName
map …Run Code Online (Sandbox Code Playgroud)