我是否需要oauth来进行基于访问令牌的身份验证

时间:2014-06-22 20:29:50

标签: asp.net-web-api asp.net-identity thinktecture-ident-server

我有一个单页面应用程序,用于非/移动html5浏览器,使用asp.net web api从RESTful HTTP API获取数据。我们在Windows服务中使用OWIN自托管运行。

我不想要基于cookie的身份验证。我想对用户进行身份验证,并为他提供一个基于json的访问令牌及其声明/权限,以便在UI中编辑/创建/删除/显示某些内容。

我不需要外部登录提供程序。我们的用户将使用用户名和密码进行身份验证,而不是使用谷歌电子邮件...

现在我问自己,我应该去方向thinktecture和identyserver,或asp.net身份或... OWIN和ExternalBearer身份验证,我迷失在这里。

根据我的信息,您的建议是什么?

1 个答案:

答案 0 :(得分:0)

IdentityServer适用于您有多个应用程序并希望它们针对单个STS进行身份验证的情况,基本上如果您需要SSO。您描述的方案是由OAuth在IdentityServer中实现的。也就是说,您定义了希望使用IdentityServer进行身份验证的应用程序,然后创建OAuth客户端以获取访问该应用程序的访问令牌。如果情况并非如此,那么您可能最好避免引入第三方组件来完成这项工作的复杂性。我们正在使用IdentityServer来验证3个不同应用程序2个SPA和MVC应用程序的用户。此外,在这种情况下,您真的无法分离OWIN和ASP.NET身份。 OWIN中间件将为您提供令牌,它将使用ASP.NET Identity作为用户存储库来对用户进行身份验证,因此OWIN只负责提供令牌并使用ASP.NET Identity对用户进行身份验证。