我想使用 Cognito 验证我的 API 网关请求。
为此,我创建了自定义范围。 API Gateway 检查这些范围并将这些请求代理到我的 Elastic Beanstalk API。这工作正常。
但我的授权的另一部分是组。根据分配的组,某些操作具有限制访问权限。我需要使用组,因为我希望能够在用户生命周期中添加或删除这些组。将在我的 Elastic Beanstalk API 中检查该组。
问题
documentation 声明访问令牌包含 cognito:groups
声明。但是下图中的设置不包括此声明在我的令牌中。
以下解码后的 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"
}
我是否错过了限制或配置问题?为什么我的访问令牌中缺少该组? 感谢您的帮助!