OAuth2 REST API .NET Standard类重定向URL?

时间:2018-08-08 12:20:03

标签: c# .net oauth-2.0

我正在创建一个.NET Standard类,该类将向REST API连接信息提供公共可用API的信息。假设这是一个.NET类-供不同的前端使用,并且其中某些前端可能没有“重定向URL”来捕获由以下操作返回的访问令牌使用给定的公共REST API进行授权:

  1. 有没有一种方法可以从公共REST API中获取访问令牌而无需重定向URL? (作为示例,它可能是前端的Windows控制台应用程序-并非总是Web应用程序)
  2. 有人有样品课吗?我会以为这是一个直接的类,可用作构建基块,但在GitHub上找不到简单的.NET Standard类中代表基本OAUTH2工作流程的任何内容。 (我不介意构建自己的模型-一旦我得到了#1的答案,这似乎就很简单了)

我目前正在使用Postman进行实验,但现在已经准备好构建一些.NET代码...注意:我并没有尝试构建自己的OAUTH服务器-只需连接到公共REST API

2 个答案:

答案 0 :(得分:0)

无论环境如何,OAuth2始终需要重定向URL。对于非Web应用程序,此方法的处理方式是使用自定义url方案并捕获该URL方案,或捕获在客户端浏览器窗口内(对于台式机/移动应用程序)执行的导航事件,以捕获其重定向至并提取的URL。这样的令牌。

答案 1 :(得分:0)

当您使用oAuth2的授权码授予类型或隐式授予时,会使用RedirectURI,而身份验证和授权是由第三方服务器完成的(例如:使用Google身份验证进行stackoverflow)。如果您使用的API使用的是密码凭据或客户端凭据授予类型,那么通常不需要redirectURI。

这是有道理的,因为一旦第三方网站(例如google)显示登录屏幕,一旦用户通过身份验证,就应该知道流程何时返回。

如果您没有前端,则意味着您必须捕获并发送最终用户的用户名和密码才能将其作为REST调用发送,这可能违反安全策略。

另请参阅:How does a mobile app authenticate with a backend API if the user signs in through social logins?