Active Directory和用户管理

时间:2015-03-27 10:25:03

标签: active-directory asp.net-identity adfs

我对LDAP和Active Directory非常陌生,我可能会理解完全错误。

我知道ASP.NET身份和表单身份验证(但是,我也很新)我的问题实际上是否可以使用某些功能,您可以使用表单身份验证(下面进一步说明)使用Active Directory。

我正在构建MVC Web应用程序,并且我想针对Active Directory对我的用户进行身份验证。这可以通过ADFS实现。在VS2013中使用ASP.NET标识时获得的模板使用被动身份验证。但是,是否可以不将此重定向到Active Directory域,而是为用户创建自定义登录页面?

是否也可以使用Active Directory进行用户管理,就像使用表单身份验证一样?我在考虑:

  • 用户可以注册的页面
  • 用户能够更改密码(我知道这可以通过ADFS实现,但用户可能无法登录。我希望他在登录时以自己的方式执行此操作制作页面。)
  • 登录新计算机应该要求输入电子邮件中指定的代码
  • 在应用程序中设置密码策略
  • ... (我可能忘记的其他事情)

如果Active Directory无法隐式使用这些内容,请告知如何配置应用程序以获取此功能(如果可能,使用Active Directory)。

非常感谢您提前帮助我!

编辑1: 为了让我的问题不要太开放,我可能最好从自定义登录页面开始。当我理解它时,使用ADFS验证用户的正常流程是:

  1. 用户尝试访问需要进行身份验证的应用程序的网页
  2. (被动)重定向到ADFS提供的登录页面 - >用户输入他的AD凭证
  3. ADFS返回令牌
  4. 令牌被发送到Web应用程序(ADFS信任)
  5. 当Web应用程序认为一切正常时,它会在用户的浏览器中存储身份验证cookie(我猜),并且用户可以访问该网页
  6. 我想要的是什么:

    1. 用户尝试访问需要进行身份验证的应用程序的网页
    2. 重定向到同一个Web应用程序的登录页面,用户可以在其中输入凭据
    3. 输入的凭据发送到ADFS(我猜)并返回一些内容(令牌?),其中包含有关登录是否成功的信息(此步骤之前可能会调用某些(自制)服务(一个Web API应用程序),多个客户端应用程序可以使用它来对同一目录进行身份验证)
    4. 当登录成功时,Web应用程序将cookie存储在用户的浏览器中,并且用户能够访问该页面
    5. 我不知道这是否有意义?我只是想知道使用Active Directory存储用户信息的公司如何仍然可以拥有自定义登录页面,注册页面和其他用户管理内容。 (或者他们不使用AD,但他们只拥有自己的数据库吗?)

1 个答案:

答案 0 :(得分:0)

通常,如果您需要自定义登录页面,则可以使用ADFS活动配置文件实现(例如WCF)进行身份验证。

用户配置不是ADFS的一部分。为此,您需要一个Identity Manager,例如PingFederate,OpenIDM。

如果您使用的是ADFS 2.0或2.1,则可以自定义页面(因为它们在IIS上运行)并添加这些功能或重定向到单独的网站。

您想要的大多数是OOTB AD功能。请参阅:Everything in Active Directory via C#.NET 3.5 (Using System.DirectoryServices.AccountManagement)

密码政策可能非常复杂。我不知道任何明确这样做的API。

如果您使用的是ADFS 3.0,那么这些都不是ISS,因此您几乎没有运气。