Google Cloud Endpoints 通过 API 键入 header
Google Cloud Endpoints pass API key in header
根据 Cloud Endpoint docs,您似乎必须将 URL 中的 API 键作为查询参数传递。
然而,这使我们容易受到中间人攻击。我想知道是否有一种方法可以通过在 header 中传递 API 键来让它工作。
我正在开发一个简单的应用程序,它还没有集成任何 sign-in 方法。 Cloud Endpoints 中是否有其他身份验证方式,我不需要添加任何现有的 sign-in 方法,但能够安全地使用 API 密钥。
API 密钥通常不安全。
对于 server-to-server
通信,确保通信安全的方法之一是使用 HTTPS 和 IP 白名单。
然而,为了(browser or mobile client)-to-server
通信,我们需要在客户端存储API密钥,当然它会暴露给人们。
为了 Google Cloud Endpoints 的安全客户端-服务器通信,请尝试添加身份验证方法,例如 Firebase 或 Google ID。
我试图按照 openAPI v2 spec
中的描述来定义它
securityDefinitions:
api_key:
type: "apiKey"
name: "x-key"
in: "header"
我在部署 Cloud Endpoint 定义时收到此错误消息。
WARNING: service.yaml: apiKey 'x-key' is ignored. Only apiKey with 'name' as 'key' and 'in' as 'query' are supported
所以,这是不可能的。
我发现实际上,它 是可能的(至少对于 Google API 网关,我稍后可能会尝试看看它如何与云端点)。
请注意,header 使用的名称是:
'X-API-Key'(或'x-api-key',不区分大小写)。
这样对我来说效果很好。
是的,可以在 header 中指定 API 键。
这是 Google 关于 API 键定义限制的文档的摘录:
When specifying an API key in the security definitions object in your OpenAPI document, Endpoints requires one of the following schemes:
- The name is key and the in is query
- The name is api_key and the in is query
- The name is x-api-key and the in is header
请参阅此 link 以获取更多信息和示例:
https://cloud.google.com/endpoints/docs/openapi/openapi-limitations
根据 Cloud Endpoint docs,您似乎必须将 URL 中的 API 键作为查询参数传递。
然而,这使我们容易受到中间人攻击。我想知道是否有一种方法可以通过在 header 中传递 API 键来让它工作。
我正在开发一个简单的应用程序,它还没有集成任何 sign-in 方法。 Cloud Endpoints 中是否有其他身份验证方式,我不需要添加任何现有的 sign-in 方法,但能够安全地使用 API 密钥。
API 密钥通常不安全。
对于 server-to-server
通信,确保通信安全的方法之一是使用 HTTPS 和 IP 白名单。
然而,为了(browser or mobile client)-to-server
通信,我们需要在客户端存储API密钥,当然它会暴露给人们。
为了 Google Cloud Endpoints 的安全客户端-服务器通信,请尝试添加身份验证方法,例如 Firebase 或 Google ID。
我试图按照 openAPI v2 spec
中的描述来定义它securityDefinitions:
api_key:
type: "apiKey"
name: "x-key"
in: "header"
我在部署 Cloud Endpoint 定义时收到此错误消息。
WARNING: service.yaml: apiKey 'x-key' is ignored. Only apiKey with 'name' as 'key' and 'in' as 'query' are supported
所以,这是不可能的。
我发现实际上,它 是可能的(至少对于 Google API 网关,我稍后可能会尝试看看它如何与云端点)。
请注意,header 使用的名称是:
'X-API-Key'(或'x-api-key',不区分大小写)。
这样对我来说效果很好。
是的,可以在 header 中指定 API 键。
这是 Google 关于 API 键定义限制的文档的摘录:
When specifying an API key in the security definitions object in your OpenAPI document, Endpoints requires one of the following schemes:
- The name is key and the in is query
- The name is api_key and the in is query
- The name is x-api-key and the in is header
请参阅此 link 以获取更多信息和示例: https://cloud.google.com/endpoints/docs/openapi/openapi-limitations