

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在网关中使用拦截器
<a name="gateway-interceptors"></a>

在网关上配置拦截器允许您在每次调用网关期间运行自定义代码。本节提供有关为您的网关实施和配置拦截器的指导。

**Topics**
+ [概述](#gateway-interceptors-overview)
+ [安全最佳实践](#gateway-interceptors-security)
+ [拦截器的权限](gateway-interceptors-permissions.md)
+ [拦截器的类型](gateway-interceptors-types.md)
+ [配置](gateway-interceptors-configuration.md)
+ [示例](gateway-interceptors-examples.md)

## 概述
<a name="gateway-interceptors-overview"></a>

在网关上配置拦截器允许您在每次调用网关期间运行自定义代码。这对于以下用例很有用：
+ 对工具或 MCP 操作实施精细的访问控制
+ 转换目标请求和网关响应
+ 实现自定义授权逻辑

可以在网关上配置两种类型的拦截器：
+  **请求拦截器 **-在网关调用目标之前执行。这些对于请求验证、转换或自定义授权很有用。
+  **RESPONSE 拦截器 **-在目标响应之后但在网关将响应发回给调用者之前执行。这些对于响应转换、筛选或添加自定义标头很有用。

一个网关最多可以配置一个请求拦截器和最多一个响应拦截器。您可以在同一个网关上配置这两种类型，但不能有多个相同类型的拦截器。

目前，只能使用 Lambda 函数配置拦截器。

## 安全最佳实践
<a name="gateway-interceptors-security"></a>

在实施拦截器时，必须遵循安全最佳实践，以保护敏感信息并保持适当的访问控制。

1. 默认情况下，除非将该`passRequestHeaders`字段设置为 true，否则不会将请求标头传递给拦截器。使用此字段时要小心，因为请求标头可能包含身份验证令牌和凭据等敏感信息。一定要验证你的拦截器没有记录这些敏感信息。

1. 请务必将您的网关执行角色限制为仅具有调用您用作拦截器的特定 lambda 函数的权限，而不是向您的执行角色授予通配符 lambda 权限。

1. 为您的拦截器实现等导数 Lambda 函数。如果出现故障或超时，网关可能会重试对拦截器 Lambda 函数的请求。确保您的拦截器逻辑能够安全地处理重复调用，具体方法是实现递增密钥、跟踪已处理的请求或设计无状态操作，这些操作在使用相同的输入多次执行时会产生一致的结果。