

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# ApiAuth
<a name="sam-property-api-apiauth"></a>

Configura l'autorizzazione per controllare l'accesso alla tua API API Gateway.

Per ulteriori informazioni ed esempi sulla configurazione dell'accesso utilizzando, AWS SAM vedere[Controlla l'accesso alle API con il tuo AWS SAM modello](serverless-controlling-access-to-apis.md).

## Sintassi
<a name="sam-property-api-apiauth-syntax"></a>

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

### YAML
<a name="sam-property-api-apiauth-syntax.yaml"></a>

```
  AddApiKeyRequiredToCorsPreflight: Boolean
  [AddDefaultAuthorizerToCorsPreflight](#sam-api-apiauth-adddefaultauthorizertocorspreflight): Boolean
  [ApiKeyRequired](#sam-api-apiauth-apikeyrequired): Boolean
  [Authorizers](#sam-api-apiauth-authorizers): CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
  [DefaultAuthorizer](#sam-api-apiauth-defaultauthorizer): String
  [InvokeRole](#sam-api-apiauth-invokerole): String
  [ResourcePolicy](#sam-api-apiauth-resourcepolicy): ResourcePolicyStatement
  [UsagePlan](#sam-api-apiauth-usageplan): ApiUsagePlan
```

**Nota**  
La `Authorizers` proprietà include`AWS_IAM`, ma non è necessaria alcuna configurazione aggiuntiva per. `AWS_IAM` Per vedere un esempio, consulta [AWS IAM](#sam-property-api-apiauth--examples--aws_iam).

## Properties
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
Se le `Cors` proprietà `ApiKeyRequired` and sono impostate, l'impostazione `AddApiKeyRequiredToCorsPreflight` causerà l'aggiunta della chiave API alla `Options` proprietà.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*Default*: `True`  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
Se le `Cors` proprietà `DefaultAuthorizer` and sono impostate, l'impostazione `AddDefaultAuthorizerToCorsPreflight` farà sì che l'autorizzatore predefinito venga aggiunto alla `Options` proprietà nella sezione OpenAPI.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*Predefinito*: True  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
Se impostato su true, è necessaria una chiave API per tutti gli eventi API. Per ulteriori informazioni sulle chiavi API, consulta [Creare e utilizzare piani di utilizzo con chiavi API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) nella *Guida per sviluppatori di API Gateway*.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
L'autorizzatore utilizzato per controllare l'accesso all'API API Gateway.  
Per ulteriori informazioni, consulta [Controlla l'accesso alle API con il tuo AWS SAM modello](serverless-controlling-access-to-apis.md).  
*Tipo*: [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md)\$1 \$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md)\$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md) AWS\$1IAM  
*Obbligatorio:* no  
*Default*: nessuna  
*CloudFormation compatibilità*: Questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.  
*Note aggiuntive*: SAM aggiunge gli Authorizers alla OpenApi definizione di un'Api.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
Specificare un autorizzatore predefinito per un'API API Gateway, che verrà utilizzato per autorizzare le chiamate API per impostazione predefinita.  
Se l'Api EventSource per la funzione associata a questa API è configurata per utilizzare le autorizzazioni IAM, questa proprietà deve essere impostata su`AWS_IAM`, altrimenti si verificherà un errore.
▬*Tipo:* stringa  
*Obbligatorio:* no  
*Default*: nessuna  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
Imposta le credenziali di integrazione per tutte le risorse e i metodi su questo valore.  
`CALLER_CREDENTIALS`maps to`arn:aws:iam:::<user>/`, che utilizza le credenziali del chiamante per richiamare l'endpoint.  
*Valori validi*:,, `CALLER_CREDENTIALS` `NONE` `IAMRoleArn`  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*Default*: `CALLER_CREDENTIALS`  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
Configura la politica delle risorse per tutti i metodi e i percorsi su un'API.  
*Tipo:* [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.  
*Note aggiuntive*: Questa impostazione può essere definita anche individualmente `AWS::Serverless::Function` utilizzando[ApiFunctionAuth](sam-property-function-apifunctionauth.md). È necessario per APIs con`EndpointConfiguration: PRIVATE`.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
Configura un piano di utilizzo associato a questa API. Per ulteriori informazioni sui piani di utilizzo, consulta [Create and Use Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) nella *API Gateway Developer Guide*.  
Questa AWS SAM proprietà genera tre CloudFormation risorse aggiuntive quando è impostata: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an e an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html). Per informazioni su questo scenario, vedere[UsagePlan la proprietà è specificata](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan). Per informazioni generali sulle CloudFormation risorse generate, vedere[CloudFormation Risorse generate per AWS SAM](sam-specification-generated-resources.md).  
*Tipo:* [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

## Esempi
<a name="sam-property-api-apiauth--examples"></a>

### CognitoAuth
<a name="sam-property-api-apiauth--examples--cognitoauth"></a>

Esempio di autenticazione Cognito

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers:
    MyCognitoAuth:
     UserPoolArn:
       Fn::GetAtt:
         - MyUserPool
         - Arn
     AuthType: "COGNITO_USER_POOLS"
  DefaultAuthorizer: MyCognitoAuth
  InvokeRole: CALLER_CREDENTIALS
  AddDefaultAuthorizerToCorsPreflight: false
  ApiKeyRequired: false
  ResourcePolicy:
    CustomStatements: [{
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "execute-api:/Prod/GET/pets",
      "Condition": {
          "IpAddress": {
              "aws:SourceIp": "1.2.3.4"
          }
        }
    }]
    IpRangeDenylist:
      - "10.20.30.40"
```

### AWS IAM
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS Esempio IAM

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers: AWS_IAM
```