Auth - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Auth

为 GraphQL API 配置授权。

语法

要在您的 Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。

YAML

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

属性

Additional

GraphQL API 的其他授权类型列表。

类型:清单 AuthProvider

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

LambdaAuthorizer

为 Lambda 函数授权方指定可选的授权配置。如果 Type 被指定为 AWS_LAMBDA,则可以配置此可选属性。

类型:LambdaAuthorizerConfig

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::AppSync::GraphQLApi 资源的 LambdaAuthorizerConfig 属性。

OpenIDConnect

为您的 OpenID Connect 合规服务指定可选的授权配置。如果 Type 被指定为 OPENID_CONNECT,则可以配置此可选属性。

类型OpenID ConnectConfig

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::AppSync::GraphQLApi 资源的 OpenIDConnectConfig 属性。

Type

应用程序和 Amazon AppSync GraphQL API 之间的默认授权类型。

有关允许值的列表和描述,请参阅《Amazon AppSync 开发人员指南》中的授权和身份验证

当您指定 Lambda 授权方 (AWS_LAMBDA) 时,Amazon SAM 会创建 Amazon Identity and Access Management (IAM) policy,以配置 GraphQL API和 Lambda 函数之间的权限。

类型:字符串

必需:是

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::AppSync::GraphQLApi 资源的 AuthenticationType 属性。

UserPool

指定可选的授权配置,以使用 Amazon Cognito 用户群体。如果 Type 被指定为 AMAZON_COGNITO_USER_POOLS,则可以配置此可选属性。

类型:UserPoolConfig

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::AppSync::GraphQLApi 资源的 UserPoolConfig 属性。

示例

配置默认授权类型和其他授权类型

在此示例中,首先将 Lambda 授权方配置为 GraphQL API 的默认授权类型。

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

然后,在 Amazon SAM 模板中添加以下内容,为 GraphQL API 配置其他授权类型:

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

这将产生以下 Amazon 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