获取当前登录的AD用户的唯一标识符标记

时间:2010-07-12 23:11:07

标签: c++ windows active-directory single-sign-on intranet

我正在为我们的Intranet设置SSO,其想法是用户将使用其活动目录用户名和密码登录到他们的工作站。然后,一个小应用程序将在登录时运行,如果将其输入带有时间戳的数据库,则会向服务器发送一些唯一可识别信息,用户名和计算机MAC地址。然后,当用户访问内部网时,java applet会将用户的mac地址发送到服务器,并将其与数据库条目进行比较,以查看它是否在给定的时间范围内找到匹配项,如果确实如此,则会将用户签名并删除来自数据库的条目。

不幸的是我们的Intranet没有在IIS上运行,所以我不能使用NTLM进行身份验证,这样会更容易,但不能跨浏览器兼容,这是其中一项要求。 NTLM也不是一个选项,因为我们的Intranet只能以intranet.company.com的形式访问,据我所知NTLM不适用于该格式的地址。

现在好了。我目前正在使用C ++创建客户端身份验证应用程序,并且需要一种方法来获取一些唯一的标识符或令牌,以区分合法登录的Active Directory用户与那些获取应用程序并更改其本地用户名的用户给AD用户。

是的我知道这可能是错误的做法,但现在它似乎是唯一的选择。如果您有任何建议,请不要这样做,请告诉我。此外,我知道如果你能想出一种方法来修补那个漏洞,NTLM肯定会让我知道,它会产生巨大的安全漏洞。

1 个答案:

答案 0 :(得分:0)

AD只是微软对Kerberos的实现。如果Kerberos要创建此类权限票证,则其中一个核心功能。所以,在那方面你的解决方案根本不是黑客。这只是看起来像车祸的验证部分。

然而,我完全迷失了你所遇到的客户端问题。 AD或Kerberos的整个要点通常是您不能欺骗经过身份验证的用户。您只需向操作系统询问登录用户的票证。谁掌握了你的应用程序,或者他的本地用户名是什么并不重要。操作系统确切地知道谁登录。

相关问题