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



前言:我做了功课。诸如此类的问题和答案似乎并没有解决我问题的具体性质。我的google-fu显然不够强大,因为我使用的搜索词都导致我找到了各种解决方案,这些解决方案不包括工作站名称,也没有办法指定我正在检查的工作站名称。

背景:我有一个运行在Debian上的Redmine服务器,它对本地Windows 2003 Small Business server Active Directory使用LDAP认证。我有这个工作很好,它工作得很好。

…除了一个用户被限制从他自己的工作站登录。

我认为这将是一个简单的问题,配置Samba使用AD加入域,然后只需将Linux机器的NetBIOS名称添加到该用户可以登录的机器列表中。不幸的是,事实并非如此。我已经验证了NetBIOS名称REDMINE存在于Windows 2003服务器上的域机器列表中,并且我还验证了Samba服务器和Windows 2003服务器之间没有明显的问题。我不是在寻找Linux登录来验证AD或类似的东西。

查看数据包捕获和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 AUTHORITYSYSTEM
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表示"不允许用户登录此机器")

有没有人知道如何创建一个LDAP登录查询对Windows 2003服务器指定哪个工作站检查登录?

仔细考虑后,我得出结论,这是一个不好的问题。

Windows 2003似乎混淆了"绑定到LDAP服务器"one_answers"登录到工作站"的概念。当我用受限用户的凭据绑定到AD时,AD服务器验证登录名和密码是否正确,但随后检查允许的工作站列表,发现AD服务器不在该列表中,因此绑定失败。

绑定AD服务器与登录AD服务器是两回事,这就是问题所在。我要问一个更适合这个场景的新问题。

最新更新