验证针对Active Directory的登录凭据(适用于工作站限制的用户)

时间:2014-06-04 00:12:40

标签: linux windows authentication active-directory ldap

前言:我做完了我的作业。问题和解答such as these ones似乎没有解决我问题的具体性质。我的google-fu显然不够强大,因为我使用的搜索条件都引导我使用各种解决方案,这些解决方案不包括工作站名称,也没有指定我正在检查的工作站名称。

背景:我在Debian上运行了一个Redmine服务器,它使用LDAP身份验证到本地Windows 2003 Small Business Server Active Directory。我的工作正常,效果很好。

...除了一名被限制从自己的工作站登录的用户外。

我认为这是一个简单的问题,即使用AD配置Samba加入域,然后只需将Linux机顶盒的NetBIOS名称添加到该用户可以登录的计算机列表中。遗憾的是,这不是真的。我已经验证了NetBIOS名称REDMINE存在于Windows 2003服务器上的域计算机列表中,我还验证了Samba服务器和Windows 2003服务器之间没有明显的问题。我不是在寻找针对AD或类似内容验证的Linux登录信息。

查看数据包捕获和Windows事件日志审核详细信息,当LDAP绑定尝试进入时,Windows 2003似乎默认使用AD的NetBIOS名称。我在事件日志中看到用户myusername的登录尝试对于工作站SERVERNAME,但使用正确的Redmine服务器IP地址:

Event Type: Failure Audit
Event Source:   Security
Event Category: Logon/Logoff 
Event ID:   533
Date:       6/3/2014
Time:       7:57:42 PM
User:       NT AUTHORITY\SYSTEM
Computer:   SERVERNAME
Description:
Logon Failure:
    Reason:     User not allowed to logon at this computer
    User Name:  myusername
    Domain:     DOMAINNAME
    Logon Type: 3
    Logon Process:  Advapi  
    Authentication Package: Negotiate
    Workstation Name:   SERVERNAME
    Caller User Name:   SERVERNAME$
    Caller Domain:  DOMAINNAME
    Caller Logon ID:    (0x0,0x3E7)
    Caller Process ID:  544
    Transited Services: -
    Source Network Address: redmine.server.ip
    Source Port:    47721

在Redmine的LDAP查询中没有任何地方查询中出现SERVERNAME,这就是为什么我确定这是来自Windows服务器的原因。如果我将AD服务器NetBIOS名称添加到此用户可以登录的允许工作站列表中,则Redmine的查询成功,用户可以登录Redmine。

已清理的绑定信息如下:

CN=Firstname Lastname,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domainname,DC=local

提供的密码显然也是正确的。返回的错误是有道理的,因为Windows确定我尝试从SERVERNAME登录而不是REDMINE:

W80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 531, vece

(代码531表示"不允许用户登录本机")

有没有人知道如何针对Windows 2003服务器创建LDAP登录查询,该服务器指定要检查登录的工作站?

1 个答案:

答案 0 :(得分:0)

在考虑了这个之后,我得出的结论是,这是一个糟糕的问题。

Windows 2003似乎混淆了“绑定到LDAP服务器”和“登录到工作站”的想法。当我使用受限用户的凭据绑定到AD时,AD服务器验证登录名和密码是否正常,但随后检查允许的工作站列表并发现AD服务器不在该列表中,因此它无法绑定。 / p>

绑定到AD服务器与登录AD服务器不同,这就是问题所在。我会问一个更适合这个场景的新问题。