案例:我想通过 API Manager 以多租户的方式暴露 API。希望我能解释我想要什么。所以实际上一个 API 密钥属于一个特定的租户。
示例:我想为 GetCustomers API 公开。因为我只想返回该租户的客户,如果没有租户作为参数(GetCustomers(租户)),我怎么能做到这一点?
- 是否可以让租户获得 API 密钥?
- 还有另一种方法可以实现这一目标吗?
问候罗杰
案例:我想通过 API Manager 以多租户的方式暴露 API。希望我能解释我想要什么。所以实际上一个 API 密钥属于一个特定的租户。
示例:我想为 GetCustomers API 公开。因为我只想返回该租户的客户,如果没有租户作为参数(GetCustomers(租户)),我怎么能做到这一点?
问候罗杰
如果我答对了,我想我可以将您的问题格式化如下,
您有一个公共 API,所有租户的所有用户都可以调用它。但是,每当属于某个特定租户的用户调用该 API 时,API 必须返回属于该特定租户的用户。
解决方案
您可以定义您的后端服务,该服务可以根据租户参数提取用户详细信息。请求命中 APIManager 时可以传递租户参数。为此,用户不需要传递他属于哪个租户。从 API 本身,您应该能够从地址标头中提取该值并将其传递给后端。
我认为以上是正确的实施方式。如果您不想将“租户”参数传递给后端,则需要为每个租户托管多个克隆的后端服务,以提取属于该租户的客户详细信息。这是一个糟糕的设计。