View a markdown version of this page

Configurer le fournisseur d'informations d'identification - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer le fournisseur d'informations d'identification

Les fournisseurs d'informations d'identification des ressources dans AgentCore Identity agissent comme des intermédiaires intelligents qui gèrent les relations complexes entre les agents, les fournisseurs d'identité et les serveurs de ressources. Chaque fournisseur encapsule la configuration de point de terminaison spécifique requise pour un service ou un système d'identité particulier. Le service fournit des fournisseurs intégrés pour des services populaires tels que Google, Slack et Salesforce GitHub, avec des points de terminaison du serveur d'autorisation et des paramètres spécifiques aux fournisseurs préconfigurés pour réduire les efforts de développement. AgentCore Identity prend en charge les configurations personnalisées via des fournisseurs d'informations d'identification OAuth2 configurables qui peuvent être personnalisés pour fonctionner avec n'importe quel OAuth2-compatible serveur de ressources. Pour plus d'informations sur les limites des fournisseurs d'informations d'identification OAuth2, consultez la section Quotas de service AgentCore d'identité.

Les fournisseurs de ressources d'identification s'intègrent parfaitement au coffre-fort à jetons pour assurer une gestion fluide du cycle de vie des informations d'identification. Lorsqu'un agent demande l'accès à une ressource, le fournisseur gère le flux d'authentification, stocke les informations d'identification qui en résultent dans le coffre-fort à jetons et fournit à l'agent les jetons d'accès nécessaires.

Création d'un fournisseur d'informations d'identification OAuth 2.0

Les configurations des fournisseurs dans AgentCore Identity définissent les paramètres de base nécessaires à la gestion des informations d'identification avec différentes ressources et systèmes d'authentification.

Si vous utilisez l' AgentCore interface de ligne de commande, vous pouvez créer un fournisseur d'informations d'identification OAuth 2.0 à l'aide de la commande suivante : agentcore add credential

agentcore add credential --type oauth \ --name github-provider \ --discovery-url https://your-idp/.well-known/openid-configuration \ --client-id your-github-client-id \ --client-secret your-github-client-secret \ --scopes repo,user

La CLI stocke la configuration des informations d'identification agentcore/agentcore.json et enregistre les valeurs sensibles (ID client et secret client) dans. agentcore/.env.local

Vous pouvez également apporter votre propre secret en fournissant une référence à un secret client déjà stocké dans AWS Secrets Manager :

aws bedrock-agentcore-control create-oauth2-credential-provider \ --name "github-provider" \ --credential-provider-vendor "GithubOauth2" \ --oauth2-provider-config-input '{ "githubOauth2ProviderConfig": { "clientId": "your-github-client-id", "clientSecretSource": "EXTERNAL", "clientSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret", "jsonKey": "clientSecret" } } }' \ --region us-east-1

Vous pouvez également utiliser le AgentCore SDK pour configurer un fournisseur d'informations d'identification OAuth 2.0 par programmation. L'exemple suivant configure un fournisseur pour GitHub.

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") github_provider = identity_client.create_oauth2_credential_provider({ "name": "github-provider", "credentialProviderVendor": "GithubOauth2", "oauth2ProviderConfigInput": { "githubOauth2ProviderConfig": { "clientId": "your-github-client-id", "clientSecret": "your-github-client-secret" } } })

Pour configurer l'échange de jetons pour le compte (OBO) sur un fournisseur d'informations d'identification OAuth 2.0, ajoutez un à la configuration du fournisseur. onBehalfOfTokenExchangeConfig Pour les modes, les paramètres et les exemples pris en charge, consultez la section échange de On-behalf-of jetons.

Pour vous authentifier auprès d'un point de terminaison de jeton en aval à l'aide d'une assertion client JWT signée soutenue par une clé AWS KMS au lieu d'un secret client, configurez PRIVATE_KEY_JWT comme méthode d'authentification client. Pour les instructions de configuration, les options d'algorithme de signature et les exigences relatives à la clé KMS, consultez Private Key JWT.

Création d'un fournisseur d'informations d'identification pour les clés d'API

Pour les services qui utilisent des clés d'API pour l'authentification plutôt que OAuth, AgentCore Identity stockera et récupérera en toute sécurité les clés de vos agents. Pour plus d'informations sur les limites des fournisseurs d'informations d'identification par clé d'API, consultez la section Quotas de service AgentCore d'identité.

Si vous utilisez l' AgentCore interface de ligne de commande, vous pouvez stocker une clé d'API à l'aide d'une seule commande :

agentcore add credential --name your-service-name --api-key your-api-key

Vous pouvez également apporter votre propre secret en fournissant une référence à une clé API déjà stockée dans AWS Secrets Manager :

aws bedrock-agentcore-control create-api-key-credential-provider \ --name "your-service-name" \ --api-key-secret-source EXTERNAL \ --api-key-secret-config secretId=arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret,jsonKey=api_key \ --region us-east-1

Vous pouvez également utiliser le AgentCore SDK pour stocker une clé d'API par programmation :

from bedrock_agentcore.services.identity import IdentityClient identity_client= IdentityClient("us-east-1") apikey_provider= identity_client.create_api_key_credential_provider({ "name": "your-service-name", "apiKey": "your-api-key" })

Création d'un fournisseur d'informations de paiement

Pour les services qui utilisent des informations d'identification de processeur de paiement tels que Coinbase CDP ou Stripe Privy, AgentCore Identity stocke en toute sécurité les clés d'API, les secrets d'application et les secrets associés dans wallet/authorization Secrets Manager et transmet uniquement leurs ARN à vos agents. Pour plus d'informations sur les limites des fournisseurs d'informations de paiement, consultez la section Quotas de service AgentCore d'identité.

Les fournisseurs d'informations de paiement prennent actuellement en charge deux fournisseurs : CoinbaseCDP etStripePrivy. Fournissez exactement un bloc de configuration en dessous providerConfigurationInput qui correspond à celui que credentialProviderVendor vous avez choisi. Vous pouvez également apporter votre propre secret en fournissant une référence à un secret déjà enregistré dans AWS Secrets Manager.

Exemple
AWS CLI

L'exemple suivant crée un fournisseur d'informations de paiement pour Coinbase CDP :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "coinbase-provider" \ --credential-provider-vendor CoinbaseCDP \ --provider-configuration-input '{ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } }' \ --region us-east-1

L'exemple suivant crée un fournisseur d'informations de paiement Coinbase CDP avec des secrets stockés dans AWS Secrets Manager :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "coinbase-provider" \ --credential-provider-vendor "CoinbaseCDP" \ --provider-configuration-input '{ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } }' \ --region us-east-1

L'exemple suivant crée un fournisseur d'informations de paiement pour Stripe Privy :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "stripe-privy-provider" \ --credential-provider-vendor StripePrivy \ --provider-configuration-input '{ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } }' \ --region us-east-1

L'exemple suivant crée un fournisseur d'informations de paiement Stripe Privy avec des secrets stockés dans AWS Secrets Manager :

aws bedrock-agentcore-control create-payment-credential-provider \ --name "stripe-privy-provider" \ --credential-provider-vendor "StripePrivy" \ --provider-configuration-input '{ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } }' \ --region us-east-1
AWS SDK

L'exemple suivant configure un fournisseur pour Coinbase CDP :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") coinbase_provider = client.create_payment_credential_provider( name="coinbase-provider", credentialProviderVendor="CoinbaseCDP", providerConfigurationInput={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } } )

L'exemple suivant configure un fournisseur Coinbase CDP avec des secrets stockés dans AWS Secrets Manager :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") coinbase_provider = client.create_payment_credential_provider( name="coinbase-provider", credentialProviderVendor="CoinbaseCDP", providerConfigurationInput={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } } )

L'exemple suivant configure un fournisseur pour Stripe Privy :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") stripe_privy_provider = client.create_payment_credential_provider( name="stripe-privy-provider", credentialProviderVendor="StripePrivy", providerConfigurationInput={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } } )

L'exemple suivant configure un fournisseur Stripe Privy avec des secrets stockés dans AWS Secrets Manager :

import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") stripe_privy_provider = client.create_payment_credential_provider( name="stripe-privy-provider", credentialProviderVendor="StripePrivy", providerConfigurationInput={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } } )
AgentCore SDK

L'exemple suivant configure un fournisseur pour Coinbase CDP :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") coinbase_provider = identity_client.create_payment_credential_provider( name="coinbase-provider", credential_provider_vendor="CoinbaseCDP", provider_configuration_input={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } } )

L'exemple suivant configure un fournisseur Coinbase CDP avec des secrets stockés dans AWS Secrets Manager :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") coinbase_provider = identity_client.create_payment_credential_provider( name="coinbase-provider", credential_provider_vendor="CoinbaseCDP", provider_configuration_input={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecretSource": "EXTERNAL", "apiKeySecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-secret", "jsonKey": "apiKeySecret" }, "walletSecretSource": "EXTERNAL", "walletSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-wallet-secret", "jsonKey": "walletSecret" } } } )

L'exemple suivant configure un fournisseur pour Stripe Privy :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") stripe_privy_provider = identity_client.create_payment_credential_provider( name="stripe-privy-provider", credential_provider_vendor="StripePrivy", provider_configuration_input={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } } )

L'exemple suivant configure un fournisseur Stripe Privy avec des secrets stockés dans AWS Secrets Manager :

from bedrock_agentcore.services.identity import IdentityClient identity_client = IdentityClient("us-east-1") stripe_privy_provider = identity_client.create_payment_credential_provider( name="stripe-privy-provider", credential_provider_vendor="StripePrivy", provider_configuration_input={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecretSource": "EXTERNAL", "appSecretConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-app-secret", "jsonKey": "appSecret" }, "authorizationPrivateKeySource": "EXTERNAL", "authorizationPrivateKeyConfig": { "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-auth-key-secret", "jsonKey": "authorizationPrivateKey" }, "authorizationId": "your-stripe-privy-authorization-id" } } )