Amazon API Gateway使用Amazon Cognito 认证


Amazon Cognito 和 Amazon API Gateway 的集成为开发者提供了一个简单但非常强大的方法来控制对 API 的访问。下面是一些步骤来指导你如何实现这种集成:

1. 创建 Cognito 用户池

首先,你需要在 AWS 管理控制台上创建一个 Cognito 用户池。

  1. 登录 AWS 控制台并选择 Amazon Cognito 服务。
  2. 选择“管理用户池”并点击“创建用户池”。
  3. 按照提示完成用户池的创建。

2. 在 API Gateway 创建作者化器

为了使用 Cognito 用户池来控制对 API 的访问,你需要在 API Gateway 创建一个 Cognito 用户池作者化器。

  1. 在 AWS 管理控制台中,导航到 API Gateway 服务。
  2. 选择你的 API。
  3. 在左侧导航栏中,选择“Authorizers”。
  4. 点击“Create New Authorizer”。
  5. 为Authorizers命名,选择“Cognito”作为类型,并选择你之前创建的用户池。
  6. 点击“创建”。

3. 将作者化器与 API 端点关联

一旦你创建了 Cognito Authorizers,下一步是将其与 API 端点或资源关联。

  1. 在 API Gateway 控制台中,选择你的 API。
  2. 选择你希望控制访问权限的资源或端点。
  3. 选择 HTTP 方法(例如 GET 或 POST)。
  4. 在“方法请求”部分,选择“设置为所需”的“Cognito 用户池 Authorizers”。
  5. 在下拉菜单中,选择你之前创建的Authorizers。
  6. 点击保存。

4. 测试集成

为了测试这种集成,你需要从 Cognito 用户池中获取一个 JWT 令牌,并在请求 API 时将其作为头部信息发送。

  1. 使用 AWS SDK 或 Cognito 提供的 SDK 登录用户,从而获取 JWT 令牌。
  2. 使用工具(如 Postman)或自己编写的代码调用 API Gateway 端点。
  3. 在请求头中添加以下信息:Authorization: your-jwt-token
  4. 发送请求。如果令牌有效,你应该能够正常访问 API;否则,你将收到 401 Unauthorized 错误。

5. 注意事项

  • 确保 Cognito 用户池中的用户具有必要的权限访问与之关联的 AWS 资源。
  • JWT 令牌有过期时间,通常为 1 小时。当令牌过期时,用户需要重新认证以获取新的令牌。

总的来说,通过将 Amazon Cognito 和 API Gateway 结合使用,开发者可以轻松地为他们的 APIs 提供安全、可扩展的身份验证和授权机制。


文章作者: AWS Learner
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AWS Learner !
评论
  目录