PCF中两个微服务之间的身份验证

时间:2019-03-22 13:37:52

标签: .net-core microservices pcf

是否有一种方法可以确保仅由serviceB(或一组列入白名单的服务)调用serviceA?所有服务都是独立的,因为它们是完全独立的,所以不经过服务网关。

有什么好的微服务模式可以跟进吗?

1 个答案:

答案 0 :(得分:0)

如果可能,请使用RFC 6749, 4.4. Client Credentials Grant(也称为Client Credentials FlowMachine-to-Machine (M2M) flow)。

  1. 定义理想情况下与serviceB的bounded context相关的有意义的范围。例如,如果serviceB具有用户管理功能,则可能类似于user:read;
  2. serviceA request an access tokenpassing scope as an optional argument
  3. 根据服务A的范围和api客户端标识符/机密,身份验证服务授予(或不授予)访问令牌
  4. serviceA使用访问令牌调用serviceB。 ServiceB verify if access token is valid and has the intended scope

请记住,还有其他方法可以完成此操作(例如,在网络级别上通过列入白名单的IP),但是OAUTH2是行业标准的授权协议,我想RFC 6749, 4.4. Client Credentials Grant可以满足您的需求。