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à.
Amazon Cognito
Amazon Cognito può essere configurato come provider di identità per l'accesso a AgentCore Gateway e Runtime o come provider di credenziali di AgentCore identità per l'accesso alle risorse in uscita. Ciò consente ai tuoi agenti di autenticare e autorizzare gli utenti degli agenti con Cognito come provider di identità e server di autorizzazione, oppure ai tuoi agenti di ottenere le credenziali per accedere alle risorse autorizzate da Cognito.
In entrata
Per aggiungere Cognito come provider di identità e server di autorizzazione per l'accesso a AgentCore Gateway e Runtime, devi:
-
Configura l'URL di rilevamento dalla tua directory IDP. Ciò consente a AgentCore Identity di ottenere i metadati relativi al server di autorizzazione OAuth e alle chiavi di verifica dei token.
-
Inserisci uno
clientIdo piùaudreclami validi per il token. Questo aiuta a convalidare i token provenienti dal tuo IDP e a consentire l'accesso ai token che contengono attestazioni previste.
Utilizza la seguente procedura per creare un pool di utenti Cognito come provider di identità in entrata per l'autenticazione degli utenti con Runtime. AgentCore I passaggi seguenti creeranno un pool di utenti Cognito, un client del pool di utenti, aggiungeranno un utente e genereranno un token al portatore per l'utente. Per impostazione predefinita, il token è valido per 60 minuti.
Per creare un pool di utenti Cognito come provider di identità in entrata per l'autenticazione Runtime
-
Crea un file denominato
setup_cognito.shcon i seguenti contenuti:Nota
Il seguente script è solo un esempio. È necessario personalizzare le impostazioni del pool di utenti e le credenziali utente in base alle esigenze dell'applicazione. Non utilizzate questo script direttamente negli ambienti di produzione.
#!/bin/bash # Create User Pool and capture Pool ID directly export POOL_ID=$(aws cognito-idp create-user-pool \ --pool-name "MyUserPool" \ --policies '{"PasswordPolicy":{"MinimumLength":8}}' \ --region us-east-1 | jq -r '.UserPool.Id') # Create App Client and capture Client ID directly export CLIENT_ID=$(aws cognito-idp create-user-pool-client \ --user-pool-id $POOL_ID \ --client-name "MyClient" \ --no-generate-secret \ --explicit-auth-flows "ALLOW_USER_PASSWORD_AUTH" "ALLOW_REFRESH_TOKEN_AUTH" \ --region us-east-1 | jq -r '.UserPoolClient.ClientId') # Create User aws cognito-idp admin-create-user \ --user-pool-id $POOL_ID \ --username "testuser" \ --temporary-password "${temp-password}" \ --region us-east-1 \ --message-action SUPPRESS > /dev/null # Set Permanent Password aws cognito-idp admin-set-user-password \ --user-pool-id $POOL_ID \ --username "testuser" \ --password "${permanent-user-password}" \ --region us-east-1 \ --permanent > /dev/null # Authenticate User and capture Access Token export BEARER_TOKEN=$(aws cognito-idp initiate-auth \ --client-id "$CLIENT_ID" \ --auth-flow USER_PASSWORD_AUTH \ --auth-parameters USERNAME='testuser',PASSWORD='${permanent-user-password}' \ --region us-east-1 | jq -r '.AuthenticationResult.AccessToken') # Output the required values echo "Pool id: $POOL_ID" echo "Discovery URL: https://cognito-idp.us-east-1.amazonaws.com/$POOL_ID/.well-known/openid-configuration" echo "Client ID: $CLIENT_ID" echo "Bearer Token: $BEARER_TOKEN" -
Esegui lo script per creare le risorse Cognito:
source setup_cognito.sh -
Registra i valori di output, che saranno simili a:
Pool id: us-east-1_poolid Discovery URL: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_userpoolid/.well-known/openid-configuration Client ID: clientid Bearer Token: bearertokenAvrai bisogno di questi valori nei passaggi successivi.
Utilizza la seguente procedura per creare un pool di utenti Cognito come provider di identità in entrata per l'autenticazione da macchina a macchina con Gateway. AgentCore I passaggi seguenti creeranno un pool di utenti, un server di risorse, le credenziali del client e la configurazione dell'URL di scoperta. Questa configurazione abilita i flussi di autenticazione M2M per l'accesso al Gateway.
Per creare un pool di utenti Cognito come provider di identità in entrata per l'autenticazione Gateway
-
Crea un pool di utenti:
aws cognito-idp create-user-pool \ --region us-west-2 \ --pool-name "gateway-user-pool" -
Registra l'ID del pool di utenti dalla risposta o recuperalo utilizzando:
aws cognito-idp list-user-pools \ --region us-west-2 \ --max-results 60 -
Crea un server di risorse per il pool di utenti:
aws cognito-idp create-resource-server \ --region us-west-2 \ --user-pool-id <UserPoolId> \ --identifier "gateway-resource-server" \ --name "GatewayResourceServer" \ --scopes '[{"ScopeName":"read","ScopeDescription":"Read access"}, {"ScopeName":"write","ScopeDescription":"Write access"}]' -
Crea un client per il pool di utenti:
aws cognito-idp create-user-pool-client \ --region us-west-2 \ --user-pool-id <UserPoolId> \ --client-name "gateway-client" \ --generate-secret \ --allowed-o-auth-flows client_credentials \ --allowed-o-auth-scopes "gateway-resource-server/read" "gateway-resource-server/write" \ --allowed-o-auth-flows-user-pool-client \ --supported-identity-providers "COGNITO"Registra l'ID e il segreto del cliente contenuti nella risposta. Avrai bisogno di questi valori per configurare il provider Cognito in AgentCore Identity.
-
Se necessario, crea un dominio per il tuo pool di utenti:
aws cognito-idp create-user-pool-domain \ --domain <UserPoolIdWithoutUnderscore> \ --user-pool-id <UserPoolId> \ --region us-west-2Nota
Rimuovi qualsiasi carattere di sottolineatura
UserPoolIddurante la creazione del dominio. Ad esempio, se l'ID del tuo pool di utenti è «US-West-2_GMSGKKGR9", utilizza «US-West-2GMSGKKGR9" come dominio. -
Costruisci l'URL di scoperta per il tuo pool di utenti Cognito:
https://cognito-idp.us-west-2.amazonaws.com/<UserPoolId>/.well-known/openid-configuration -
Configura il Gateway Inbound Auth con i seguenti valori:
-
URL di scoperta: l'URL creato nel passaggio precedente
-
Client consentiti: l'ID client ottenuto durante la creazione del client del pool di utenti
-
In uscita
Nota
AgentCore Identity emette un URL di callback OAuth2 univoco per ogni provider di credenziali creato. L'URL di callback univoco abilita l'associazione di sessione, che protegge lo scambio di codice di autorizzazione OAuth2 dalla ripetizione e dagli CSRF-style attacchi tra provider, garantendo che una risposta di autorizzazione possa essere riscattata solo rispetto allo specifico provider di credenziali che l'ha avviata. Poiché l'URL è unico per ogni provider, lo conoscerai solo dopo aver chiamato. CreateOauth2CredentialProvider Crea prima il client dell'app del pool di utenti Cognito, quindi torna alla console Amazon Cognito per registrare l'URL di callback una volta che AgentCore Identity lo ha emesso.
Passaggio 1: crea il client dell'app del pool di utenti Cognito
Utilizza la seguente procedura per configurare un client di app per pool di utenti Cognito per la federazione OAuth2 in uscita. Registrerai l'URI di reindirizzamento nel passaggio 3, dopo che AgentCore Identity avrà emesso l'URL di callback univoco.
Per configurare un client dell'app per pool di utenti Cognito
-
Nella console Amazon Cognito, apri o crea il pool di utenti che desideri utilizzare come fornitore di risorse in uscita.
-
Configura un dominio del pool di utenti in modo che l'interfaccia utente ospitata possa emettere codici di autorizzazione.
-
Crea un client di app per il pool di utenti, genera un segreto client e abilita il flusso OAuth2 per la concessione del codice di autorizzazione.
-
Seleziona gli ambiti OAuth2 richiesti dalla tua applicazione.
-
Lascia vuoto il campo URL di callback consentiti per ora: aggiungerai l'URL di callback univoco nel passaggio 3.
-
Registra l'ID cliente e il segreto del cliente. Avrai bisogno di questi valori per configurare il provider Cognito in AgentCore Identity.
-
Annota il prefisso di dominio e l'ID del pool di utenti del tuo pool di utenti. Li utilizzerai per creare gli endpoint di autorizzazione, token ed emittente nella Fase 2.
Per maggiori dettagli, consulta Configurare un client per app nella Amazon Cognito Developer Guide.
Passaggio 2: creare il fornitore di credenziali di AgentCore identità
Per configurare i pool di utenti di Cognito come provider di risorse in uscita, utilizza la seguente configurazione:
{ "name": "Cognito", "credentialProviderVendor": "CognitoOauth2", "oauth2ProviderConfigInput" : { "includedOauth2ProviderConfig": { "clientId": "your-client-id", "clientSecret": "your-client-secret", "authorizationEndpoint": "https://{your-cognito-domain}.auth.us-east-1.amazoncognito.com/oauth2/authorize", "tokenEndpoint": "https://{your-cognito-domain}.auth.us-east-1.amazoncognito.com/oauth2/token", "issuer": "https://cognito-idp.us-east-1.amazonaws.com/{your-user-pool-id}" } } }
La CreateOauth2CredentialProvider risposta include un callbackUrl campo. Questo URL è unico per questo fornitore di credenziali e ha il seguente aspetto:https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Salva questo valore per il passaggio successivo.
Passaggio 3: registra l'URL di callback univoco con Cognito
Torna alla console Amazon Cognito e aggiungi l'URL di callback univoco ai callback consentiti dal tuo app client.
-
Nella console Amazon Cognito, apri il client dell'app del pool di utenti che hai creato nel passaggio 1.
-
Nella configurazione dell'interfaccia utente ospitata del client dell'app, aggiungi il
callbackUrlvalore restituito daCreateOauth2CredentialProvidera Allowed callback URLs. -
Salvare le modifiche.