需要API调用才能将HTTPS与Apigee一起使用

需要API调用才能将HTTPS与Apigee一起使用,https,apigee,Https,Apigee,我正在使用Apigee构建一个代理来传输敏感数据。我需要确保此API的客户端使用HTTPS 我已经编写了一个类似这样的加薪错误政策 proxies/default.xml <PreFlow name="PreFlow"> <Request> <Step> <FaultRules/> <Name>Require-HTTPS</Name>

我正在使用Apigee构建一个代理来传输敏感数据。我需要确保此API的客户端使用HTTPS

我已经编写了一个类似这样的加薪错误政策

proxies/default.xml

<PreFlow name="PreFlow">
    <Request>
        <Step>
            <FaultRules/>
            <Name>Require-HTTPS</Name>
            <Condition>request.scheme != "https"</Condition>
        </Step>
    </Request>
    <Response/>
</PreFlow>

我是否可以依赖此标头强制对我的API执行仅限HTTPS的访问?或者是否有其他建议的方法来执行此操作?

您可以尝试使用virtualhost.name变量(默认或安全)检测虚拟主机,而不是方案

但是,我建议您创建两个代理——一个用于https,另一个用于http。这将消除消费者滑过您的条件障碍的可能性。单击Proxy下的单词“default”编辑整个代理文件并向下滚动到HTTPProxyConnection

<HTTPProxyConnection>
    <BasePath>/testme</BasePath>
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>

/测试我
违约
保护

只需删除默认的VirtualHost,消费者将无法再使用https进行连接。我相信你可以用同样的路径创建第二个API,然后删除“安全”并创建一个无条件的RasieFault。最糟糕的情况是,如果您只是在API中禁用默认设置,您就可以依赖Apigee错误。

我有一个实现,它似乎可以通过使用此条件来工作,而不是
request.header.X-Forwarded-Proto!=“https”
X-Forwarded-Proto :     https
<HTTPProxyConnection>
    <BasePath>/testme</BasePath>
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>