Установите пользовательский пул 'App Client Id' в качестве аудитории для HTTP API AWS YAML - токен не имеет действительной аудитории - PullRequest
0 голосов
/ 28 апреля 2020

Как вы решаете token does not have a valid audience, добавляя правильную аудиторию к aws авторизаторам?

Следующий фрагмент из конфигурации yaml вернет token does not have a valid audience, как только я использую заголовок Authorization с действующим JWT

Auth:
  DefaultAuthorizer: JwtAuthentication
  Authorizers:
    JwtAuthentication:
      IdentitySource: $request.header.Authorization
      JwtConfiguration:
        audience:
          - my-audience
        issuer: !Sub https://cognito-idp.${AWS::Region}.amazonaws.com/${OperationsUserPool}

1 Ответ

0 голосов
/ 28 апреля 2020

Как только я декодировал JWT, сгенерированный из моей лямбды

const login = await cognitoidentityserviceprovider
        .adminInitiateAuth(params)
        .promise();

, я заметил, что audience был App Client Id, но не был уверен, как получить это audience, так что получается, что это Ref для вашего AWS::Cognito::UserPoolClient

Более подробную информацию вы можете найти здесь https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn -cognito-userpoolclient-enabledoauthflowsuserpoolclient

Auth:
  DefaultAuthorizer: JwtAuthentication
  Authorizers:
    JwtAuthentication:
      IdentitySource: $request.header.Authorization
      JwtConfiguration:
        audience:
          - !Ref OperationsUserPoolClient
        issuer: !Sub https://cognito-idp.${AWS::Region}.amazonaws.com/${OperationsUserPool}

Надеюсь, это кому-нибудь поможет!

...