我想使用第三方系统在使用[Authorize]属性命中Controller或ApiController时对用户进行身份验证,但我真的不想创建OWIN要求的关联用户和登录为了创建保持用户会话授权的cookie,因为我们的第三方系统已经在跟踪它。
通常情况下,您将OWIN登录映射到外部登录,但我们的系统按原样与第三方系统紧密集成,原因有很多(我赢了)进入)我们不想这样做。
是否有一种简单的方法可以使用开箱即用的ASP.NET MVC5,允许您对另一个系统进行身份验证,然后将会话标记为已验证,而无需在OWIN中查找/注册它们?
对不起,如果这还不是很多。如果没有实施我们自己的IAuthenticationManager,我似乎没有任何方法可以解决这个问题,但我甚至不确定我会在哪里开始这样做。
感谢您提供的任何帮助。
答案 0 :(得分:1)
我相信OAuth是您开箱即用的唯一ASP.NET SSO支持。如果您详细说明第三方认证系统的性质,将会有所帮助,因为您需要与它集成以提供SSO体验。
以下是一些博客文章,解释了如何创建自定义OWIN身份验证中间件,这似乎是根据外部系统中的一些信息(标头,cookie,令牌)设置ASP.NET身份所需要做的事情等)。我使用第二种方法与CA SiteMinder(商业Web身份验证产品)集成。
答案 1 :(得分:0)
我最终通过创建自己的IUserStore实现及其包含第三方系统的关联类来解决这个问题。