Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 缺少所有自定义作用域的AWS Cognito AdminInitiateAuth_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Amazon web services 缺少所有自定义作用域的AWS Cognito AdminInitiateAuth

Amazon web services 缺少所有自定义作用域的AWS Cognito AdminInitiateAuth,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,我有一个cognito用户池,配置了AWS::cognito::UserPoolResourceServer和作用域列表,所有这些作用域都是在UserPoolClient->AllowedOAuthScopes上启用的。当我进行UI身份验证时,令牌包含一个作用域列表 "scope": "aws.cognito.signin.user.admin labs-mymoney-bills-api/view labs-mymoney-bills-api/edit openid profile labs

我有一个cognito用户池,配置了AWS::cognito::UserPoolResourceServer和作用域列表,所有这些作用域都是在UserPoolClient->AllowedOAuthScopes上启用的。当我进行UI身份验证时,令牌包含一个作用域列表

 "scope": "aws.cognito.signin.user.admin labs-mymoney-bills-api/view labs-mymoney-bills-api/edit openid profile labs-mymoney-bills-api/pay email",
出于测试目的,我使用adminInitiateAuth获取令牌,并使用以下参数

  var authParams = {
        AuthFlow: 'ADMIN_USER_PASSWORD_AUTH',
        ClientId: 'myclientid',
        UserPoolId: 'myuserpool',
        AuthParameters: {
            USERNAME: 'myuser',
            PASSWORD: 'herpassword'
        }

    };
结果标记的作用域如下所示

"scope": "aws.cognito.signin.user.admin",
显然,当我尝试使用定义了作用域的API端点进行身份验证时,它总是未经授权的

这是一个错误,或者我做错了什么,或者有不切实际的期望


谢谢

我相信这不是一个bug,而是经过设计的。只有通过Oauth端点进行身份验证时,才会返回Cognito自定义范围。创建Cognito域时,Cognito将创建一个托管UI/授权服务器,该服务器公开Oauth端点。正确配置后,通过这些端点登录将返回访问令牌中的自定义作用域

通过initiate Auth或admin initiate Auth登录不是通过Oauth端点进行的,因此Oauth自定义范围将不包括在令牌中


我希望这有帮助。您可以通过设置HostedUI并登录来测试这一点。您将收到的令牌应该包含作用域。

谢谢,但是,我发现它是有线的,admin auth token有什么意义,如果它不允许您访问您的东西……您说的“admin auth token”是指什么?aws.cognito.signin.user.admin作用域允许您调用cognito来更新用户属性等。没有这个作用域,您可以使用令牌来授权对您自己的资源服务器或APIGateway的请求,例如。