Configuration du fournisseur d'informations d'identification
Les fournisseurs d'informations d'identification de 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 de 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 adapté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 AgentCore Quotas du Service d'identité.
Les fournisseurs d'informations d'identification des ressources s'intègrent en profondeur au coffre à 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 obtenues dans le coffre de 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érents systèmes d'authentification et ressources.
Si vous utilisez la AgentCore CLI, 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 au nom (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.
Création d'un fournisseur d'informations d'identification par clé 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 les clés de manière sécurisée pour vos agents. Pour plus d'informations sur les limites des fournisseurs d'informations d'identification par clé d'API, consultez AgentCore Identity Service Quotas.
Si vous utilisez la AgentCore CLI, 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é d'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 les informations d'identification des processeurs de paiement tels que Coinbase CDP ou Stripe Privy, AgentCore Identity stocke en toute sécurité les clés d'API, les secrets des applications et les secrets associés dans wallet/authorization Secrets Manager et ne communique que leurs ARN à vos agents. Pour plus d'informations sur les limites imposées aux fournisseurs d'identifiants de paiement, consultez la section AgentCore Identity Service Quotas.
Les fournisseurs d'identifiants 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 Secrets Manager AWS :
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'identifiants de paiement Stripe Privy dont les secrets sont 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 Secrets Manager AWS :
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 Secrets Manager AWS :
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"
}
}
)