2017-04-14 36 views
0

我想在我的.NET MVC应用程序中调用Workday REST API,并且遇到了oAuth 2.0方面的问题。虽然在我的情况下,我特别谈论Workday,但我认为我不了解的可以应用于任何支持oAuth 2.0的API。我正在尝试使用Authorization Code Grant类型。在.NET MVC中使用oAuth 2.0消耗Workday REST API

我是OAuth 2流的理解如下:

1)我发送一个GET请求到authorize端点

2)用户必须登录使用他们的凭据

3)此时,响应从API发送,授权代码授权位于响应

4)现在我可以发出POST请求来交换访问令牌的授权码

5)我响应与发送回一个访问令牌

6)现在,我可以自由地使用该访问令牌才能GET请求

概念我明白这只是罚款,但在技术上,我得到绊倒从步骤1移动到步骤2:

我假设我从我的服务器(因为CORS策略不会允许它来自我的前端)在步骤1中的GET请求。在这种情况下,我注意到我从api得到的响应是html和登录页面。 什么是一个典型的方法中,然后,用于使该HTML到前端,具有用户登录,然后移动到步骤3.

此外,有一个称为Redirect URL在API客户端配置字段,我假设API将以授权代码授权发送响应,我也假设应该是我的控制器上的一个操作,但是如何在我的页面上获取并使用该响应?

我希望这一切都有道理。

我似乎无法绕过我的头。

回答

0

两个授权支持工作日REST API流是:

  • 隐式许可
  • 授权代码准予

并且每个授权流程可以使用任一类型的接入令牌的:

  • 无记号令牌
  • MAC令牌

您将使用您在注册客户端(使用WD上的注册API客户端任务)时指定的授权流和令牌类型。

初始授权请求,当前用户将与租户登录页面呈现,如果尚未登录,并且将与同意的页面呈现,问到批准或拒绝访问到Workday资源,如果首次使用客户端。 从此之后,您的API客户端将有权访问Workday资源,因为该批准将获得批准。您不应该重新批准该赠款。

基本上这将是一个一次性的练习来创建您的授权流程,并从那时起,您可以在您的请求标题中使用您的令牌。

强烈建议您通过OAuth的完整文档WD阿比这里https://community.workday.com/rest/oauth

至于重定向URI阅读,你可以在这里阅读更多的它是什么,为什么有必要https://tools.ietf.org/html/rfc6749#section-3.1

+0

谢谢你的答案,虽然我的问题是真正问如何从步骤1转移到步骤2 - 将WD返回的HTML传递到我的前端以实际创建登录页面 – blubberbo