我有一个后端API的Apigee代理。如果我没有为API定义任何资源,我的代理只是作为传递。我如何在默认情况下阻止所有路径除了那些我通过定义为资源明确允许的路径?
例如,我有20个域对象和4个CRUD方法。这是80个潜在资源。我只想让我的开发人员访问其中的10个这样的资源。如何轻松阻止访问其他70?
我想我要问的是如何采用最小特权方法将我的后端服务暴露给我的开发人员?
答案 0 :(得分:1)
您应该可以通过使用API资源来实现此目的。有关此信息,请访问:http://apigee.com/docs/gateway-services/content/uri-based-configurations。
答案 1 :(得分:1)
另一种方法基本上是使用API Product,Developer和Developer应用程序来控制访问。请按照此文档获得基本的理解:http://apigee.com/docs/gateway-services/content/overview-1。如果您需要任何帮助,请告诉我。
谢谢, Archendra
答案 2 :(得分: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>
它的工作方式是它将尝试从&#34;无效路径&#34;中捕获上面列出的资源。在上面的例子中:它会尝试匹配/ basepath / {purchase_id},然后如果没有找到资源,第二个流将通过引发故障并将响应返回给客户端来充当catch all。
答案 3 :(得分:0)
不必为产品烦恼,您可以创建一个监听uri根的条件流(通常这意味着流中没有定义条件)。该流可以有一个引发错误的策略,通常您会将此错误的响应代码设置为404,并且显示他们正在查找的资源不存在的消息。