apigee 网关、authn 和 authz:REST API 调用另一个 REST API

问题描述

我们正在使用 apigee API 网关并公开一个 REST 端点。我们了解 apigee 支持 various options for securing 端点。

我们的用例是此 REST 端点应调用软件供应商提供的另一个 REST API。软件供应商有自己的身份验证和授权机制。基本上他们有用户和角色的概念。

我的问题是这种情况下的最佳实践是什么?我们应该在网关级别 authn 和 authz 还是在供应商 REST API 级别或两者兼而有之?

无论如何,在供应商 REST API 级别都没有转义 authn 和 authz。

请推荐。谢谢。

解决方法

就您而言,这首先取决于您是只是在供应商 API 前展示代理,还是您自己的 API 提供独特的服务,而供应商的 API 只是您的中间件可能做出的多个“调用”之一提供其整体价值。另一种看待它的方法是问:您的 API 端点的客户是您的唯一客户,还是他们真的只是供应商底层 API 的客户?如果这是您自己的唯一 API“产品”,您可以选择使用自己的 API 客户端 AuthN/AuthZ 层,或者如果您的端点实际上只是一个轻量级的抽象,您可以选择将凭据直接传递给供应商 API。 Net-net,这取决于您的端到端用例。