明确的dot.net单点登录解决方案 - 开发,窃取还是购买?

时间:2009-04-16 22:42:58

标签: .net single-sign-on

问题:在我们的环境中,我们有十几个应用程序分散在十几个服务器上。某些应用程序使用一次性表单/基于数据库的登录进行保护。某些应用具有在web.config中定义的权限。某些应用程序具有文件夹级NTFS权限集(一些具有域用户帐户,一些具有外部用户的本地用户帐户)。不用说,这绝对是一团糟。

SSO解决方案肯定是有序的,但是我应该构建一个,利用现有的FOSS,或购买一个(如果是的话,哪些?)

我需要能够

  • 通过表单登录进行一次身份验证,然后登录令牌将自然地从服务器传送到服务器
  • 混合并匹配域帐户(首选)并为外部用户创建数据库表帐户
  • 具有集中的角色/权限管理
  • 在用户使用AD /域帐户进行身份验证的情况下,使用同一帐户允许他们使用的任何应用程序通过集成身份验证连接到数据库
  • 门户网站会很好

如果有人提供方向,我会非常感激。

3 个答案:

答案 0 :(得分:2)

ISA Server 2006可能正是您所需要的。 (大致)。
请参阅:http://www.microsoft.com/forefront/edgesecurity/isaserver/en/us/default.aspx

这可以支持基于表单的身份验证,以及针对活动目录的SSO。

这需要对现有系统进行一些标准化,但我更喜欢这种方式,自己编写。

关于批评:

  • ISA Server 2006可以做到这一点。
  • 我不完全确定你的第一部分是什么意思,但是你之后提到AD使用,我建议你将所有安全性整合到Active目录中,包括外部用户和权限,并将其作为主要用途管理它们的工具。
  • 见上文。
  • 这很好,你只需要相应地配置你的IIS / web.config。
  • 不确定是否要创建门户网站,或者您是否希望该工具使用门户网站作为其UI?

答案 1 :(得分:2)

NoCarrier,我假设您正在使用.NET平台?

如果是这样,我可以建议您自己担任角色。编写一个程序集,它包含各种身份验证要求;在共同的抽象下暴露它们。 IPrincipal很常见,或者(可以说是忙碌的)AuthenticablePrincipal ABC可能很合适?

根据经验,我建议您尝试将权限基础架构迁移到通用技术。如果你已经拥有它,AD可能是最好的。如果是这样,请继续阅读:

对于AD集成,请查看System.DirectoryServices.AccountManagement.PrincipalContext

我怀疑,

ValidateCredentials对你特别有用。从PrincipalContext您可以实例化UserPrincipal,其中包括权限请求,我假设(希望)满足您构建自定义门户的许多要求。

答案 2 :(得分:1)

我先说.. 不要偷它!!

我相信你会得到更完整的答案,但简而言之,从长远来看,你自己开发这个问题看起来会更好。你支持一个混乱的产品,以至于没有现成的产品(据我所知)真的打算处理。

通过这种方式,您将能够逐步将系统发展为更好,更强大的系统。添加新应用程序?设计它来做这次正确的事情。我没有看到更好的选择/现有产品来实现这一目标。

相关问题