可以通过互联网使用AD来验证用户吗?

时间:2009-09-15 04:23:04

标签: c# active-directory

现在我们有AD / Exchange来管理办公室现场的所有用户登录/电子邮件。每个人使用的主要应用程序都维护自己的登录帐户,并且所有用户都倾向于忘记两个登录中的至少一个登录信息。

我正在考虑的是使用AD对应用程序中的用户进行身份验证,以便他们在登录计算机后甚至不必登录应用程序。

问题是,有少量用户在场外工作(应用程序可以通过互联网工作),只需使用机器的本地帐户(这会导致自身的问题)。

我想知道的是,如果用户在异地工作,使用AD对现场用户进行身份验证仍然是一种选择吗?

2 个答案:

答案 0 :(得分:2)

对程序员提出的几乎所有问题的答案都是“是......”这是重要的省略号后面的内容。你可能不想做椭圆之后的事情。

根据您问题中的信息,我认为答案是“否”,但有几种情况我们可以将其更改为“是”。

如果AD帐户仅用于验证用户是否知道密码,那么您可以创建一个Web服务,在您的域中托管它,将其设置为使用Windows身份验证和SSL,修改应用程序以提示用户获取凭据,并使用这些凭据在Web服务中调用方法。在该场景中,成功调用Web服务意味着用户已通过身份验证。您可以使用用户的凭据从那里继续。

通过首先尝试使用用户登录的凭据调用Web服务,可以检测应用程序需要提示用户输入凭据的天气。如果此调用失败,则表示您需要提示用户。

不知道应用程序的其余细节但是意味着有很多情况下这还不够。

我做了一些与上面描述的非常类似的事情。我的情况恰恰相反:应用程序在互联网上运行但我希望在机器具有域成员资格的情况下更容易登录。

另外,在家工作的成员:他们是使用属于域的笔记本电脑还是使用未连接的机器?在这种情况下,您可以使用缓存凭据,但您应该在ServerFault上提出该问题。

答案 1 :(得分:1)

是的,你绝对可以做到。不过,这将是一项工作。

您的应用程序必须做的是自动查找它是直接连接到办公室局域网,还是远离办公室。或者你可以让用户告诉你,当然:-)

如果它在局域网上,没问题 - 您可以对AD进行身份验证。

如果它离开办公室,你可以例如在公司LAN上调用WCF服务,传递您的Windows凭据,并让它针对公司AD进行身份验证。如果您提供了正确的凭据集,那么您将进行身份验证并允许其工作 - 如果您不允许登录,则对WCF服务的调用将失败。

您可以使用Windows凭据几乎自动执行此操作 - 在这种情况下,“远程”用户仍然必须登录到您的域并使用他/她的正常Windows凭据;或者您可以通过网络将用户名/密码传递给WCF,甚至可以在远程用户的计算机上安装证书,然后WCF将映射到服务器端的AD帐户。

选项很丰富! :-)

马克