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,则可以配置此可选属性。

类型Open IDConnect Config

必需:否

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

Type

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

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

当您指定 Lambda 授权方 (AWS_LAMBDA) 时, Amazon SAM 会创建一个 Amazon Identity and Access Management (IAM) 策略来配置您之间的权限 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

接下来,我们为我们配置其他授权类型 GraphQL 通过在我们的 Amazon SAM 模板中添加以下内容来进行 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