

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

# Creazione di una forza lavoro privata (IdP OIDC)
<a name="sms-workforce-create-private-oidc"></a>

Crea una forza lavoro privata utilizzando un Identity Provider (IdP) OpenID Connect (OIDC) quando desideri autenticare e gestire i worker utilizzando il tuo provider di identità. Usa questa pagina per scoprire come configurare il tuo IdP per comunicare con Amazon SageMaker Ground Truth (Ground Truth) o Amazon Augmented AI (Amazon A2I) e per imparare a creare una forza lavoro utilizzando il tuo IdP. 

Per creare una forza lavoro utilizzando un IdP OIDC, il tuo IdP deve supportare i *gruppi* perché Ground Truth e Amazon A2I utilizzano uno o più gruppi da te specificati per creare team di lavoro. Utilizza i team di lavoro per specificare i worker incaricati dei processi di etichettatura e delle attività di revisione umana. Poiché i gruppi non sono un'[attestazione standard](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims), il tuo IdP potrebbe avere una convenzione di denominazione diversa per un gruppo di utenti (worker). Pertanto, devi identificare uno o più gruppi di utenti a cui appartiene un worker utilizzando l'attestazione personalizzata `sagemaker:groups` inviata a Ground Truth o Amazon A2I dal tuo IdP. Per ulteriori informazioni, consulta [Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I](#sms-workforce-create-private-oidc-configure-idp).

Crei una forza lavoro IdP OIDC utilizzando l'operazione API. SageMaker [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html) Una volta creata una forza lavoro privata, tale forza lavoro, tutti i team di lavoro e i worker ad essa associati saranno disponibili per l'utilizzo per tutte le attività di etichettatura GroundTruth e per i flussi di lavoro di revisione umana Amazon A2I. Per ulteriori informazioni, consulta [Creazione di una forza lavoro OIDC IdP](#sms-workforce-create-private-oidc-createworkforce).

## Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I
<a name="sms-workforce-create-private-oidc-configure-idp"></a>

Quando utilizzi il tuo IdP, Ground Truth e Amazon A2I utilizzano il tuo `Issuer`, `ClientId` e `ClientSecret` per autenticare i worker ottenendo un CODICE di autenticazione dal tuo `AuthorizationEndpoint`. 

Ground Truth e Amazon A2I utilizzeranno questo CODICE per ottenere un’attestazione personalizzata dal `TokenEndpoint` o `UserInfoEndpoint` del tuo IdP. Puoi configurare `TokenEndpoint` per restituire un token web JSON (JWT) o `UserInfoEndpoint` per restituire un oggetto JSON. L'oggetto JWT o JSON deve contenere attestazioni obbligatorie e facoltative specificate dall'utente. Un'[attestazione](https://openid.net/specs/openid-connect-core-1_0.html#Terminology) è una coppia chiave-valore che contiene informazioni su un worker o metadati sul servizio OIDC. La tabella seguente elenca le attestazioni che devono essere incluse e che possono essere facoltativamente incluse nell'oggetto JWT o JSON restituito dal tuo IdP. 

**Nota**  
Alcuni dei parametri nella tabella seguente possono essere specificati utilizzando un `:` o `-`. Ad esempio, è possibile specificare i gruppi a cui appartiene un worker utilizzando `sagemaker:groups` o `sagemaker-groups` nell’attestazione. 


|  Name  | Richiesto | Formato e valori accettati | Description | Esempio | 
| --- | --- | --- | --- | --- | 
|  `sagemaker:groups` o `sagemaker-groups`  |  Sì  |  **Tipo di dati**: Se un worker appartiene a un singolo gruppo, identifica il gruppo utilizzando una stringa. Se un worker appartiene a più gruppi, utilizza un elenco con un massimo di 10 stringhe.  **Caratteri consentiti**: Espressione regolare: [\$1p\$1L\$1\$1p\$1M\$1\$1p\$1S\$1\$1p\$1N\$1\$1p\$1P\$1]\$1 **Quote**: 10 gruppi per worker 63 caratteri per nome del gruppo  |  Assegna un worker a uno o più gruppi. I gruppi vengono utilizzati per mappare il worker in team di lavoro.   |  Esempio di worker che appartiene a un singolo gruppo: `"work_team1"` Esempio di worker che appartiene a più di un gruppo: `["work_team1", "work_team2"]`   | 
|  `sagemaker:sub` o `sagemaker-sub`  |  Sì  |  **Tipo di dati**: Stringa  |  Questo è obbligatorio per tenere traccia dell'identità di un worker all'interno della piattaforma Ground Truth per il controllo e per identificare le attività svolte da quel worker.  Per ADFS: i clienti devono utilizzare l’Identificatore di sicurezza primario (SID).   |  `"111011101-123456789-3687056437-1111"`  | 
|  `sagemaker:client_id` o `sagemaker-client_id`  |  Sì  |  **Tipo di dati**: Stringa **Caratteri consentiti**: Espressione regolare: [\$1 w\$1-] \$1 **Virgolette:** 128 caratteri   |  Un ID client. Tutti i token devono essere emessi per questo ID cliente.   |  `"00b600bb-1f00-05d0-bd00-00be00fbd0e0"`  | 
|  `sagemaker:name` o `sagemaker-name`  |  Sì  |  **Tipo di dati**: Stringa  |  Il nome del worker da visualizzare nel portale dei worker.  |  `"Jane Doe"`  | 
|  `email`  |  No  |  **Tipo di dati**: Stringa  |  L'e-mail del worker. Ground Truth utilizza questa e-mail per notificare ai worker che sono stati invitati a lavorare sulle attività di etichettatura. Ground Truth utilizzerà questa e-mail anche per avvisare i dipendenti quando le attività di etichettatura diventano disponibili se imposti un argomento di Amazon SNS per un team di lavoro di cui fa parte il worker.  |  `"example-email@domain.com"`  | 
|  `email_verified`  |  No  |  **Tipo di dati**: Bool **Valori accettati**: `True`, `False`  |  Indica se l'e-mail dell'utente è stata verificata o meno.   |  `True`  | 

Di seguito è riportato un esempio della sintassi dell'oggetto JSON che `UserInfoEndpoint` può restituire. 

```
{
    "sub":"122",
    "exp":"10000",
    "sagemaker-groups":["group1","group2"]
    "sagemaker-name":"name",
    "sagemaker-sub":"122",
    "sagemaker-client_id":"123456"
}
```

Ground Truth o Amazon A2I confrontano i gruppi elencati in `sagemaker:groups` o `sagemaker-groups` per verificare che il worker appartenga al team di lavoro specificato nel processo di etichettatura o nell'attività di revisione umana. Dopo la verifica del team di lavoro, le attività di etichettatura o di revisione umana vengono inviate a quel worker. 

## Creazione di una forza lavoro OIDC IdP
<a name="sms-workforce-create-private-oidc-createworkforce"></a>

È possibile creare una forza lavoro utilizzando l'operazione SageMaker API e le specifiche lingue associate. `CreateWorkforce` SDKs Specifica un indirizzo `WorkforceName` e informazioni sul tuo IDP OIDC nel parametro `OidcConfig`. Si consiglia di configurare l'OIDC con un URI di reindirizzamento segnaposto e quindi di aggiornare l'URI con l'URL del portale di lavoro dopo aver creato la forza lavoro. Per ulteriori informazioni, consulta [Configura il tuo IdP OIDC](#sms-workforce-create-private-oidc-configure-url).

Un esempio della richiesta è illustrato nello screenshot seguente. Per ulteriori informazioni su ciascun parametro contenuto in questa richiesta, consulta [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html).

```
CreateWorkforceRequest: {
    #required fields
    WorkforceName: "example-oidc-workforce",
    OidcConfig: { 
        ClientId: "clientId",
        ClientSecret: "secret",
        Issuer: "https://example-oidc-idp.com/adfs",
        AuthorizationEndpoint: "https://example-oidc-idp.com/adfs/oauth2/authorize",
        TokenEndpoint: "https://example-oidc-idp.com/adfs/oauth2/token",
        UserInfoEndpoint: "https://example-oidc-idp.com/adfs/oauth2/userInfo",
        LogoutEndpoint: "https://example-oidc-idp.com/adfs/oauth2/log-out",
        JwksUri: "https://example-oidc-idp.com/adfs/discovery/keys"
    },
    SourceIpConfig: {
        Cidrs: ["string", "string"]
    }
}
```

### Configura il tuo IdP OIDC
<a name="sms-workforce-create-private-oidc-configure-url"></a>

Il modo in cui configuri il tuo IdP OIDC dipende dall'IdP che utilizzi e dai tuoi requisiti aziendali. 

Quando configuri il tuo IdP, devi specificare un URI di richiamata o di reindirizzamento. Dopo che Ground Truth o Amazon A2I hanno autenticato un worker, questo URI reindirizzerà il worker al portale dei worker dove i worker possono accedere alle attività di etichettatura o di revisione umana. Per creare un URL del portale di lavoro, devi creare una forza lavoro con i dettagli del tuo IdP OIDC utilizzando l'operazione API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html). In particolare, devi configurare il tuo IdP OIDC con le attestazioni sagemaker personalizzate richieste (consulta la sezione successiva per maggiori dettagli). Pertanto, ti consigliamo di configurare l'OIDC con un URI di reindirizzamento segnaposto e quindi di aggiornare l'URI dopo aver creato la forza lavoro. Consulta [Creazione di una forza lavoro OIDC IdP](#sms-workforce-create-private-oidc-createworkforce) per scoprire come creare una forza lavoro utilizzando questa API. 

Puoi visualizzare l'URL del tuo portale di lavoro nella console SageMaker Ground Truth o utilizzando l'operazione SageMaker API`DescribeWorkforce`. L'URL del portale di lavoro si trova nel parametro [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Workforce.html#sagemaker-Type-Workforce-SubDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Workforce.html#sagemaker-Type-Workforce-SubDomain) della risposta.

**Importante**  
Assicurati di aggiungere il sottodominio della forza lavoro all'elenco di indirizzi consentiti per IdP di OIDC. Quando aggiungi il sottodominio all'elenco degli indirizzi consentiti, deve terminare con `/oauth2/idpresponse`.

**Per visualizzare l'URL del portale di lavoro dopo aver creato una forza lavoro privata (Console):**

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Nel riquadro di navigazione, scegliere **Etichettatura delle forze lavoro**. 

1. Selezionare la scheda **Private (Privata)**.

1. In **Riepilogo della forza lavoro privata** vedrai l'**URL di accesso al portale Etichettatura**. Questo è l'URL del tuo portale per i worker.

**Per visualizzare l'URL del portale dei worker dopo aver creato una forza lavoro privata (API):**

Quando crei una forza lavoro privata utilizzando `[CreateWorkforce](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateWorkforce.html)`, specifichi un `WorkforceName`. Usa questo nome per chiamare [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeWorkforce.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeWorkforce.html). La tabella seguente include esempi di richieste che utilizzano AWS CLI and AWS SDK per Python (Boto3). 

------
#### [ SDK for Python (Boto3) ]

```
response = client.describe_workforce(WorkforceName='string')
print(f'The workforce subdomain is: {response['SubDomain']}')
```

------
#### [ AWS CLI ]

```
$ C:\>  describe-workforce --workforce-name 'string'
```

------

## Convalida la tua risposta di autenticazione della forza lavoro OIDC IdP
<a name="sms-workforce-create-private-oidc-validate"></a>

Dopo aver creato la forza lavoro OIDC IdP, puoi utilizzare la seguente procedura per convalidare il relativo flusso di lavoro di autenticazione utilizzando cURL. Questa procedura presuppone che tu abbia accesso a un terminale e che cURL sia installato.

**Per convalidare la tua risposta di autorizzazione OIDC IdP:**

1. Ottieni un codice di autorizzazione utilizzando un URI configurato come segue:

   ```
   {AUTHORIZE ENDPOINT}?client_id={CLIENT ID}&redirect_uri={REDIRECT URI}&scope={SCOPE}&response_type=code
   ```

   1. Sostituisci *`{AUTHORIZE ENDPOINT}`* con l'endpoint di autorizzazione per il tuo IdP OIDC.

   1. Sostituiscilo `{CLIENT ID}` con l'ID cliente del tuo OAuth cliente.

   1. Sostituisci *`{REDIRECT URI}`* con l'URL del portale dei worker. Se non è già presente, devi aggiungere `/oauth2/idpresponse` alla fine dell'URL.

   1. Se hai un ambito personalizzato, usalo per sostituire `{SCOPE}`. Se non disponi di un ambito personalizzato, sostituisci `{SCOPE}` con `openid`.

   Di seguito è riportato un esempio di URI dopo le modifiche precedenti:

   ```
   https://example.com/authorize?client_id=f490a907-9bf1-4471-97aa-6bfd159f81ac&redirect_uri=https%3A%2F%2F%2Fexample.labeling.sagemaker.aws%2Foauth2%2Fidpresponse&response_type=code&scope=openid
   ```

1. Copia e incolla nel browser l'URI modificato nella fase 1 e premi Invio sulla tastiera.

1. Effettua l'autenticazione utilizzando il tuo IdP.

1. Copia il parametro di query del codice di autenticazione nell'URI. Questo parametro inizia con `code=`. Di seguito è riportato un esempio di risposta. In questo esempio, copia `code=MCNYDB...` e tutto ciò che segue.

   ```
   https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
   ```

1. Apri un terminale e inserisci il seguente comando dopo aver apportato le modifiche richieste elencate di seguito:

   ```
   curl --request POST \
     --url '{TOKEN ENDPOINT}' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data grant_type=authorization_code \
     --data 'client_id={CLIENT ID}' \
     --data client_secret={CLIENT SECRET} \
     --data code={CODE} \
     --data 'redirect_uri={REDIRECT URI}'
   ```

   1. Sostituisci `{TOKEN ENDPOINT}` con l'endpoint token per il tuo IdP OIDC.

   1. Sostituiscilo `{CLIENT ID}` con il Client ID del tuo OAuth cliente.

   1. Sostituiscilo `{CLIENT SECRET}` con il Client Secret OAuth del tuo cliente.

   1. Sostituisci `{CODE}` con il parametro di query del codice di autenticazione che hai copiato nella fase 4.

   1. Sostituisci *`{REDIRECT URI}`* con l'URL del portale dei worker.

   Di seguito è riportato un esempio di richiesta cURL dopo aver apportato le modifiche precedenti:

   ```
   curl --request POST \
     --url 'https://example.com/token' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data grant_type=authorization_code \
     --data 'client_id=f490a907-9bf1-4471-97aa-6bfd159f81ac' \
     --data client_secret=client-secret \
     --data code=MCNYDB... \
     --data 'redirect_uri=https://example.labeling.sagemaker.aws/oauth2/idpresponse'
   ```

1. Questa fase dipende dal tipo di `access_token` restituito da IdP, da un token di accesso in testo normale o da un token di accesso JWT.
   + Se il tuo IdP non supporta i token di accesso JWT, `access_token` potrebbe essere testo normale (ad esempio un UUID). Viene visualizzata una risposta simile alla seguente. In questo caso, vai alla fase 7.

     ```
     {
       "access_token":"179c144b-fccb-4d96-a28f-eea060f39c13",
       "token_type":"Bearer",
       "expires_in":3600,
       "refresh_token":"ef43e52e-9b4f-410c-8d4c-d5c5ee57631a",
       "scope":"openid"
     }
     ```
   + Se il tuo IdP supporta i token di accesso JWT, la fase 5 dovrebbe generare un token di accesso in formato JWT. Ad esempio, la risposta può apparire simile alla seguente:

     ```
     {
         "access_token":"eyJh...JV_adQssw5c",
         "refresh_token":"i6mapTIAVSp2oJkgUnCACKKfZxt_H5MBLiqcybBBd04",
         "refresh_token_expires_in":6327,
         "scope":"openid",
         "id_token":"eyJ0eXAiOiJK9...-rDaQzUHl6cQQWNiDpWOl_lxXjQEvQ"
     }
     ```

     Copia il JWT e decodificalo. Puoi usare uno script python o un sito Web di terze parti per decodificarlo. Ad esempio, puoi visitare il sito Web [https://jwt.io/](https://jwt.io/) e incollare il JWT nella casella Codificato per **decodificarlo**. 

     Assicurati che la risposta decodificata contenga quanto segue:
     + Le affermazioni SageMaker AI **richieste** nella tabella riportata in[Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I](#sms-workforce-create-private-oidc-configure-idp). In caso contrario, devi riconfigurare il tuo IdP OIDC in modo che contenga queste attestazioni. 
     + L'[emittente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OidcConfig.html#sagemaker-Type-OidcConfig-Issuer) che hai specificato quando hai configurato la forza lavoro IdP.

1. Apri un terminale e inserisci il seguente comando dopo aver apportato le modifiche richieste elencate di seguito:

   ```
   curl -X POST -H 'Authorization: Bearer {ACCESS TOKEN}' -d '' -k -v {USERINFO ENDPOINT}
   ```

   1. Sostituisci `{USERINFO ENDPOINT}` con l'endpoint informazioni utente per il tuo IdP OIDC.

   1. Sostituisci `{ACCESS TOKEN}` con il token di accesso nella risposta che hai ricevuto nella fase 7. Questa è la voce per il parametro `"access_token"`.

   Di seguito è riportato un esempio di richiesta cURL dopo aver apportato le modifiche precedenti:

   ```
    curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
   ```

1. La risposta alla fase finale della procedura precedente può essere simile al seguente blocco di codice. 

   Se il `access_token` restituito nella fase 6 era testo normale, è necessario verificare che questa risposta contenga le informazioni richieste. In questo caso, la risposta deve contenere le affermazioni SageMaker AI **richieste** nella tabella riportata in[Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I](#sms-workforce-create-private-oidc-configure-idp). Ad esempio, `sagemaker-groups`, `sagamaker-name`.

   ```
   {
       "sub":"122",
       "exp":"10000",
       "sagemaker-groups":["group1","group2"]
       "sagemaker-name":"name",
       "sagemaker-sub":"122",
       "sagemaker-client_id":"123456"
   }
   ```

## Fasi successive
<a name="sms-workforce-create-private-oidc-next-steps"></a>

Dopo aver creato una forza lavoro privata utilizzando il tuo IdP e verificato la risposta di autenticazione dell'IdP, puoi creare team di lavoro utilizzando i tuoi gruppi IdP. Per ulteriori informazioni, consulta [Gestione di una forza lavoro privata (IdP OIDC)](sms-workforce-manage-private-oidc.md). 

È possibile limitare l'accesso dei lavoratori alle attività a indirizzi IP specifici e aggiornare o eliminare la forza lavoro utilizzando l' SageMaker API. Per ulteriori informazioni, consulta [Gestione della forza lavoro privata tramite l'API Amazon SageMaker](sms-workforce-management-private-api.md).