首先,我将描绘我的项目:
对于我的实习船,我需要为现有系统添加功能 . 一旦用户通过oauth2授权,第三方客户端必须能够从AX Web服务访问数据 . 我知道我需要 Build 一个“代理Web服务”,客户端可以在其中进行调用并调用AX服务,但我对oauth2部分有点不确定 . 大多数教程和指南都是关于使用ASP.NET的Identity for facebook或google登录 . 我不需要,我需要使用现有的凭据,所以我需要自己创建oauth2服务 .
我发现很难找到关于此的教程,指南或解释 . 我理解oauth2以及需要做什么,但我以前从未做过这样的事情并且发现很难开始 . 我找到的最接近我需要的是github repo link,但解决方案没有 Build .
我想到的是 Build 一个ASP.NET MVC网站,客户(第三方)可以自己注册并获取他们的客户ID . 使用ASP.NET API,我想创建获取所需令牌和参数的API,然后访问Dyn AX服务 .
这是正确的还是我完全错了?任何有关构建您自己的oauth2服务器/服务的帮助或链接都会很好 .
4 回答
有一篇精彩的博客文章来自Taiseer Joudeh,详细的逐步说明 .
Part 1: Token Based Authentication using ASP.NET Web API 2, Owin, and Identity
Part 2: AngularJS Token Authentication using ASP.NET Web API 2, Owin, and Identity
Part 3: Enable OAuth Refresh Tokens in AngularJS App using ASP .NET Web API 2, and Owin
Part 4: ASP.NET Web API 2 external logins with Facebook and Google in AngularJS app
Part 5: Decouple OWIN Authorization Server from Resource Server
我也在努力寻找关于如何生成令牌部分的文章 . 我从来没有找到一个并写下我自己的 . 所以,如果它有帮助:
要做的事情是:
创建一个新的Web应用程序
安装以下NuGet包:
Microsoft.Owin
Microsoft.Owin.Host.SystemWeb
Microsoft.Owin.Security.OAuth
Microsoft.AspNet.Identity.Owin
添加OWIN
startup
类然后使用以下内容创建HTML和JavaScript(
index.js
)文件:OWIN
startup
类应具有以下内容:运行您的项目 . 令牌应显示在弹出窗口中 .
我正在研究同样的事情,偶然发现了identityserver,它在ASP.NET之上实现了OAuth和OpenID . 它与ASP.NET identity和Membership Reboot集成,并为实体框架提供持久性支持 .
因此,要回答您的问题,请查看how to setup an OAuth and OpenID server上的详细文档 .
Gmail:OAuth
转到link
使用您的Gmail用户名密码登录
点击左上角的google菜单
单击API Manager
单击“凭据”
单击“创建凭据”,然后选择“OAuth客户端”
选择Web应用程序作为应用程序类型,然后输入名称 - >输入授权重定向URL(例如:http://localhost:53922/signin-google) - >单击“创建”按钮 . 这将创建凭据 . 请记下
Client ID
和Secret ID
. 最后单击“确定”关闭弹出的凭据 .下一个重要步骤是启用
Google API
. 单击左窗格中的Overview .单击Social APIs部分下的
Google API
.单击“启用” .
这一切都来自谷歌的一部分 .
回到您的应用程序,打开
App_start/Startup.Auth.cs
并取消注释以下代码段使用您已创建的
Google API
凭据中的值更新ClientId
和ClientSecret
.运行您的应用程序
单击“登录”
您将在“使用其他部分登录”部分下方看到Google按钮
点击Google按钮
应用程序将提示您输入用户名和密码
输入gmail用户名和密码,然后单击“登录”
这将执行OAuth并返回到您的应用程序并提示您注册
Gmail
id .单击register将
Gmail
id注册到应用程序数据库中 .您将看到身份详细信息显示在正常注册的顶部
尝试注销并再次通过Gmail登录 . 这将自动将您登录到应用程序 .