OAUTH-实施authorization_code工作流程

时间:2019-09-06 09:50:23

标签: asp.net-mvc

我已经实现了oauth工作流程以获取访问权限并刷新令牌。 OAuthAuthorizationServerProvider和AuthenticationTokenProvider的自定义类已经就位并且可以正常工作。

我正在尝试添加“单点登录”功能(以通过我们的系统提供对第三方的访问),但是我不确定应该如何完成操作或是否缺少某些功能。

这是我要实现的工作流程:

  1. 第三方调用/ api / Account / ExternalLogin
  2. 用户将获得一个登录页面,在该页面中输入凭据
  3. 通过/ token调用验证用户(就像他们试图获取访问令牌一样)
  4. 第三方使用授权码呼叫/ token以获取access_token

我在第3步和第4步之间丢失了一些内容。当验证用户时,您会获得一个access_token,但您应该使用授权码将用户重定向到第三方url,以便第三方系统可以获取access_token。那是我不明白的。

1 个答案:

答案 0 :(得分:0)

好的,所以工作流程是这样的(如果我没记错的话!):

客户端需要在您身边进行某种设置,因为您需要知道将授权代码发送到哪个URL。

用户转到您的授权页面并输入其用户名/密码。如果一切顺利,您将发出授权代码,然后将用户重定向回其URL,并在URL中传递代码。

此客户端URL如下所示:https://www.client.co.uk/authcode_endpoint?code=blah

目前,您的工作已经完成。

接下来,客户端将在他们的系统上收到此代码(因为您调用了他们的URL),现在可以向您发出另一个呼叫,以将代码交换为令牌,然后重复该过程。

您将它们发送回另一个URL:https://www.client.co.uk/authtoken_endpoint?token=blah

现在,他们可以发出更多呼叫以执行所需的操作。

类似这样的事情应该很简单,您基本上就拥有了一个应用程序与应用程序进行通信。必须已经有库为您提供了这种工作流程。