【发布时间】:2021-04-08 07:26:27
【问题描述】:
使用kong,可以直接使用secure services using authentication。 Kong提供了几个插件来完成这项工作,例如basic authentication、key authentication、HMAC authentication、OAuth 2等。
授权后,如何将客户端的凭据(例如用户名)传递给服务?
如果 Kong 的身份验证机制发生变化,只需将请求标头传递给服务,这意味着服务需要更改获取客户端凭据的方式。这是我宁愿避免的。
插件可用于对请求执行转换,例如request transformer。这可能会留下执行任何自定义策略以传递凭据的能力。
我想知道是否已经有某种“标准化”机制可用。
【问题讨论】:
-
转发给服务的请求头中仍然包含授权信息。对于基本身份验证,您可以轻松地从中提取用户名。对于 OAuth2,它将包含一个访问令牌。通常,访问令牌包含用户名、全名、角色等。如果它是不透明的访问令牌,服务可以使用访问令牌从 OAuth 2 服务请求 Id Token 以及所有用户详细信息。
-
@Codo:当然,但这意味着如果身份验证机制发生更改,则将更改服务的策略以获取用户的凭据。我会更新问题,指出这个问题。
标签: microservices credentials kong