微服务中的身份验证和授权
我最近在微服务上阅读了一些,尤其是AuthN和AuthZ。 大多数情况下,这一切都很有意义,我可以看到这一切应该如何工作。
对于我在玩的东西,我使用委托授权 - 所以我需要将令牌从客户端传递到服务,然后将相同的令牌从服务传递到服务。 我还在OAuth2服务上有一个端点,它将接受令牌并返回令牌的详细信息 - 用户ID,有效期的开始和结束,令牌有效的范围等。
我遇到的问题是 - 为了正确地发出令牌,需要与用户服务进行一些通信,以确保令牌所用的用户实际上是有效的。 并且为了验证令牌,需要与用户服务进行一些通信以确保用户仍然有效。 然而,为了安全地与用户服务进行通信以获取关于用户的详细信息,需要一个令牌来授予此访问权限。
我假设有一些关于如何解决OAuth2和用户服务之间的循环依赖的标准做法,但我还没有看到任何提及。 这是个常见的问题吗? 还是我错过了一些明显的东西?
(注意 - 现在我只实现了客户端凭证授予和资源所有者密码凭证授予,因为我只是在玩耍,看看它是如何工作的,而且他们更容易用cURL调用。我不知道这个虽然有所作为)
是的,这有点鸡和鸡蛋的问题。 不知道您对授权服务器有多少控制权,但解决此问题的一种方法是使用客户端证书保护对用户信息服务的调用。
另一种方法是将用户信息服务和授权服务器合并到一个服务中,并且不需要所有的呼叫。
链接地址: http://www.djcxy.com/p/22275.html