View a markdown version of this page

Spécifiez le type d'autorisation et les informations d'identification pour accéder à la cible de la passerelle - Amazon Bedrock AgentCore

Spécifiez le type d'autorisation et les informations d'identification pour accéder à la cible de la passerelle

Dans le corps de la CreateGatewayTargetdemande, vous spécifiez la configuration du fournisseur d'informations d'identification dans le credentialProviderConfigurations tableau. La configuration dépend du type d'autorisation sortante que vous avez configuré. Pour des informations de référence sur la structure de l'API pour la configuration du fournisseur d'informations d'identification, consultez CredentialProviderConfiguration. Pour plus d'informations sur l'autorisation sortante, voir Configurer l'autorisation sortante pour votre passerelle.

Pour en savoir plus sur la configuration d'un fournisseur d'informations d'identification, sélectionnez une rubrique :

AgentCore Autorisation du rôle de service de passerelle (IAM)

Si vous utilisez l'autorisation IAM via un rôle de service de AgentCore passerelle pour votre cible, spécifiez le credentialProviderType asGATEWAY_IAM_ROLE. La configuration dépend de votre type de cible.

Pour les cibles Lambda, API Gateway, Smithy et Connector

La iamCredentialProvider configuration n'est pas nécessaire car le nom du service cible est déjà connu du service AgentCore Gateway. Utilisez uniquement la credentialProviderType configuration, comme indiqué dans l'exemple suivant :

{ "credentialProviderType": "GATEWAY_IAM_ROLE" }

Pour le serveur MCP et les cibles OpenAPI

Pour le serveur MCP et les cibles OpenAPI, vous devez également fournir iamCredentialProvider un avec le nom de service utilisé AWS pour la signature de Signature Version 4 (Sig V4). Le champ service est obligatoire. Le region champ est facultatif et correspond par défaut à la région de la passerelle.

{ "credentialProviderType": "GATEWAY_IAM_ROLE", "credentialProvider": { "iamCredentialProvider": { "service": "execute-api", "region": "us-west-2" } } }

Le tableau suivant décrit les champs de l'iamCredentialProviderobjet :

Champ Obligatoire Description

service

Oui

Le nom du AWS service utilisé pour la signature SigV4. Cette valeur doit correspondre au nom de service attendu par la cible lors de la vérification de la signature SigV4. Les valeurs les plus courantes sont les suivantes :

  • bedrock-agentcore— Pour les serveurs MCP hébergés sur Amazon Bedrock AgentCore, tels que le runtime (voir Déployer des serveurs MCP dans AgentCore Runtime) ou une autre passerelle.

  • execute-api— Pour les serveurs MCP ou les cibles OpenAPI derrière Amazon API Gateway.

  • lambda— Pour les serveurs MCP dotés d'URL de fonctions Lambda.

region

Non

La AWS région pour la signature SigV4. En cas d'omission, la valeur par défaut est la région de la passerelle.

Autorisation OAuth

Si vous utilisez l'autorisation OAuth, vous devez spécifier le credentialProviderType as. OAUTH Dans l'objet auquel le credentialProvider champ correspond, associez un nom de oauthCredentialProvider champ à un OAuthCredentialProviderobjet et fournissez les valeurs en fonction de votre configuration d'autorisation sortante.

La structure du OAuthCredentialProvidervarie en fonction du type de modèle d'authentification que vous avez configuré. Pour en savoir plus sur les différents modèles d'authentification, consultez Modèles d'authentification pris en charge.

  • Si vous configurez l'authentification de machine à machine, également connue sous le nom d'octroi d'informations d'identification client ou d'authentification OAuth à deux pattes (2LO), suivez la structure de l'onglet Informations d'identification du client.

  • Si vous configurez un accès délégué par l'utilisateur, également appelé octroi de code d'autorisation ou OAuth à 3 étapes (3LO), suivez la structure de l'onglet Code d'autorisation.

  • Si vous configurez l'échange de jetons au nom de l'acteur pour propager l'identité d'un utilisateur authentifié vers un service en aval ou pour obtenir un jeton d'accès avec le contexte de l'acteur, suivez la structure de l'onglet Échange de jetons (). On-behalf-of

Sélectionnez l'une des méthodes suivantes :

Exemple
Client credentials
  1. Spécifiez le grantType asCLIENT_CREDENTIALS, comme dans l'exemple suivant :

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "CLIENT_CREDENTIALS", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }
Authorization code
  1. Spécifiez le grantType as AUTHORIZATION_CODE et incluez, dans le defaultReturnUrl champ, l'URL vers laquelle rediriger le navigateur de l'utilisateur final après avoir obtenu le code d'autorisation, comme dans l'exemple suivant :

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "AUTHORIZATION_CODE", "defaultReturnUrl": "string", "scopes": [ "string", ... ], "customParameters": { "string": "string" } } } }

    Pour en savoir plus sur l'authentification 3LO, consultez la section Liaison de session par URL d'autorisation OAuth 2.0.

Token exchange (On-behalf-of)
  1. Spécifiez le grantType asTOKEN_EXCHANGE. La passerelle échange le jeton d'accès de l'utilisateur entrant contre un jeton ciblé via le fournisseur d'informations d'identification. Incluez tous IdP-specific les paramètres danscustomParameters. Pour plus d'informations sur la configuration du fournisseur d'informations d'identification, consultez la section échange de On-behalf-of jetons.

    { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "grantType": "TOKEN_EXCHANGE", "scopes": [ "string", ... ], "customParameters": { "subject_token_type": "urn:ietf:params:oauth:token-type:access_token" } } } }
    Note

    Le customParameters champ transmet les valeurs directement au point de terminaison du jeton du fournisseur d'identité. Les paramètres requis varient d'un fournisseur à l'autre. Par exemple, Okta nécessite un audience paramètre en plus desubject_token_type. Consultez la documentation de votre fournisseur d'identité et l'échange de On-behalf-of jetons pour plus de détails.

Autorisation par clé d'API

Si vous configurez l'autorisation par clé d'API, vous spécifiez le credentialProviderType asAPI_KEY. Dans l'objet auquel le credentialProvider champ correspond, associez un nom de apiKeyCredentialProvider champ à un ApiKeyCredentialProviderobjet et fournissez les valeurs en fonction de votre configuration d'autorisation sortante. Le JSON suivant montre la structure :

{ "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "string", "credentialLocation": "HEADER" | "QUERY_PARAMETER", "credentialParameterName": "string", "credentialPrefix": "string" } } }

Autorisation des informations d'identification IAM de l'appelant

Si vous souhaitez que la passerelle utilise l'identité IAM et les autorisations de l'appelant pour signer les demandes adressées à la cible en aval, spécifiez le credentialProviderType as. CALLER_IAM_CREDENTIALS Avec ce type d'autorisation, la passerelle envoie une demande à la cible en aval au nom de l'appelant de la passerelle à l'aide de SigV4. Cela permet à la cible en aval d'appliquer des politiques IAM en fonction de la personne qui a initialement appelé la passerelle.

Note

CALLER_IAM_CREDENTIALSn'est disponible que pour les passerelles dotées AWS_IAM ou AUTHENTICATE_ONLY en tant que type d'autorisateur.

{ "credentialProviderType": "CALLER_IAM_CREDENTIALS" }

Autorisation de transfert JWT

Si vous souhaitez que la passerelle transmette le jeton porteur de la demande entrante directement à la cible en aval sans modification, spécifiez le credentialProviderType asJWT_PASSTHROUGH. La passerelle valide le jeton entrant, puis le transmet à la cible dans la demande sortante. Cela est utile lorsque le service cible gère sa propre autorisation à l'aide du jeton de l'appelant d'origine.

Note

JWT_PASSTHROUGHn'est disponible que pour les cibles HTTP (passthrough et AgentCore Runtime).

{ "credentialProviderType": "JWT_PASSTHROUGH" }