实现单点登录

时间:2013-04-02 15:15:30

标签: wordpress single-sign-on

我正在开发2个Web应用程序,一个是在WordPress上开发的,另一个是在Asp.net MVC中开发的。我们允许FB,Google Id从两个应用程序登录。

在WordPress中开发的网站,用户可以使用FB Id登录该网站,点击链接我在WordPress网站的Iframe中加载我的asp.net mvc网站。

当用户已经在WordPress网站登录时,我希望用户身份验证和授权将使用从Wordpress网站传递到asp.net网站的一些令牌完成。 目前我正在传递加密的网址,我正在传递一些信息。我不确定,这是一种标准/推荐方式。

我认为有一些标准来解决这个问题。我想知道。

2 个答案:

答案 0 :(得分:1)

WP用户在技术上不通过WP验证,而是通过FB或Google验证。您需要做的就是让您的ASP.NET MVC应用程序接受FB或Google身份,SSO将“正常工作”。您不需要将任何内容从WP传递给ASP.NET。

FB和Google的运作方式略有不同,但两者都支持OAuth(和OpenId)。在.NET应用程序中,您可以使用的一个库是DotNetOpenAuth(已经有MVC4)。或者,您可以依靠第三方服务来处理对Google / FB(以及可能的其他人:twitter,linkedin等)的身份验证。此第三方服务在技术上被称为“联盟提供商”(FP),实质上是您的应用程序与其他身份系统之间的代理:

WP   -+          +-> FB
      |          |     
.NET -+ --> FP --+-> Google 
...   |          |

app3 -+          +-> Others

此模型的优点是您可以在以后更改身份提供程序而不会影响您的应用程序,并且您可以添加应用程序而无需在所有身份提供程序中注册它们。

一种此类服务是Windows Azure Active Directory,它与FB和Google开箱即用。另一个是Auth0。 (完全披露:这是我工作的地方)。

答案 1 :(得分:0)

SAML(安全断言标记语言)是一种广泛采用的技术,可以在两个不同的域/网站之间进行单点登录。有关更多信息,请访问http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language。另一种受社交网站欢迎的技术是OAUth。有关更多信息,请访问http://en.wikipedia.org/wiki/Oauth。 FB开发者页面也有关于OAUth的优秀信息