缺少 Cognito 访问令牌“cognito:groups”

时间:2021-03-09 21:46:04

标签: amazon-web-services oauth-2.0 amazon-cognito

我想使用 Cognito 验证我的 API 网关请求。

为此,我创建了自定义范围。 API Gateway 检查这些范围并将这些请求代理到我的 Elastic Beanstalk API。这工作正常。

但我的授权的另一部分是组。根据分配的组,某些操作具有限制访问权限。我需要使用组,因为我希望能够在用户生命周期中添加或删除这些组。将在我的 Elastic Beanstalk API 中检查该组。


问题
documentation 声明访问令牌包含 cognito:groups 声明。但是下图中的设置不包括此声明在我的令牌中。enter image description here

以下解码后的 jwt 将在通过托管 UI 登录后生成。如您所见,缺少声明。 ID 令牌(具有 openid 范围)将包含此组。我也确信我之前已经使用包含该组的 Amplify JS-SDK 测试了 Cognito。但是我无法包含我的自定义范围。

{
  "sub": "xxxxxxxxxxxxxxxxxxxxxx",
  "token_use": "access",
  "scope": "api.example.com/item.read api.example.com/item.write",
  "auth_time": 1615325374,
  "iss": "https://cognito-idp.eu-central-1.amazonaws.com/eu-central-1_xxxxxxx",
  "exp": 1615328974,
  "iat": 1615325374,
  "version": 2,
  "jti": "f37219a5-c8b0-411b-bdb3-ab7d9201b491",
  "client_id": "xxxxxxxxxxxxxxx",
  "username": "xxxxxxxxxxxxxxxxxxxxxxxxxx"
}

我是否错过了限制或配置问题?为什么我的访问令牌中缺少该组? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。添加 openid 范围后出现 cognito:groups 值:

Screenshot of app client settings

并且仍然提供访问令牌,根据之前的评论。