我正在使用API网关和授权器来控制对S3存储桶中文件夹的访问。授权者配置为使用Cognito用户池。此用户池具有与之关联的OAuth范围phone
和email
,还有一个自定义范围,我打算向其授予对S3存储桶的读取访问权限。
但是,我发现授权者将仅接受ID令牌来授予访问权限,并且如果我通过访问令牌,则会返回未授权状态。根据{{3}},应该可以使用访问令牌。
在请求访问令牌时,我遵循了Amazon docs的指示,例如,我像这样设置auth
变量:
var authData = {
ClientId : '<removed>',
AppWebDomain : '<removed',
TokenScopesArray : ['openid','email', 'domain.com/content/content.read'],
RedirectUriSignIn : '<removed>',
RedirectUriSignOut : '<removed'
}
我以为访问令牌将是我所需要的,这就是它的目的,但我无法使其正常工作。
答案 0 :(得分:2)
如果要将API网关与访问令牌一起使用,则必须跳过一些额外的步骤。
有关详细信息,请查看“ Integrate an API with a User Pool”,尤其是<在方法上配置COGNITO_USER_POOLS授权者的部分。
具体来说,从方法请求的设置>授权中:
选择OAuth范围旁边的铅笔图标。
键入创建Amazon Cognito用户池时已配置的范围的一个或多个全名。例如,按照 创建Amazon Cognito用户池(范围之一)中给出的示例 是com.hamuta.movies / drama.view。用一个空格分开 多个范围。
要保存设置,请选择复选标记图标。
答案 1 :(得分:0)