View a markdown version of this page

Metodi di autenticazione del client - Fondamento Amazon AgentCore

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

Metodi di autenticazione del client

Il metodo di autenticazione del client controlla il modo in cui il client OAuth si autentica con l'endpoint del token del server di autorizzazione quando richiede i token di accesso.

Per i provider di credenziali specifici del provider, AgentCore Identity gestisce automaticamente il metodo di autenticazione del client in base ai requisiti di ciascun fornitore, quindi non è necessaria alcuna configurazione aggiuntiva.

Per i casi d'uso che richiedono un controllo più dettagliato, come l'autenticazione con un'asserzione IAM-signed JWT anziché un segreto client o il targeting di un server di autorizzazione i cui requisiti sono diversi da quelli di un fornitore integrato, utilizza il provider personalizzato, che consente di scegliere tra i metodi supportati di seguito.

Metodi di autenticazione del client supportati

AgentCore Identity supporta i seguenti valori per il metodo di autenticazione del client.

  1. CLIENT_SECRET_BASIC(impostazione predefinita): i client che hanno ricevuto un valore segreto dal server di autorizzazione si autenticano con il server di autorizzazione in conformità alla Sezione 2.3.1 di OAuth 2.0 (RFC 6749) utilizzando lo schema di autenticazione HTTP Basic. Sono obbligatori sia l'ID client che il segreto del client.

  2. CLIENT_SECRET_POST— I client che hanno ricevuto un valore segreto del client dal server di autorizzazione si autenticano con il server di autorizzazione in conformità alla Sezione 2.3.1 di OAuth 2.0 (RFC 6749) includendo le credenziali del client nel corpo della richiesta. Sono richiesti sia l'ID del cliente che il segreto del cliente.

  3. AWS_IAM_ID_TOKEN_JWT— Si autentica sull'endpoint del token del server di autorizzazione inviando un'asserzione AWS IAM-signed JWT per il ruolo di esecuzione dell'agente (ottenuta tramite sts: GetWebIdentityToken) come asserzione del client, secondo RFC 7523, Sezione 2.2. Il server di autorizzazione deve supportare questo meccanismo e fidarsi di IAM come emittente. AWS Quando questo metodo è selezionato, il segreto del client non è richiesto e l'ID client è richiesto solo per il flusso di accesso delegato dall'utente (User-delegated accesso (concessione del codice di autorizzazione OAuth 2.0)). Per utilizzarlo AWS_IAM_ID_TOKEN_JWT come metodo di autenticazione del client, ecco i prerequisiti:

    1. La federazione delle identità web in uscita deve essere abilitata sul tuo account. Abilitalo con iam: EnableOutboundWebIdentityFederation.

    2. L'identità AWS IAM chiamante deve avere il permesso di chiamare sts: GetWebIdentityToken.

  4. PRIVATE_KEY_JWTSi autentica sull'endpoint del token del server di autorizzazione inviando un'asserzione del client JWT di breve durata. AgentCore Identity crea e firma l'asserzione con una chiave asimmetrica AWS KMS gestita dal cliente tramite, secondo RFC 7523, Sezione 2.2. kms:Sign La chiave privata non esce mai da KMS. Il server di autorizzazione convalida l'asserzione rispetto alla chiave pubblica registrata. Quando si seleziona questo metodo, non è richiesto alcun segreto del cliente. È richiesto un ID cliente per tutti i flussi. Per utilizzarlo PRIVATE_KEY_JWT come metodo di autenticazione del client, soddisfi i seguenti prerequisiti:

    1. Una chiave di firma asimmetrica in AWS KMS con utilizzo della chiaveSIGN_VERIFY, con una politica di chiave appropriata e una specifica della chiave compatibile con l'algoritmo di firma scelto (vedi Private Key JWT per la tabella da algoritmo a specifiche chiave).

    2. Il ruolo di esecuzione dell' AgentCore identità (o identità chiamante) deve disporre delle autorizzazioni sulla chiave KMS. kms:DescribeKey kms:Sign

    3. Il server di autorizzazione del provider di identità deve supportare l'autenticazione del client JWT con chiave privata e la chiave pubblica corrispondente deve essere registrata presso il relativo server di autorizzazione.

Come configurare il metodo di autenticazione del client

Configurazione del metodo di autenticazione del client per 2 CustomOauth

Per configurare il metodo di autenticazione del client per il provider personalizzato su AWS Console, vedere Aggiungere un client OAuth utilizzando un provider personalizzato. Puoi anche configurarlo utilizzando la CLI.

Esempio CLI: utilizzo di CLIENT_SECRET_BASIC come metodo di autenticazione del client

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-client-basic", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientSecret": "your-client-secret", "clientAuthenticationMethod": "CLIENT_SECRET_BASIC" } } }'

Esempio CLI: utilizzo di _TOKEN_JWT come metodo di autenticazione del client AWS_IAM_ID

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-iam-jwt", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://my.idp.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientAuthenticationMethod": "AWS_IAM_ID_TOKEN_JWT" } } }'

Esempio CLI: utilizzo di PRIVATE_KEY_JWT come metodo di autenticazione del client

aws bedrock-agentcore-control create-oauth2-credential-provider \ --cli-input-json '{ "name": "sample-private-key-jwt", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "oauthDiscovery": { "discoveryUrl": "https://your-idp.example.com/.well-known/openid-configuration" }, "clientId": "your-client-id", "clientAuthenticationMethod": "PRIVATE_KEY_JWT", "privateKeyJwtConfig": { "privateKeySource": { "kmsKeySource": { "kmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/your-key-id" } }, "signingAlgorithm": "RS256" } } } }'

Per ulteriori informazioni sul riferimento di configurazione completo, inclusa la configurazione della chiave KMS, il supporto tra account e le opzioni dell'algoritmo di firma, vedere Private Key JWT. Autenticazione del client JWT con chiave privata

Comunicazione

Il tokenEndpointAuthMethods campo non è consigliato a favore del metodo di autenticazione del client ma mantenuto per la compatibilità con le versioni precedenti in CLI e SDK. Fornire entrambi nella stessa richiesta comporterà un errore di convalida.