

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

# Auth
<a name="sam-property-graphqlapi-auth"></a>

为 GraphQL API 配置授权。

## 语法
<a name="sam-property-graphqlapi-auth-syntax"></a>

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

### YAML
<a name="sam-property-graphqlapi-auth-syntax-yaml"></a>

```
Additional:
- AuthProvider
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## Properties
<a name="sam-property-graphqlapi-auth-properties"></a>

`Additional`  <a name="sam-graphqlapi-auth-additional"></a>
GraphQL API 的其他授权类型列表。  
*类型*：清单 [AuthProvider](sam-property-graphqlapi-auth-authprovider.md)  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-lambdaauthorizer"></a>
为 Lambda 函数授权方指定可选的授权配置。如果 `Type` 被指定为 `AWS_LAMBDA`，则可以配置此可选属性。  
*类型*:[LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi`资源的`[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)`属性。

`OpenIDConnect`  <a name="sam-graphqlapi-auth-openidconnect"></a>
为您的 OpenID Connect 合规服务指定可选的授权配置。如果 `Type` 被指定为 `OPENID_CONNECT`，则可以配置此可选属性。  
*类型*：[Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi`资源的`[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)`属性。

`Type`  <a name="sam-graphqlapi-auth-type"></a>
应用程序和您的 AWS AppSync GraphQL API 之间的默认授权类型。  
有关允许值的列表和描述，请参阅*《AWS AppSync 开发人员指南》*中的[授权和身份验证](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)。  
当您指定 Lambda 授权方 () 时， AWS SAM 会创建一个 AWS Identity and Access Management (IAM`AWS_LAMBDA`) 策略来在您的 API GraphQL 和 Lambda 函数之间配置权限。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi`资源的`[AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype)`属性。

`UserPool`  <a name="sam-graphqlapi-auth-userpool"></a>
指定可选的授权配置，以使用 Amazon Cognito 用户群体。如果 `Type` 被指定为 `AMAZON_COGNITO_USER_POOLS`，则可以配置此可选属性。  
*类型*:[UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi`资源的`[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)`属性。

## 示例
<a name="sam-property-graphqlapi-auth-examples"></a>

### 配置默认授权类型和其他授权类型
<a name="sam-property-graphqlapi-auth-examples-example1"></a>

在此示例中，首先将 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
```

# AuthProvider
<a name="sam-property-graphqlapi-auth-authprovider"></a>

您的其他 GraphQL API 授权类型的可选授权配置。

## 语法
<a name="sam-property-graphqlapi-auth-authprovider-syntax"></a>

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

### YAML
<a name="sam-property-graphqlapi-auth-authprovider-syntax-yaml"></a>

```
LambdaAuthorizer: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)
OpenIDConnect: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)
Type: String
UserPool: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)
```

## Properties
<a name="sam-property-graphqlapi-auth-authprovider-properties"></a>

`LambdaAuthorizer`  <a name="sam-graphqlapi-auth-authprovider-lambdaauthorizer"></a>
为您的 AWS Lambda 函数授权方指定可选的授权配置。如果 `Type` 被指定为 `AWS_LAMBDA`，则可以配置此可选属性。  
*类型*:[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi``[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)`对象的`[ LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html)`属性。

`OpenIDConnect`  <a name="sam-graphqlapi-auth-authprovider-openidconnect"></a>
为您的 OpenID Connect 合规服务指定可选的授权配置。如果 `Type` 被指定为 `OPENID_CONNECT`，则可以配置此可选属性。  
*类型*：[Open IDConnect Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi``[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)`对象的`[ OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html)`属性。

`Type`  <a name="sam-graphqlapi-auth-authprovider-type"></a>
应用程序和您的 AWS AppSync GraphQL API 之间的默认授权类型。  
有关允许值的列表和描述，请参阅*《AWS AppSync 开发人员指南》*中的[授权和身份验证](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)。  
当您指定 Lambda 授权方 () 时， AWS SAM 会创建一个 AWS Identity and Access Management (IAM`AWS_LAMBDA`) 策略来在您的 API GraphQL 和 Lambda 函数之间配置权限。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi``[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)`对象的`[ AuthenticationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype)`属性。

`UserPool`  <a name="sam-graphqlapi-auth-authprovider-userpool"></a>
指定可选的授权配置，以使用 Amazon Cognito 用户群体。如果 `Type` 被指定为 `AMAZON_COGNITO_USER_POOLS`，则可以配置此可选属性。  
*类型*:[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::AppSync::GraphQLApi``[ AdditionalAuthenticationProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html)`对象的`[ UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html)`属性。