Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 关于跨平台和域站点的SSO解决方案的建议_Asp.net Mvc_Single Sign On_Dotnetopenauth_Wif - Fatal编程技术网

Asp.net mvc 关于跨平台和域站点的SSO解决方案的建议

Asp.net mvc 关于跨平台和域站点的SSO解决方案的建议,asp.net-mvc,single-sign-on,dotnetopenauth,wif,Asp.net Mvc,Single Sign On,Dotnetopenauth,Wif,对于如何为我正在承担的项目构建SSO解决方案,我现在感到有点不知所措。我知道我需要一个集中的登录站点,但是,我想知道我应该使用什么样的框架来实现这一点。我一直在阅读Windows身份基础(WIF),但是缺少文档和代码示例是相当令人失望的。DotNotOpenAuth听起来比WIF在社区中有更多的使用,但是,我不确定这是否是适合我使用的框架,因为我不会让第三方帐户用于登录 还需要考虑多个用户数据存储;active directory和SQL Server数据库 我真的不在乎我使用什么样的框架,只要

对于如何为我正在承担的项目构建SSO解决方案,我现在感到有点不知所措。我知道我需要一个集中的登录站点,但是,我想知道我应该使用什么样的框架来实现这一点。我一直在阅读Windows身份基础(WIF),但是缺少文档和代码示例是相当令人失望的。DotNotOpenAuth听起来比WIF在社区中有更多的使用,但是,我不确定这是否是适合我使用的框架,因为我不会让第三方帐户用于登录

还需要考虑多个用户数据存储;active directory和SQL Server数据库

我真的不在乎我使用什么样的框架,只要它简单直观;我不想要一个过于复杂的解决方案。文件和样品也是一个加号!我已经有创建自定义角色提供者和成员提供者的经验;这是轻而易举的事,很容易做到

下面是我正在处理的结构的一个非常快速的视觉效果:


看看SAML。它旨在解决SSO问题。您可能还需要查看OpenID

还有一些企业产品,比如CA Site Minder或IBM Tivoli,用于此类if产品。它们并不便宜,因为为此构建自定义解决方案将是一项了不起的壮举。

参考:和。那里有WIF样品


就您想要实现的目标而言,ADFS v2.0将为您提供大部分帮助,但它只能针对AD进行身份验证。对于SQL server,请使用ADFS和IdentityServer,然后将其联合起来。

如果您是基于.NET的,那么.NET 4.5(包括WIF)就是最佳选择


但框架将是您最简单的问题。建立这样的安全基础设施是很困难的。从nzpcmad的答案出发,看看这本书和Identity server。

就跨平台而言,往往是领先者。有许多实现(java、php、perl)。正如Dominick(@leastprivilege)所提到的,如果每个应用程序都是基于.Net的,那么WS-Fed-via就是一个不错的选择。(顺便说一句,当谈到WIF时,多米尼克是一个男人——如果你打算探索这条路线,一定会点击他的博客和论坛)

OpenId和OAuth是您将听到的替代方案。它们的安全性稍差(信任在用户而不是基础设施中),您将发现您必须构建一个提供商,以便支持使用自己的用户存储登录


无论你选择哪条路线,都要做好大量阅读和学习的准备。查看上面的wikipedia文章,了解这些技术的工作原理,不要害怕提问。

不确定这篇文章是否属于这里,但无论如何,我过去也曾处理过类似的问题,我们将其用作基础。代理如何在这里提供帮助?