使用OWIN和第三方系统在ASP.NET MVC 5中进行身份验证,而无需存储凭据

时间:2014-05-20 15:11:46

标签: c# authentication forms-authentication asp.net-mvc-5 owin

我想使用第三方系统在使用[Authorize]属性命中Controller或ApiController时对用户进行身份验证,但我真的不想创建OWIN要求的关联用户和登录为了创建保持用户会话授权的cookie,因为我们的第三方系统已经在跟踪它。

通常情况下,您将OWIN登录映射到外部登录,但我们的系统按原样与第三方系统紧密集成,原因有很多(我赢了)进入)我们不想这样做。

是否有一种简单的方法可以使用开箱即用的ASP.NET MVC5,允许您对另一个系统进行身份验证,然后将会话标记为已验证,而无需在OWIN中查找/注册它们?

对不起,如果这还不是很多。如果没有实施我们自己的IAuthenticationManager,我似乎没有任何方法可以解决这个问题,但我甚至不确定我会在哪里开始这样做。

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

我相信OAuth是您开箱即用的唯一ASP.NET SSO支持。如果您详细说明第三方认证系统的性质,将会有所帮助,因为您需要与它集成以提供SSO体验。

以下是一些博客文章,解释了如何创建自定义OWIN身份验证中间件,这似乎是根据外部系统中的一些信息(标头,cookie,令牌)设置ASP.NET身份所需要做的事情等)。我使用第二种方法与CA SiteMinder(商业Web身份验证产品)集成。

答案 1 :(得分:0)

我最终通过创建自己的IUserStore实现及其包含第三方系统的关联类来解决这个问题。