Creazione di una forza lavoro privata (IdP OIDC) - Amazon SageMaker

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)

Crea una forza lavoro privata utilizzando un Identity Provider (IdP) OpenID Connect (OIDC) quando desideri autenticare e gestire i lavoratori 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 lavoratori incaricati dei processi di etichettatura e delle attività di revisione umana. Poiché i gruppi non sono un'attestazione standard, il tuo IdP potrebbe avere una convenzione di denominazione diversa per un gruppo di utenti (lavoratori). Pertanto, devi identificare uno o più gruppi di utenti a cui appartiene un lavoratore utilizzando l'attestazione personalizzata sagemaker:groups inviata a Ground Truth o Amazon A2I dal tuo IdP. Per ulteriori informazioni, vedi Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I.

Crei una forza lavoro IdP OIDC utilizzando l'operazione API. SageMaker CreateWorkforce Una volta creata una forza lavoro privata, tale forza lavoro, tutti i team di lavoro e i lavoratori 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, vedi Creazione di una forza lavoro OIDC IdP.

Invia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I

Quando utilizzi il tuo IdP, Ground Truth e Amazon A2I utilizzano il tuo Issuer, ClientId e ClientSecret per autenticare i lavoratori 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 è una coppia chiave-valore che contiene informazioni su un lavoratore 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 lavoratore utilizzando sagemaker:groups o sagemaker-groups nell’attestazione.

Nome Richiesto Formato e valori accettati Descrizione Esempio

sagemaker:groups o sagemaker-groups

Tipo di dati:

Se un lavoratore appartiene a un singolo gruppo, identifica il gruppo utilizzando una stringa.

Se un lavoratore appartiene a più gruppi, utilizza un elenco con un massimo di 10 stringhe.

Caratteri consentiti:

Espressione regolare: [\p{L}\p{M}\p{S}\p{N}\p{P}]+

Quote:

10 gruppi per lavoratore

63 caratteri per nome del gruppo

Assegna un lavoratore a uno o più gruppi. I gruppi vengono utilizzati per mappare il lavoratore in team di lavoro.

Esempio di lavoratore che appartiene a un singolo gruppo: "work_team1"

Esempio di lavoratore che appartiene a più di un gruppo: ["work_team1", "work_team2"]

sagemaker:sub o sagemaker-sub

Tipo di dati:

Stringa

Questo è obbligatorio per tenere traccia dell'identità di un lavoratore all'interno della piattaforma Ground Truth per il controllo e per identificare le attività svolte da quel lavoratore.

Per ADFS: i clienti devono utilizzare l’Identificatore di sicurezza primario (SID).

"111011101-123456789-3687056437-1111"

sagemaker:client_id o sagemaker-client_id

Tipo di dati:

Stringa

Caratteri consentiti:

Espressione regolare: [\ w+-] +

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

Tipo di dati:

Stringa

Il nome del lavoratore da visualizzare nel portale dei lavoratori.

"Jane Doe"

email

No

Tipo di dati:

Stringa

L'e-mail del lavoratore. Ground Truth utilizza questa e-mail per notificare ai lavoratori 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 lavoratore.

"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 lavoratore 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 lavoratore.

Creazione di una forza lavoro OIDC IdP

Puoi creare una forza lavoro utilizzando l'operazione SageMaker CreateWorkforce API e gli SDK associati specifici per la lingua. 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, vedi Configura il tuo IdP OIDC.

Un esempio della richiesta è illustrato nello screenshot seguente. Per ulteriori informazioni su ciascun parametro contenuto in questa richiesta, consulta CreateWorkforce.

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

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 lavoratore, questo URI reindirizzerà il lavoratore al portale dei lavoratori dove i lavoratori 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 CreateWorkforce. 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 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 APIDescribeWorkforce. L'URL del portale di lavoro si trova nel parametro 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 SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/.

  2. Nel riquadro di navigazione, scegliere Etichettatura delle forze lavoro.

  3. Selezionare la scheda Private (Privata).

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

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

Quando crei una forza lavoro privata utilizzando CreateWorkforce, specifichi un WorkforceName. Usa questo nome per chiamare DescribeWorkforce. La tabella seguente include esempi di richieste che utilizzano AWS CLI and AWS SDK for 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

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.

    2. Sostituisci {CLIENT ID} con l'ID client del tuo client OAuth.

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

    4. 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
  2. Copia e incolla l'URI modificato dal passaggio 1 nel browser e premi Invio sulla tastiera.

  3. Effettua l'autenticazione utilizzando il tuo IdP.

  4. 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....
  5. 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.

    2. Sostituisci {CLIENT ID} con l'ID client del tuo client OAuth.

    3. Sostituisci {CLIENT SECRET} con il segreto client del tuo client OAuth.

    4. Sostituisci {CODE} con il parametro di query del codice di autenticazione che hai copiato nel passaggio 4.

    5. Sostituisci {REDIRECT URI} con l'URL del portale dei lavoratori.

    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'
  6. Questo passaggio 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 al passaggio 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/ e incollare il JWT nella casella Codificato per decodificarlo.

      Assicurati che la risposta decodificata contenga quanto segue:

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

    2. Sostituisci {ACCESS TOKEN} con il token di accesso nella risposta che hai ricevuto nel passaggio 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
  8. La risposta al passaggio finale della procedura precedente può essere simile al seguente blocco di codice.

    Se il access_token restituito nel passaggio 6 era testo normale, è necessario verificare che questa risposta contenga le informazioni richieste. In questo caso, la risposta deve contenere le SageMaker attestazioni richieste nella tabella riportata inInvia reclami obbligatori e facoltativi a Ground Truth e Amazon A2I. 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

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, vedi Gestione di una forza lavoro privata (IdP OIDC).

È 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 Amazon SageMaker API.