1

我使用 Apigee 作为我们应用程序的网关。几个应用程序将访问 Apigee,Apigee 将依次将请求路由到后端服务器。每个传入的请求都会有一个 JWT 令牌。

我希望 Apigee 将该令牌传递给身份验证服务器,身份验证服务器将验证该令牌是否有效。

如果令牌无效(如果身份验证服务器返回 200 以外的任何状态),我希望 Apigee 返回 403 错误作为对请求的响应,否则将请求传递给后端服务器。

如何实现这种共享流程?Apigee 甚至有可能吗?有没有更好的方法来实现这一目标?

4

1 回答 1

0

你可以这样做。

为身份验证/授权创建一个共享流,其中包括将调用身份验证服务器的ServiceCallout 策略。

根据 Unauthorized/Bad 请求的结果,您可以在RaiseFault的帮助下提出故障响应。

如果响应正常,它将顺利进行到后端。

示例共享流。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SharedFlowBundle revision="1" name="Auth">
    <Policies>
        <Policy>AssignVariableJwks</Policy> <!-- Assign Input values if needed via AssignMessage policy -->
        <Policy>RequestAuthServer</Policy> <!-- Extrnal auth server call using ServiceCallout policy -->
        <Policy>TokenNotFoundValidation</Policy> <!-- Validate response and raise fault if needed using RaiseFault policy -->
    </Policies>
    <Resources/>
    <Spec/>
    <subType>SharedFlow</subType>
    <SharedFlows>
        <SharedFlow>default</SharedFlow>
    </SharedFlows>
</SharedFlowBundle>

对于上述共享流程,使用逻辑创建和附加所需的策略,您就可以开始了。

于 2021-03-31T13:25:44.147 回答