Configurar el proveedor de credenciales
Los proveedores de credenciales de recursos de AgentCore Identity actúan como intermediarios inteligentes que gestionan las complejas relaciones entre los agentes, los proveedores de identidad y los servidores de recursos. Cada proveedor encapsula la configuración de punto final específica necesaria para un servicio o sistema de identidad en particular. El servicio proporciona proveedores integrados para servicios populares, como Google, Slack y Salesforce GitHub, con puntos de enlace del servidor de autorización y parámetros específicos del proveedor preconfigurados para reducir el esfuerzo de desarrollo. AgentCore Identity admite configuraciones personalizadas a través de proveedores de credenciales OAuth2 configurables que se pueden personalizar para que funcionen con cualquier servidor de recursos. OAuth2-compatible Para obtener información sobre los límites de los proveedores de credenciales de OAuth2, consulte Identity Service AgentCore Quotas.
Los proveedores de credenciales de recursos se integran en profundidad con el almacén de fichas para ofrecer una gestión perfecta del ciclo de vida de las credenciales. Cuando un agente solicita acceso a un recurso, el proveedor gestiona el flujo de autenticación, almacena las credenciales resultantes en el almacén de fichas y proporciona al agente las claves de acceso necesarias.
Crear un proveedor de credenciales de OAuth 2.0
Las configuraciones de los proveedores en AgentCore Identity definen los parámetros básicos necesarios para la administración de credenciales con diferentes recursos y sistemas de autenticación.
Si utiliza la AgentCore CLI, puede crear un proveedor de credenciales de OAuth 2.0 con el comando: 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 almacena la configuración de credenciales agentcore/agentcore.json y guarda los valores confidenciales (ID de cliente y secreto de cliente) en. agentcore/.env.local
Como alternativa, puedes aportar tu propio secreto proporcionando una referencia a un secreto de cliente que ya esté almacenado en 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
Como alternativa, puedes usar el AgentCore SDK para configurar un proveedor de credenciales de OAuth 2.0 mediante programación. El siguiente ejemplo configura un proveedor para. 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"
}
}
})
Para configurar el intercambio de tokens en nombre de (OBO) en un proveedor de credenciales de OAuth 2.0, añada un token a la configuración del proveedor. onBehalfOfTokenExchangeConfig Para ver los modos, parámetros y ejemplos compatibles, consulta el intercambio de tokens. On-behalf-of
Crear un proveedor de credenciales de clave API
En el caso de los servicios que utilizan claves de API para la autenticación en lugar de OAuth, AgentCore Identity almacenará y recuperará las claves de sus agentes de forma segura. Para obtener información sobre los límites de los proveedores de credenciales con clave de API, consulte AgentCore Identity Service Quotas.
Si utiliza la AgentCore CLI, puede almacenar una clave de API con un solo comando:
agentcore add credential --name your-service-name --api-key your-api-key
Como alternativa, puedes aportar tu propio secreto proporcionando una referencia a una clave de API ya almacenada en 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
Como alternativa, puedes usar el AgentCore SDK para almacenar una clave de API mediante programación:
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"
})
Crear un proveedor de credenciales de pago
En el caso de los servicios que utilizan credenciales de procesadores de pagos, como Coinbase CDP o Stripe Privy, AgentCore Identity almacena de forma segura las claves de API, los secretos de las aplicaciones y los secretos asociados en wallet/authorization Secrets Manager y solo muestra sus ARN a los agentes. Para obtener información sobre los límites de los proveedores de credenciales de pago, consulte AgentCore Identity Service Quotas.
Los proveedores de credenciales de pago admiten actualmente dos proveedores: CoinbaseCDP y. StripePrivy Introduzca exactamente un bloque de configuración debajo providerConfigurationInput que coincida con el que credentialProviderVendor elija. Como alternativa, puedes aportar tu propio secreto proporcionando una referencia a un secreto que ya esté almacenado en AWS Secrets Manager.
ejemplo
- AWS CLI
-
El siguiente ejemplo crea un proveedor de credenciales de pago para 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
El siguiente ejemplo crea un proveedor de credenciales de pago CDP de Coinbase con los secretos almacenados en 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
El siguiente ejemplo crea un proveedor de credenciales de pago para 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
El siguiente ejemplo crea un proveedor de credenciales de pago Stripe Privy con los secretos almacenados en 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
-
El siguiente ejemplo configura un proveedor para 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"
}
}
)
El siguiente ejemplo configura un proveedor de CDP de Coinbase con los secretos almacenados en 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"
}
}
}
)
El siguiente ejemplo configura un proveedor para 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"
}
}
)
El siguiente ejemplo configura un proveedor de Stripe Privy con los secretos almacenados en 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
-
El siguiente ejemplo configura un proveedor para 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"
}
}
)
El siguiente ejemplo configura un proveedor de CDP de Coinbase con los secretos almacenados en 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"
}
}
}
)
El siguiente ejemplo configura un proveedor para 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"
}
}
)
El siguiente ejemplo configura un proveedor de Stripe Privy con los secretos almacenados en 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"
}
}
)