活动目录和用户管理
Active Directory and User Management
我对 LDAP 和 Active Directory 还很陌生,我的理解可能完全错误。
我知道 ASP.NET 身份和表单身份验证(但是,我对此也很陌生)我的问题是实际上是否可以使用表单身份验证可以使用的某些功能(进一步解释下面)与 Active Directory。
我正在构建一个 MVC 网络应用程序,我想根据 Active Directory 对我的用户进行身份验证。使用 ADFS 可以做到这一点。在VS2013中使用ASP.NETIdentity时得到的模板使用的是被动认证。但是,是否可以不执行此重定向到 Active Directory 域而是为用户创建自定义登录页面?
是否也可以像使用表单身份验证那样使用 Active Directory 进行用户管理?我在想:
- 一个用户可以自己注册的页面
- 用户可以更改他的密码(我知道使用 ADFS 可以做到这一点,但用户可能没有登录。我希望他在登录后使用自己的密码执行此操作-制作页面。)
- 在新计算机上登录应该要求输入电子邮件中指定的代码
- 在应用程序中设置密码策略
- ... (我可能忘记的其他内容)
如果 Active Directory 无法实现这些功能,请告知如何配置应用程序以获取此功能(如果 Active Directory 可能)。
非常感谢您对我的帮助!
编辑 1:
为了让我的问题不要太开放,我最好从那个自定义登录页面开始。当我很好地理解它时,使用 ADFS 对用户进行身份验证时的正常流程是:
- 用户试图访问需要对其进行身份验证的应用程序的网页
- (被动)重定向到 ADFS 提供的登录页面 -> 用户输入他的 AD 凭据
- ADFS returns 令牌
- 令牌被发送到 Web 应用程序(ADFS 信任)
- 当 web 应用程序认为一切正常时,它会在用户的浏览器中存储一个身份验证 cookie(我猜),用户可以访问该网页
我想要什么:
- 用户试图访问需要对其进行身份验证的应用程序的网页
- 重定向到同一 Web 应用程序的登录页面,用户可以在其中输入其凭据
- 输入的凭据被发送到 ADFS(我猜)并且它 returns 一些东西(令牌?)包含有关登录是否成功的信息(此步骤之前可以调用一些(自制)服务(Web API 应用程序),多个客户端应用程序可用于对同一目录进行身份验证)
- 登录成功后,Web 应用程序会在用户的浏览器中存储一个 cookie,用户可以访问该页面
不知道有没有道理?我只是想知道使用 Active Directory 存储用户信息的公司如何仍然可以拥有自定义登录页面、注册页面和其他用户管理内容。 (或者他们不使用 AD 而只是拥有自己的数据库?)
通常情况下,如果您想要自定义登录页面,您可以使用 ADFS 活动配置文件实现(例如 WCF)来进行身份验证。
用户配置不是 ADFS 的一部分。为此,您需要一个身份管理器,例如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,所以您很不走运。
这并不是我在这里的问题的真正答案,但如果有人对我最终所做的感兴趣:你可以阅读它(非常简短)。
我对 LDAP 和 Active Directory 还很陌生,我的理解可能完全错误。
我知道 ASP.NET 身份和表单身份验证(但是,我对此也很陌生)我的问题是实际上是否可以使用表单身份验证可以使用的某些功能(进一步解释下面)与 Active Directory。
我正在构建一个 MVC 网络应用程序,我想根据 Active Directory 对我的用户进行身份验证。使用 ADFS 可以做到这一点。在VS2013中使用ASP.NETIdentity时得到的模板使用的是被动认证。但是,是否可以不执行此重定向到 Active Directory 域而是为用户创建自定义登录页面?
是否也可以像使用表单身份验证那样使用 Active Directory 进行用户管理?我在想:
- 一个用户可以自己注册的页面
- 用户可以更改他的密码(我知道使用 ADFS 可以做到这一点,但用户可能没有登录。我希望他在登录后使用自己的密码执行此操作-制作页面。)
- 在新计算机上登录应该要求输入电子邮件中指定的代码
- 在应用程序中设置密码策略
- ... (我可能忘记的其他内容)
如果 Active Directory 无法实现这些功能,请告知如何配置应用程序以获取此功能(如果 Active Directory 可能)。
非常感谢您对我的帮助!
编辑 1: 为了让我的问题不要太开放,我最好从那个自定义登录页面开始。当我很好地理解它时,使用 ADFS 对用户进行身份验证时的正常流程是:
- 用户试图访问需要对其进行身份验证的应用程序的网页
- (被动)重定向到 ADFS 提供的登录页面 -> 用户输入他的 AD 凭据
- ADFS returns 令牌
- 令牌被发送到 Web 应用程序(ADFS 信任)
- 当 web 应用程序认为一切正常时,它会在用户的浏览器中存储一个身份验证 cookie(我猜),用户可以访问该网页
我想要什么:
- 用户试图访问需要对其进行身份验证的应用程序的网页
- 重定向到同一 Web 应用程序的登录页面,用户可以在其中输入其凭据
- 输入的凭据被发送到 ADFS(我猜)并且它 returns 一些东西(令牌?)包含有关登录是否成功的信息(此步骤之前可以调用一些(自制)服务(Web API 应用程序),多个客户端应用程序可用于对同一目录进行身份验证)
- 登录成功后,Web 应用程序会在用户的浏览器中存储一个 cookie,用户可以访问该页面
不知道有没有道理?我只是想知道使用 Active Directory 存储用户信息的公司如何仍然可以拥有自定义登录页面、注册页面和其他用户管理内容。 (或者他们不使用 AD 而只是拥有自己的数据库?)
通常情况下,如果您想要自定义登录页面,您可以使用 ADFS 活动配置文件实现(例如 WCF)来进行身份验证。
用户配置不是 ADFS 的一部分。为此,您需要一个身份管理器,例如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,所以您很不走运。
这并不是我在这里的问题的真正答案,但如果有人对我最终所做的感兴趣:你可以阅读它(非常简短)