我正在编写一个需要多种形式的身份验证的应用程序。
应用程序需要支持对 Active Directory 的身份验证,但如果用户不在 Active Directory 中,则能够故障回复到 SQL 成员资格提供程序。我们可以根据提供的用户名在代码中处理 SQL Provider 的失败,因为用户名的格式与 Active Directory 用户名的格式不同。
这甚至可能吗?我的意思是,我可以使用会员资格并同时使用 ActiveDirectoryMembershipProvider 和 SqlMembershipProvider 还是我必须自己推出?
另一个额外增加的复杂性是,我想根据 Windows 身份验证自动将我的内部用户身份验证回 AD,但对不在我们内部网络上的用户或使用 SQL 提供程序的用户使用表单身份验证。
这些很可能是单独的服务器,一个是内部的,另一个是外部的,所以我有很多计划要做来弄清楚数据复制,以及如果 AD 用户访问外部服务器等,我将如何对其进行身份验证。
当我开始走这条路时,我想知道那里有什么想法。如果我不自己动手,我想做的事情甚至可能吗,或者有没有办法将它们融合在一起?
谢谢回复。
我最初问的原因是因为我能够在大约 7 年前使用 IIS 进行身份验证,然后将凭据传递回 Lotus Domino 服务器 Web 应用程序,从而使这个特定的 senerio 工作。如果用户未通过 Windows 身份验证/ISS 进行身份验证,则 Domino 将处理身份验证。这就是我在这里想要做的,但真的想不出一种让它在 IIS 中工作的方法。
至于您的其余答复,我认为您正在走我需要采取的方式。我已经考虑过这一点,并在我的脑海中反复折腾。无论如何,两台服务器上的应用程序都会有所不同,因为无论如何访问外部服务器上的数据都会受到限制。事实上已经有很多不同了,我可能只是将它们视为两个应用程序,因此不需要在同一个应用程序中使用两种类型的身份验证。
我正在考虑为外部服务器编写自己的身份验证/登录窗口的想法,如果用户尝试在外部服务器上使用他们的 AD 凭据登录,我将能够检测到并将它们重定向到内部服务器。如果他们不在本地网络或 VPN 中,他们将根本无法访问。这部分仍然有一些思考过程,所以我不确定。
作为一个额外的想法 - 有没有办法将足够的 AD 提取到 SQL 数据库中,以允许我使用他们的 AD 凭据从外部服务器对 SQL 数据库的用户进行身份验证,而不会产生任何安全问题?我希望我清楚地输入我的想法......
再次感谢!
蒂姆