View a markdown version of this page

Anmeldeinformationsanbieter konfigurieren - Amazon Grundgestein AgentCore

Anmeldeinformationsanbieter konfigurieren

Anbieter von Ressourcenanmeldedaten in AgentCore Identity agieren als intelligente Vermittler, die die komplexen Beziehungen zwischen Agenten, Identitätsanbietern und Ressourcenservern verwalten. Jeder Anbieter kapselt die spezifische Endpunktkonfiguration, die für einen bestimmten Dienst oder ein bestimmtes Identitätssystem erforderlich ist. Der Service bietet integrierte Anbieter für beliebte Dienste wie Google GitHub, Slack und Salesforce mit vorkonfigurierten Autorisierungsserver-Endpunkten und anbieterspezifischen Parametern, um den Entwicklungsaufwand zu reduzieren. AgentCore Identity unterstützt benutzerdefinierte Konfigurationen über konfigurierbare OAuth2-Anmeldeinformationsanbieter, die auf die Verwendung mit jedem Ressourcenserver zugeschnitten werden können. OAuth2-compatible Informationen zu den Beschränkungen des OAuth2-Anmeldeinformationsanbieters finden Sie unter AgentCore Identity Service Quotas.

Anbieter von Ressourcenanmeldedaten sind tief in den Token-Vault integriert, um ein nahtloses Lebenszyklusmanagement für Anmeldeinformationen zu gewährleisten. Wenn ein Agent Zugriff auf eine Ressource anfordert, wickelt der Anbieter den Authentifizierungsablauf ab, speichert die resultierenden Anmeldeinformationen im Token-Tresor und stellt dem Agenten die erforderlichen Zugriffstoken zur Verfügung.

Erstellen eines OAuth 2.0-Anmeldeinformationsanbieters

Anbieterkonfigurationen in AgentCore Identity definieren die grundlegenden Parameter, die für die Verwaltung von Anmeldeinformationen mit unterschiedlichen Ressourcen und Authentifizierungssystemen erforderlich sind.

Wenn Sie die AgentCore CLI verwenden, können Sie mit dem folgenden Befehl einen OAuth 2.0-Anbieter für Anmeldeinformationen erstellen: 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

Die CLI speichert die Konfiguration der Anmeldeinformationen in agentcore/agentcore.json und speichert sensible Werte (Client-ID und Client-Geheimnis) unter. agentcore/.env.local

Alternativ können Sie Ihr eigenes Geheimnis mitbringen, indem Sie einen Verweis auf ein Kundengeheimnis angeben, das bereits in AWS Secrets Manager gespeichert ist:

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

Alternativ können Sie das AgentCore SDK verwenden, um einen OAuth 2.0-Anbieter für Anmeldeinformationen programmgesteuert zu konfigurieren. Im folgenden Beispiel wird ein Anbieter für konfiguriert. 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" } } })

Um den Tokenaustausch im Namen (OBO) auf einem OAuth 2.0-Anbieter für Anmeldeinformationen zu konfigurieren, fügen Sie der Anbieterkonfiguration einen hinzu. onBehalfOfTokenExchangeConfig Informationen zu unterstützten Modi, Parametern und Beispielen finden Sie unter Token-Austausch. On-behalf-of

Einen Anbieter für API-Schlüsselanmeldedaten erstellen

Für Dienste, die API-Schlüssel anstelle von OAuth zur Authentifizierung verwenden, speichert und ruft AgentCore Identity die Schlüssel für Ihre Agenten sicher ab. Informationen zu den Beschränkungen des Anbieters von API-Schlüsselanmeldedaten finden Sie unter AgentCore Identity Service Quotas.

Wenn Sie die AgentCore CLI verwenden, können Sie einen API-Schlüssel mit einem einzigen Befehl speichern:

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

Alternativ können Sie Ihr eigenes Geheimnis mitbringen, indem Sie einen Verweis auf einen API-Schlüssel angeben, der bereits in AWS Secrets Manager gespeichert ist:

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

Alternativ können Sie das AgentCore SDK verwenden, um einen API-Schlüssel programmgesteuert zu speichern:

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" })

Einen Anbieter für Zahlungsnachweise erstellen

Für Dienste, die Anmeldeinformationen für Zahlungsabwickler verwenden, wie Coinbase CDP oder Stripe Privy, speichert AgentCore Identity die zugehörigen API-Schlüssel, App-Geheimnisse und Geheimnisse sicher im Secrets Manager und wallet/authorization gibt nur deren ARNs an Ihre Agenten weiter. Informationen zu den Limits des Anbieters von Zahlungsberechtigungen finden Sie unter AgentCore Identity Service Quotas.

Anbieter von Zahlungsnachweisen unterstützen derzeit zwei Anbieter: CoinbaseCDP und. StripePrivy Geben Sie genau einen Konfigurationsblock darunter anproviderConfigurationInput, der dem von credentialProviderVendor Ihnen ausgewählten entspricht. Alternativ können Sie Ihr eigenes Geheimnis mitbringen, indem Sie einen Verweis auf ein bereits im AWS Secrets Manager gespeichertes Geheimnis angeben.

Beispiel
AWS CLI

Im folgenden Beispiel wird ein Anbieter für Zahlungsinformationen für Coinbase CDP erstellt:

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

Das folgende Beispiel erstellt einen Coinbase CDP-Anbieter für Zahlungsinformationen mit Geheimnissen, die im AWS Secrets Manager gespeichert sind:

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

Das folgende Beispiel erstellt einen Anbieter für Zahlungsinformationen für 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

Im folgenden Beispiel wird ein Stripe Privy-Zahlungsdienstanbieter mit Geheimnissen erstellt, die im AWS Secrets Manager gespeichert sind:

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

Das folgende Beispiel konfiguriert einen Anbieter für 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" } } )

Das folgende Beispiel konfiguriert einen Coinbase CDP-Anbieter mit Geheimnissen, die im AWS Secrets Manager gespeichert sind:

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" } } } )

Das folgende Beispiel konfiguriert einen Anbieter für 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" } } )

Im folgenden Beispiel wird ein Stripe Privy-Anbieter mit Geheimnissen konfiguriert, die im AWS Secrets Manager gespeichert sind:

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

Das folgende Beispiel konfiguriert einen Anbieter für 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" } } )

Das folgende Beispiel konfiguriert einen Coinbase CDP-Anbieter mit Geheimnissen, die im AWS Secrets Manager gespeichert sind:

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" } } } )

Das folgende Beispiel konfiguriert einen Anbieter für 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" } } )

Im folgenden Beispiel wird ein Stripe Privy-Anbieter mit Geheimnissen konfiguriert, die im AWS Secrets Manager gespeichert sind:

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" } } )