Auth - AWS Serverless Application Model

Auth

Configura la autorización para su API GraphQL.

Sintaxis

Para declarar esta entidad en su plantilla de AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis:

YAML

Additional: - AuthProvider LambdaAuthorizer: LambdaAuthorizerConfig OpenIDConnect: OpenIDConnectConfig Type: String UserPool: UserPoolConfig

Propiedades

Additional

Una lista de tipos de autorización adicionales para su API GraphQL.

Tipo: Lista de AuthProvider

Obligatorio: no

Compatibilidad con CloudFormation: esta propiedad es exclusiva de AWS SAM y no tiene un equivalente CloudFormation.

LambdaAuthorizer

Especifica la configuración de autorización opcional para su autorizador de funciones de Lambda. Puedes configurar esta propiedad opcional si Type se especifica como AWS_LAMBDA.

Tipo: LambdaAuthorizerConfig

Obligatorio: no

Compatibilidad con CloudFormation: esta propiedad se transfiere directamente a la propiedad LambdaAuthorizerConfig de un recurso AWS::AppSync::GraphQLApi.

OpenIDConnect

Especifica la configuración de autorización opcional para su servicio OpenID Connect compatible. Puedes configurar esta propiedad opcional si Type se especifica como OPENID_CONNECT.

Type: OpenIDConnectConfig

Obligatorio: no

Compatibilidad con CloudFormation: esta propiedad se transfiere directamente a la propiedad OpenIDConnectConfig de un recurso AWS::AppSync::GraphQLApi.

Type

El tipo de autorización predeterminado entre las aplicaciones y su API GraphQL de AWS AppSync.

Para obtener una lista y una descripción de los valores permitidos, consulta Autorización y autenticación en la Guía para desarrolladores de AWS AppSync.

Al especificar una función de Lambda (AWS_LAMBDA), AWS SAM crea una política (de IAM) AWS Identity and Access Management para aprovisionar permisos entre la API GraphQL y la función de Lambda.

Tipo: cadena

Obligatorio: sí

Compatibilidad con CloudFormation: esta propiedad se transfiere directamente a la propiedad AuthenticationType de un recurso AWS::AppSync::GraphQLApi.

UserPool

Especifica la configuración de autorización opcional para utilizar grupos de usuarios de Amazon Cognito. Puedes configurar esta propiedad opcional si Type se especifica como AMAZON_COGNITO_USER_POOLS.

Tipo: UsarPoolConfig

Obligatorio: no

Compatibilidad con CloudFormation: esta propiedad se transfiere directamente a la propiedad UserPoolConfig de un recurso AWS::AppSync::GraphQLApi.

Ejemplos

Configura un tipo de autorización predeterminado y adicional

En este ejemplo, empezamos configurando un autorizador Lambda como el tipo de autorización predeterminado para nuestra API GraphQL.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyGraphQLAPI: Type: AWS::Serverless::GraphQLApi Properties: Auth: Type: AWS_LAMBDA LambdaAuthorizer: AuthorizerUri: !GetAtt Authorizer1.Arn AuthorizerResultTtlInSeconds: 10 IdentityValidationExpression: hello

A continuación, configuramos tipos de autorización adicionales para nuestra API GraphQL añadiendo lo siguiente a nuestra plantilla de AWS SAM:

Additional: - Type: AWS_IAM - Type: API_KEY - Type: OPENID_CONNECT OpenIDConnect: AuthTTL: 10 ClientId: myId IatTTL: 10 Issuer: prod

Se obtiene el siguiente resultado en la plantilla de AWS SAM:

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyGraphQLAPI: Type: AWS::Serverless::GraphQLApi Properties: Auth: Type: AWS_LAMBDA LambdaAuthorizer: AuthorizerUri: !GetAtt Authorizer1.Arn AuthorizerResultTtlInSeconds: 10 IdentityValidationExpression: hello Additional: - Type: AWS_IAM - Type: API_KEY - Type: OPENID_CONNECT OpenIDConnect: AuthTTL: 10 ClientId: myId IatTTL: 10 Issuer: prod