尝试使用资源所有者密码授予

时间:2019-07-28 10:54:26

标签: rest oauth identityserver4 openid-connect

.net框架中有旧版应用程序,它们具有各自独立的身份验证机制,该机制通过数据库来验证凭据并生成访问令牌。现在,我们尝试使用Identity Server生成访问令牌,并尝试使用此令牌实现单点登录。

由于我们所有的客户端应用程序和api资源都在内部,因此我们打算在所有应用程序之间共享此令牌。 用户登录的Web应用程序将凭据传递给rest api。然后,其余api与IDentityServer4对话(使用资源所有者密码授予)以进行身份​​验证并获取访问令牌。其余api将此令牌返回给Web应用程序,然后将其传递给另一个Web应用程序,该Web应用程序然后尝试访问另一个流式API。现在,流式api需要使用IS4验证令牌,然后才能访问Web app2。 我们面临的问题是:

1)访问令牌的有效期有限,在此之后它将无效。 Web app2无法刷新访问令牌,因为只有令牌的发起者(rest api)才可以这样做。

2)即使rest api会在使用到期令牌时要使用刷新令牌来刷新访问令牌,也会授予新的访问令牌,该令牌不同于与其他客户端共享的旧令牌。 Web app2有什么方法可以使令牌最初最初授予其余api的令牌保持活动状态。

我尝试刷新Web应用程序2上的令牌,但失败了,因为它与拥有令牌的客户端不同。

我知道这不是使用IS4的最佳方法,理想情况下,客户端应用应该与IS4对话并通过IS4进行身份验证,并获得访问api和身份资源的授权,但由于我们不希望这样做若要一次更改所有应用程序,我们正在尝试使api资源与IS4对话以生成令牌。

有什么方法可以保持相同的访问令牌有效,直到被发起方客户端吊销?

0 个答案:

没有答案