Auth
为 GraphQL API 配置授权。
语法
要在您的 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。
YAML
Additional: -AuthProviderLambdaAuthorizer:LambdaAuthorizerConfigOpenIDConnect:OpenIDConnectConfigType:StringUserPool:UserPoolConfig
属性
Additional-
GraphQL API 的其他授权类型列表。
类型:授权提供程序列表
必需:否
CloudFormation 兼容性:此属性为 AWS SAM 独有,没有 CloudFormation 等效属性。
-
为 Lambda 函数授权方指定可选的授权配置。如果
Type被指定为AWS_LAMBDA,则可以配置此可选属性。必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::AppSync::GraphQLApi资源的LambdaAuthorizerConfig属性。 OpenIDConnect-
为您的 OpenID Connect 合规服务指定可选的授权配置。如果
Type被指定为OPENID_CONNECT,则可以配置此可选属性。必需:否
CloudFormation 兼容性:此属性直接传递给
AWS::AppSync::GraphQLApi资源的OpenIDConnectConfig属性。 Type-
应用程序和 AWS AppSync GraphQL API 之间的默认授权类型。
有关允许值的列表和描述,请参阅《AWS AppSync 开发人员指南》中的授权和身份验证。
当您指定 Lambda 授权方 (
AWS_LAMBDA) 时,AWS SAM 会创建 AWS Identity and Access Management (IAM) policy,以配置 GraphQL API和 Lambda 函数之间的权限。类型:字符串
必需:是
CloudFormation 兼容性:此属性直接传递给
AWS::AppSync::GraphQLApi资源的AuthenticationType属性。 UserPool-
指定可选的授权配置,以使用 Amazon Cognito 用户群体。如果
Type被指定为AMAZON_COGNITO_USER_POOLS,则可以配置此可选属性。必需:否
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
然后,在 AWS SAM 模板中添加以下内容,为 GraphQL API 配置其他授权类型:
Additional: - Type: AWS_IAM - Type: API_KEY - Type: OPENID_CONNECT OpenIDConnect: AuthTTL: 10 ClientId: myId IatTTL: 10 Issuer: prod
这将产生以下 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