0

我在一家使用 Microsoft Active Directory 的公司工作。我们有一家为特定项目提供内部网站的外部公司。该网站在公司外部。外部站点的登录是用户的公司电子邮件。

我们想要一个系统,外部站点调用该组织的 AD 以验证电子邮件地址是否仍然有效或用户是否已离开公司。它应该是对 Active Directory 联合服务或某种 SAML 接口的简单调用。电话将是一个简单的请求“这是一封电子邮件,它有效吗?” 答案是是或否。

我们的 IT 部门试图告诉我们这太复杂了,我不相信他们。我认为他们只是不想这样做。

有谁知道创建一个允许外部服务执行上述查询的简单系统是多么容易。

4

2 回答 2

2

ADFS 并不打算这样做。但是,使用它的副产品将是您正在寻找的验证。

第一个问题是:您的应用程序的身份验证方法是什么?电子邮件和其他什么?密码?哪个密码?该应用程序是否保留用户/密码数据库?

ADFS 作为“身份提供者”工作,将对 AD 中的用户进行身份验证。ADFS 将提供您的应用程序可以使用的安全令牌。安全令牌中发送的部分信息很可能是(并且通常是)用户电子邮件地址(这就是为什么它是“副产品”的原因)。

为此,必须将应用程序更改为接受安全令牌(特别是 SAML 令牌)。如果应用程序是基于 .NET 的,那么通常使用 WIF(Windows Identity Foundation)来完成。

这种方法将是最优雅和最安全的,因为该应用程序会将验证用户的责任委托给这些员工的权限:AD。

应用程序--trusts--> ADFS --authenticates--> AD

设置 ADFS 等并不是很困难,但也不是很简单,而且可能不值得只为这个应用程序。还有其他更轻量级的替代品:像Identity Server这样的开源产品,或者像我工作的产品这样的产品。

现在,如果您需要做的只是验证电子邮件是否确实存在,那么最好的办法是向该地址发送一条验证消息,其中包含用户发回的一些唯一代码。这与许多常见 Web 应用程序中使用的方法相同。

于 2013-05-24T22:40:32.130 回答
0

同意@Eugenio 所说的一切-对身份验证有同样的疑问。

但是,如果您只是希望代码在 AD 中查询用户的电子邮件地址,您可以使用AD API 的.

于 2013-05-24T22:57:43.937 回答