

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à.

# Configurazione di Accedi con Apple come IdP del pool di identità
<a name="apple"></a>

I pool di identità di Amazon Cognito funzionano con Sign in with Apple per fornire l'autenticazione federata agli utenti delle applicazioni mobili e delle applicazioni Web. Questa sezione spiega come registrare e configurare l'applicazione con Accedi con Apple come provider di identità.

Per aggiungere Accedi con Apple come provider di autenticazione a un pool di identità, devi completare due procedure. Innanzitutto devi integrare Accedi con Apple in un'applicazione, quindi configurare Accedi con Apple nei pool di identità. Per la maggior parte delle up-to-date informazioni sulla configurazione di Sign in with Apple, consulta [Configurazione dell'ambiente per l'accesso con Apple nella documentazione](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) per gli sviluppatori Apple.

## Configurazione di Accedi con Apple
<a name="login-with-apple-setup"></a>

Per configurare Accedi con Apple come provider di identità, è necessario registrare l'applicazione con Apple per ricevere l'ID client.

1. Creazione di un [account sviluppatore con Apple](https://developer.apple.com/programs/enroll/).

1. [Accedi](https://developer.apple.com/account/#/welcome) con le tue credenziali Apple.

1. Nel riquadro di navigazione a sinistra, scegli **Certificati IDs e profili**.

1. Nel riquadro di navigazione a sinistra, scegliere **Inputs (Input)**.

1. Nella pagina **Identificatori** scegli l'icona **\$1**.

1. Nella pagina **Registra un nuovo identificatore**, scegli **App IDs**, quindi scegli **Continua**.

1. Nella pagina **Register an App ID** (Registra un'ID app), procedi come indicato di seguito:

   1. In **Description (Descrizione)**, digitare una descrizione.

   1. In **Bundle ID (ID pacchetto)** digitare un identificatore. Prendi nota dell'**ID bundle** poiché avrai bisogno di questo valore per configurare Apple come provider nel pool di identità. 

   1. In **Capabilities** (Funzionalità), scegli **Sign In with Apple** (Accedi con Apple), quindi seleziona **Edit** (Modifica).

   1. Nella pagina **Accedi con Apple: configurazione dell'ID Apple**, seleziona l'impostazione appropriata per l'app. Quindi scegli **Save** (Salva).

   1. Scegli **Continua**.

1. Nella pagina **Confirm your App ID** (Conferma l'ID app), scegli **Register** (Registra).

1. Passa alla fase 10 se desideri integrare Accedi con Apple con un'applicazione iOS nativa. La fase 11 è per le applicazioni che si desidera integrare con Accedi con Apple JS.

1. **Nella pagina **Identificatori**, scegli il IDs menu **App**, quindi Servizi. IDs** Scegli l'icona **\$1**.

1. **Nella pagina **Registra un nuovo identificatore**, scegli **Servizi IDs**, quindi scegli Continua.**

1. Nella pagina **Register a Services ID** (Registra un ID servizi), procedi nel modo seguente:

   1. In **Description (Descrizione)**, digitare una descrizione.

   1. In **Identifier (Identificatore)**, digitare un identificatore. Prendi nota dell'ID servizio poiché avrai bisogno di questo valore per configurare Apple come provider nel pool di identità. 

   1. Scegli **Accedi con Apple**, quindi scegliere **Configure (Configura)**.

   1. Nella pagina **Web Authentication Configuration** (Configurazione autenticazione Web), scegli un **Primary App ID** (ID app principale). In **Sito Web URLs**, scegli l'icona **\$1**. Per **Domini e sottodomini**, inserire il nome di dominio dell'app. In **Return URLs,** inserisci l'URL di callback a cui l'autorizzazione reindirizza l'utente dopo l'autenticazione tramite Accedi con Apple. 

   1. Scegli **Next (Successivo)**.

   1. Scegli **Continue** (Continua), quindi scegli **Register** (Registra).

1. Nel riquadro di navigazione a sinistra, scegliere **Chiavi**.

1. Nella pagina **Keys** (Chiavi), scegli l'icona **\$1**.

1. Nella pagina **Register a New Key**, (Registra una nuova chiave) procedi nel modo seguente:

   1. In **Key Name (Nome chiave)**, digitare un nome della chiave. 

   1. Seleziona **Accedi con Apple**, quindi seleziona **Configura**.

   1. Nella pagina **Configura chiave**, scegliere un **ID app principale**, quindi scegli **Salva**.

   1. Scegli **Continue** (Continua), quindi scegli **Register** (Registra).

**Nota**  
Per integrare Accedi con Apple con un'applicazione iOS nativa, consulta [Implementing User Authentication with Sign in with Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) (Implementazione dell'autenticazione utente con Accedi con Apple).  
Per integrare Accedi con Apple in una piattaforma diversa da iOS nativo, consulta [Sign in with Apple JS](https://developer.apple.com/documentation/signinwithapplejs/) (Accedi con Apple JS). 

## Configurazione del provider esterno nella console delle identità federate di Amazon Cognito
<a name="login-with-apple-configure-provider"></a>

Per configurare il provider esterno, utilizzare la procedura seguente.

**Per aggiungere un gestore dell'identità digitale Accedi con Apple**

1. Scegli **Pool di identità** dalla [console di Amazon Cognito](https://console.aws.amazon.com/cognito/home). Seleziona un pool di identità.

1. Seleziona la scheda **Accesso utente**.

1. Seleziona **Aggiungi provider di identità**.

1. Scegli **Accedi con Apple**.

1. [Inserisci l'**ID dei servizi** del OAuth progetto che hai creato con Apple Developer.](https://developer.apple.com) Per ulteriori informazioni, consultare la pagina relativa all'[autenticazione degli utenti con Accedi con Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) nella documentazione di *Accedi con Apple*.

1. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Impostazioni ruolo**.

   1. Puoi assegnare agli utenti di tale IdP il **ruolo predefinito** impostato quando hai configurato il **ruolo autenticato** oppure selezionare l'opzione **Scegli ruolo con regole**.

     1. Se scegli l'opzione **Scegli ruolo con regole**, inserisci la **Richiesta** dall'autenticazione dell'utente, l'**Operatore** con cui desideri confrontare la richiesta, il **Valore** che determina una corrispondenza a questa scelta di ruolo e il **Ruolo** che desideri assegnare quando l'**Assegnazione del ruolo** corrisponde. Seleziona **Aggiungi un altro** per creare una regola aggiuntiva basata su una condizione diversa.

     1. Scegli una **Risoluzione del ruolo**. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il **Ruolo autenticato**.

1. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Attributi per il controllo degli accessi**.

   1. Per non applicare alcun tag principale, scegli **Inattivo**.

   1. Per applicare i tag principali in base alle richieste `sub` e `aud`, scegli **Utilizza mappature predefinite**.

   1. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli **Utilizza mappature personalizzate**. Quindi, inserisci una **Chiave tag** che deve essere originata da ciascuna **Richiesta** che desideri rappresentare in un tag.

1. Seleziona **Salva modifiche**.

## Accesso con Apple come provider negli esempi della CLI di identità federate di Amazon Cognito
<a name="sign-in-with-apple-cli-examples"></a>

In questo esempio viene creato un pool di identità denominato `MyIdentityPool` con Accedi con Apple come provider di identità.

`aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --supported-login-providers appleid.apple.com="sameple.apple.clientid"`

 Per ulteriori informazioni, consulta l'argomento relativo alla [creazione di un pool di identità](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/create-identity-pool.html) 

**Genera un ID identità di Amazon Cognito**  
 Questo esempio genera (o recupera) un ID Amazon Cognito. Questa è un'API pubblica, quindi non sono necessarie credenziali per richiamare questa API.

`aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins appleid.apple.com="SignInWithAppleIdToken"`

Per ulteriori informazioni, consulta [get-id](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-id.html). 

**Ottenimento delle credenziali per un ID identità di Amazon Cognito**  
In questo esempio vengono restituite le credenziali per l'ID di identità fornito e per l'accesso con Accedi con Apple. Questa è un'API pubblica, quindi non sono necessarie credenziali per richiamare questa API.

`aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId --logins appleid.apple.com="SignInWithAppleIdToken" `

Per ulteriori informazioni, consulta [get-credentials-for-identity](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-credentials-for-identity.html) 

## Utilizzo di Accedi con Apple: Android
<a name="set-up-apple-1.android"></a>

Apple non fornisce un SDK che supporta Accedi con Apple per Android. È invece possibile utilizzare il flusso Web in una visualizzazione Web.
+ Per configurare Accedi con Apple nell'applicazione, seguire le indicazioni riportate in [Configuring Your Webpage for Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) (Configurazione della pagina Web per Accedi con Apple) nella documentazione Apple.
+ Per aggiungere un pulsante **Accedi con Apple** alla tua interfaccia utente Android, segui la [sezione Visualizzazione dei pulsanti Accedi con Apple sul Web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) nella documentazione Apple.
+ Per autenticare in modo sicuro gli utenti utilizzando il servizio Accedi con Apple, segui le indicazioni in [Autenticazione degli utenti con Accedi con Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) nella documentazione Apple (lingua italiana non garantita).

L'accesso con Apple utilizza un oggetto di sessione per monitorare il suo stato. Amazon Cognito utilizza il token ID di questo oggetto sessione per autenticare l'utente, generare l'identificatore univoco e, se necessario, concedere all'utente l'accesso ad altre risorse. AWS 

```
@Override
public void onSuccess(Bundle response) {
    String token = response.getString("id_token");
    Map<String, String> logins = new HashMap<String, String>();
    logins.put("appleid.apple.com", token);
    credentialsProvider.setLogins(logins);
}
```

## Utilizzo di Accedi con Apple: iOS - Objective-C
<a name="set-up-apple-1.ios-objc"></a>

Apple ha fornito il supporto SDK per Accedi con Apple nelle applicazioni iOS native. Per implementare l'autenticazione utente con Accedi con Apple nei dispositivi iOS nativi, seguire le indicazioni riportate in [Implementing User Authentication with Sign in with Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) (Implementazione dell'autenticazione utente con Accedi con Apple) nella documentazione di Apple.

Amazon Cognito utilizza il token ID per autenticare l'utente, generare l'identificatore univoco e, se necessario, concedere all'utente l'accesso ad altre risorse. AWS 

```
(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error {
        NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"];
        credentialsProvider.logins = @{ "appleid.apple.com": idToken };
    }
```

## Utilizzo di Accedi con Apple: iOS - Swift
<a name="set-up-apple-1.ios-swift"></a>

Apple ha fornito il supporto SDK per Accedi con Apple nelle applicazioni iOS native. Per implementare l'autenticazione utente con Accedi con Apple nei dispositivi iOS nativi, seguire le indicazioni riportate in [Implementing User Authentication with Sign in with Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) (Implementazione dell'autenticazione utente con Accedi con Apple) nella documentazione di Apple.

Amazon Cognito utilizza il token ID per autenticare l'utente, generare l'identificatore univoco e, se necessario, concedere all'utente l'accesso ad altre risorse. AWS 

Per ulteriori informazioni sulla configurazione di Accedi con Apple in iOS, consulta [Configurazione di Accedi con Apple](https://docs.amplify.aws/sdk/auth/federated-identities/q/platform/ios#set-up-sign-in-with-apple) (lingua italiana non garantita).

```
func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) {
    if error != nil {
      print(error.localizedDescription)
    }
    else {
      let idToken = auth.identityToken,
      credentialsProvider.logins = ["appleid.apple.com": idToken!]
    }
}
```

## Usa Accedi con Apple: JavaScript
<a name="set-up-apple-1.javascript"></a>

Apple non fornisce un SDK che supporti l'accesso con Apple per JavaScript. È invece possibile utilizzare il flusso Web in una visualizzazione Web.
+ Per configurare Accedi con Apple nell'applicazione, seguire le indicazioni riportate in [Configuring Your Webpage for Sign In with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) (Configurazione della pagina Web per Accedi con Apple) nella documentazione Apple.
+ Per aggiungere un pulsante **Accedi con Apple** alla tua interfaccia JavaScript utente, segui la [sezione Visualizzazione dei pulsanti Accedi con Apple sul Web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) nella documentazione Apple.
+ Per autenticare in modo sicuro gli utenti utilizzando il servizio Accedi con Apple, segui le indicazioni in [Autenticazione degli utenti con Accedi con Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) nella documentazione Apple (lingua italiana non garantita).

L'accesso con Apple utilizza un oggetto di sessione per monitorare il suo stato. Amazon Cognito utilizza il token ID di questo oggetto sessione per autenticare l'utente, generare l'identificatore univoco e, se necessario, concedere all'utente l'accesso ad altre risorse. AWS 

```
function signinCallback(authResult) {
     // Add the apple's id token to the Amazon Cognito credentials login map.
     AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'IDENTITY_POOL_ID',
        Logins: {
           'appleid.apple.com': authResult['id_token']
        }
     });

     // Obtain AWS credentials
     AWS.config.credentials.get(function(){
        // Access AWS resources here.
     });
}
```