我有一个后端 API 的 Apigee 代理。如果我没有为 API 定义任何资源,我的代理只是充当传递。我如何才能在默认情况下阻止所有路径,除了那些我通过定义为资源明确允许的路径?
例如,我有 20 个域对象和 4 个 CRUD 方法。那是80个潜在资源。我只想让我的开发人员访问其中的 10 个资源。如何轻松阻止对其他 70 人的访问?
我想我要问的是如何采取最小权限的方法将我的后端服务暴露给我的开发人员?
我有一个后端 API 的 Apigee 代理。如果我没有为 API 定义任何资源,我的代理只是充当传递。我如何才能在默认情况下阻止所有路径,除了那些我通过定义为资源明确允许的路径?
例如,我有 20 个域对象和 4 个 CRUD 方法。那是80个潜在资源。我只想让我的开发人员访问其中的 10 个资源。如何轻松阻止对其他 70 人的访问?
我想我要问的是如何采取最小权限的方法将我的后端服务暴露给我的开发人员?
另一种方法基本上是使用 API 产品、开发人员和开发人员应用程序来控制访问。请按照本文档进行基本了解:http ://apigee.com/docs/gateway-services/content/overview-1 。如果您需要任何帮助,请告诉我。
谢谢,阿肯德拉
定义一个无效路径来捕获这些请求并使用以下定义引发故障策略:
<Flows>
<Flow name="Purchase Item Details">
<Description/>
<Request>
<Step>
</Step>
</Request>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/{purchase_id}") and (request.verb = "GET")</Condition>
</Flow>
<Flow name="Invalid Path"> <!-- THE MAGIC STARTS HERE -->
<Description>Invalid Path</Description>
<Request>
<Step>
<Name>raisefault-invalidpath</Name> <!-- RIGHT HERE -->
<FaultRules/>
</Step>
</Request>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET") <!--*** RIGHT HERE *** --></Condition>
</Flow>
</Flows>
它的工作方式是它会尝试从“无效路径”流中捕获上面列出的资源,在上面的示例中:它会尝试匹配 /basepath/{purchase_id},然后如果没有找到资源,第二个流将通过引发故障并将响应返回给客户端来充当所有问题。
您应该能够通过使用 API 资源来做到这一点。可以在以下位置找到相关信息:http: //apigee.com/docs/gateway-services/content/uri-based-configurations。
无需为产品烦恼,您可以创建一个条件流来侦听您的 uri 根(通常这意味着流中没有定义条件)。该流程可以有一个引发故障的策略,通常您会将此故障的响应代码设置为 404,并显示一条消息,说明他们正在寻找的资源不存在。