Amazon Cognito 增加了对机器对机器(M2M)授权流程的增强上下文支持
Amazon Cognito 现在允许您在 M2M 访问令牌请求的 OAuth 2.0 客户端凭证流程中提供其他上下文信息,从而更好地控制基于机器的交互。M2M 授权常用于自动化流程,例如数据同步、事件驱动的工作流程和微服务通信。此功能使客户能够在为基于机器的交互请求访问令牌时提供特定于上下文的详细信息(例如,机器的属性,如 IP 地址、位置、环境;或业务上下文,如应用程序名称、租户 ID 等)。例如,假设一个组织的内部 API 服务在开发和生产环境中需要不同的访问模式。使用 ClientMetadata,您现在可以在请求访问令牌时指定 {"environment": "dev"} 或 {"environment": "prod"}。借助 Cognito 对令牌生成前 Lambda 触发器的支持,您可以处理此上下文来自定义令牌范围(例如,api:read_all、api:write_restricted),并添加特定于环境的声明,例如速率限制。然后,API 可以检查这些范围和声明,从而强制执行适当的访问控制和速率限制。
如果没有 ClientMetadata 参数,客户通常需要使用单独的应用程序客户端(例如 'internal-api-dev'、'internal-api-prod')来表达上下文信息,从而导致应用程序客户端蔓延。现在,单个 M2M 应用程序客户端可以在每个请求中提供上下文元数据,从而减少对多个应用程序客户端的需求,优化应用程序客户端成本,同时提供上下文感知授权。
在提供 Cognito 的 AWS 区域(包括 AWS GovCloud(美国)区域),使用 Essentials 套餐或 Plus 套餐的 Amazon Cognito 客户可以使用此功能。要了解更多信息,请参阅此开发人员指南和定价详情页面以了解 M2M 授权流程定价。