您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
最后一公里安全措施可保护 API 服务代理的后端服务。最后一公里安全措施的主要目标是防止所谓的“end-run”攻击,其中应用会发现后端服务的网址,并绕过任何 API 代理直接命中后端网址。
以下是设置最后一公里安全措施的主要选项:
- 客户端 TLS/SSL
- 出站身份验证
- Node.js tls 模块
客户端 TLS/SSL
保护最后一公里的主要机制是客户端 TLS/SSL,它也称为“双向身份验证”。
出站身份验证
还可以通过要求 API 代理向后端服务提供凭据,强制执行最后一公里安全措施。
例如,您可能希望 API 代理向您的后端服务提供 API 密钥。您还可以要求 API 代理获取和提供 OAuth 客户端凭据访问令牌。
API 密钥
API 密钥可以应用于从 API 代理到后端服务的出站请求。这假设后端服务是能够发出和验证 API 密钥的 API。
如果您确实设置 API 代理以在出站请求中提供 API 密钥,则必须将 API 密钥存储在 API 代理在运行时可从中检索该密钥的位置。一个可用于存储 API 密钥的位置是键值对映射。请参阅键值对映射操作政策。
您可以使用 AssignMessage 政策类型将 API 密钥作为 HTTP 标头、查询参数或载荷元素添加到出站请求。请参阅分配消息政策。
OAuth 客户端凭据
OAuth 客户端凭据可用于向 API 密钥添加可撤销性层。如果您的后端服务支持 OAuth 客户端凭据,您可以配置 API 代理以为每个请求提供客户端凭据访问令牌。
您必须配置 API 代理才能执行 Callout,以便从令牌端点获取访问令牌。如需防止每次调用都获取新访问令牌,您还需要使用 API 代理来缓存访问令牌。
有许多方法可用于实现出站客户端凭据。
您可以修改此示例,以调用令牌端点来获取访问令牌。此示例使用 JavaScript 将令牌作为 HTTP 授权标头附加到出站请求。您也可以使用分配消息政策来实现此目的。
SAML
GenerateSAMLAssertion 政策类型可用于将 SAML 断言附加到从 API 代理到后端服务的出站 XML 请求消息。这样,后端服务即可对从 API 代理收到的请求执行身份验证和授权。
请参阅 SAML 断言政策。
Node.js
如果您的 API 代理目标是 Node.js 应用,您可以使用 Node.js tls
模块创建与后端服务的安全连接。您可以使用 tls
模块发出传出请求,方法与在 Node.js 中通常执行的方法相同。基本上,您需要将客户端密钥和证书(.pem 文件)添加到 resources/node 目录,并将其加载到脚本中。如需了解如何使用 tls
模块及其方法,请参阅 Node.js tls 模块文档。如需了解详情,请参阅了解 Edge 对 Node.js 模块的支持。