gpt4 book ai didi

asp.net - 如何将 AD 身份验证 + SSO 与现有 Forms 身份验证的 Saas Web 应用程序集成

转载 作者:行者123 更新时间:2023-12-02 14:12:04 24 4
gpt4 key购买 nike

我们正在 IIS 7.5 公共(public)服务器上使用表单例份验证运行 Saas ASP.NET 3.5 Web 应用程序,为数千名用户提供 protected 内容。我们还有一些运行 ASP.NET MVC 2 的子应用程序。

用户名和密码存储在我们的数据库中,每个用户都有附加的角色和组,并定义了特权和访问权限。

现在,我们还被要求通过 Active Directory 实现简单的 SSO 登录,以便用户无需输入两次用户名和密码即可登录。这些用户将来自不同的网络和域。

不应将用户从我们的服务器“同步”到 LDAP 服务。我们不确定是否需要与 LDAP 进行任何通信,因为所有用户都将在我们的系统中创建并维护。我们的大多数用户将使用表单例份验证。

从现在开始,我们不确定哪条是最好的选择。对于我们的场景,“最佳实践”的继续方式是什么?

最佳答案

简单的答案是 SAML。它被认为是“最佳实践”,许多大型 SAAS 提供商都支持它。

SAML 协议(protocol)定义了多个系统之间的单点登录流程。它使用证书在系统之间建立信任。您的应用程序接受包含来自其他系统的属性(用户 ID、姓名、电子邮件地址等)的断言。您的应用程序会将用户映射到您的用户存储中。

在 .NET 世界中,有多种选择。您可以找到一个实现 SAML 的库(ComponentSpace 有一个)并将其挂接到 ASP.NET 身份验证中。您可以使用 Windows 识别框架 (WIF) 创建自己的框架。这是大量的 WIF 视频 http://www.cloudidentity.com/blog/2010/06/23/ALL-WILL-BE-REVEALED-7-HOURS-RECORDINGS-FROM-THE-WIF-WORKSHOPS/ 。您可以尝试IdentityServer http://thinktecture.github.io/

根据您的应用的安全程度,您可以选择使用简化方法从受信任网络传递用户 ID 的简单选项。我见过一些应用程序允许通过 URL 参数或表单字段发送用户 ID。当然,这是非常不安全的,并且您要承担更多风险,因为两个网络之间的信任不是通过加密方式强制执行的。您可以通过检查引用字符串或 IP 地址(例如,如果您可以隔离公司网络的 IP 范围)来稍微缓解这种情况。但您仍然容易受到欺骗,因为任何用户都可以通过简单地替换 HTTP 请求中的用户 ID 来冒充其他人。

它可能无法完全回答您的问题,但希望能为您指明正确的方向。

关于asp.net - 如何将 AD 身份验证 + SSO 与现有 Forms 身份验证的 Saas Web 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com