编写我自己的自定义OAuth外部登录提供程序

时间:2016-01-29 19:53:19

标签: asp.net angularjs authentication oauth owin

我正在为我的工作开发一个登录界面。我需要实施第三方登录到我们的某个应用程序,然后将令牌保存在本地存储中,以便用户获得授权。

第三方应用程序相当于Facebook,Twitter,LinkedIn等。我有一些内部API方法和端点我可以调用并传入用户名/密码以通过我们的数据库进行身份验证。

问题: 有人可以指导我一个关于如何实现自定义外部登录提供程序的演练吗?我看到大量关于如何实现facebook,twitter等的文档。但没有一个用于自定义应用程序(例如您之前制作的应用程序)。

目前我正在使用此演示:http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/ + https://github.com/tjoudeh/AngularJSAuthentication(来源)。我打算'撕掉'谷歌/ FB并插入我自己的第三方登录。

关于如何实现这一点的任何建议?

1 个答案:

答案 0 :(得分:2)

“第三方”系统是您提到的现有身份验证API。如果要使用基于令牌的方案,则需要在现有系统前实现令牌管理层。该层将交换凭证(通过调用现有系统进行验证)以获取令牌。它还将负责验证已签发的令牌。

您的令牌图层将负责保留已发布令牌的列表,以用于撤销目的。

您可以使用像Kong这样的开源解决方案,而不是从头开始实现此层,而是使用各种插件。或者考虑一个SaaS产品,例如Stormpath,它可以将OAuth2功能添加到现有的.Net应用程序中。 (免责声明:我在Stormpath)工作。

我还撰写了以下文章,这些文章对于理解整体令牌架构非常有用:

Token Based Authentication for Single Page Apps (SPAs)

Build Secure User Interfaces Using JSON Web Tokens (JWTs)

希望这有帮助!