

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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>
API 的其他授權類型清單GraphQL。  
*類型*：[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`。  
*類型*：[OpenIDConnectConfig](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>
應用程式和 API AWS AppSync GraphQL 之間的預設授權類型。  
如需允許值的清單和說明，請參閱《 *AWS AppSync 開發人員指南*》中的[授權和身分驗證](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)。  
當您指定 Lambda 授權方 (`AWS_LAMBDA`) 時， 會 AWS SAM 建立 AWS Identity and Access Management (IAM) 政策，以在 GraphQL API 和 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`。  
*類型*：[OpenIDConnectConfig](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>
應用程式和 API AWS AppSync GraphQL 之間的預設授權類型。  
如需允許值的清單和說明，請參閱《 *AWS AppSync 開發人員指南*》中的[授權和身分驗證](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html)。  
當您指定 Lambda 授權方 (`AWS_LAMBDA`) 時， 會 AWS SAM 建立 AWS Identity and Access Management (IAM) 政策，以在 GraphQL API 和 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)` 屬性。