Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le protocole Agent2Agent (A2A) permet à vos agents d’appeler d’autres agents. La plupart des points de terminaison A2A nécessitent une authentification pour accéder au point de terminaison et à son service sous-jacent. La configuration de l'authentification garantit que seuls les utilisateurs autorisés peuvent appeler vos outils A2A dans le service Agent Foundry.
Cet article explique les méthodes d’authentification disponibles pour les connexions A2A et vous aide à choisir l’approche appropriée pour votre scénario.
Scénarios d’authentification
En général, il existe deux scénarios d’authentification :
- Authentification partagée : chaque utilisateur de votre agent utilise la même identité pour s’authentifier auprès du point de terminaison A2A. Le contexte utilisateur individuel n’est pas conservé. Cette approche est idéale lorsque tous les utilisateurs doivent avoir le même niveau d’accès. Par exemple, si vous créez un agent de conversation pour récupérer des informations à partir de Azure Cosmos DB pour votre organisation, vous souhaiterez peut-être que chaque utilisateur accède au même conteneur partagé sans nécessiter de connexion individuelle.
- Authentification individuelle : chaque utilisateur de votre agent s’authentifie avec son propre compte, de sorte que son contexte utilisateur persiste entre les interactions. Cette approche est essentielle lorsque les actions doivent être étendues aux autorisations de l’utilisateur. Par exemple, si vous créez un agent de codage qui récupère les validations et extrait les demandes de GitHub, vous souhaitez que chaque développeur se connecte avec son propre compte GitHub afin qu’il voit uniquement les référentiels auxquels il a accès.
Conditions préalables
Avant de choisir une méthode d’authentification, vous avez besoin des éléments suivants :
- Accès au portail Foundry et à un projet. Si vous n’en avez pas, consultez Créer des projets dans Foundry.
- Rôle utilisateur Azure AI ou supérieur sur votre projet. Ce rôle accorde des autorisations pour créer des connexions de projet et configurer des agents. Pour plus d’informations, consultez le contrôle d’accès en fonction du rôle dans le portail Foundry.
- URL de point de terminaison A2A à laquelle vous souhaitez vous connecter. Contactez l’éditeur de point de terminaison pour confirmer les méthodes d’authentification que le point de terminaison prend en charge.
- Informations d’identification pour votre méthode d’authentification sélectionnée :
- Basé sur clé : clé API, jeton d’accès personnel (PAT) ou autre jeton secret du fournisseur du point de terminaison.
- Authentification Microsoft Entra : attributions de rôles pour l’identité de l’agent ou l’identité gérée du projet dans le service sous-jacent. Les rôles spécifiques dépendent du service (par exemple, Cosmos DB Data Reader pour Azure Cosmos DB).
Choisir une méthode d’authentification
La méthode d’authentification que vous choisissez varie selon que vous avez besoin d’un contexte utilisateur partagé ou individuel et des protocoles d’authentification pris en charge par le point de terminaison A2A.
Utilisez le tableau suivant pour choisir la méthode appropriée pour votre scénario :
| Votre objectif | Méthode recommandée |
|---|---|
| Utiliser une identité partagée pour tous les utilisateurs | Authentification par clé ou authentification Microsoft Entra |
| Conserver l’identité et les autorisations de chaque utilisateur | Transfert direct d’identité OAuth |
| Évitez de gérer les secrets lorsque le service sous-jacent prend en charge Microsoft Entra | Authentification Microsoft Entra |
| Se connecter à un point de terminaison A2A qui ne nécessite pas d’authentification | Accès non authentifié |
Méthodes d’authentification prises en charge
Le tableau suivant récapitule les méthodes d’authentification disponibles pour les connexions A2A :
| Méthode | Description | Le contexte utilisateur persiste |
|---|---|---|
| Basé sur des clés | Fournissez une clé API ou un jeton d’accès pour vous authentifier auprès du point de terminaison A2A. Idéal pour les points de terminaison qui utilisent l’authentification basée sur des jetons simples. | Non |
| Microsoft Entra ID - Identité de l’agent | Utilisez l’identité managée de l’agent pour s’authentifier. Nécessite des attributions de rôles sur le service sous-jacent. Idéal pour les services Azure qui prennent en charge les identités managées. | Non |
| Microsoft Entra ID - identité managée du projet | Utilisez l’identité managée du projet pour s’authentifier. Nécessite des attributions de rôles sur le service sous-jacent. Utilisez cette option lorsque vous souhaitez que tous les agents d’un projet partagent la même identité. | Non |
| Transfert direct d’identité OAuth | Invitez les utilisateurs à se connecter et à autoriser l’accès au point de terminaison A2A. Obligatoire lorsque vous avez besoin d’autorisations par utilisateur. | Oui |
| Accès non authentifié | Aucune authentification requise. Utilisez cette méthode uniquement pour les points de terminaison A2A accessibles publiquement ou qui ne nécessitent pas d’authentification. | Non |
Authentification basée sur des clés
Note
Toute personne ayant accès au projet peut accéder aux secrets stockés dans une connexion de projet. Stockez uniquement les secrets partagés dans les connexions de projet. Pour un accès spécifique à l’utilisateur, utilisez plutôt la passe d’identité OAuth.
Utilisez l’authentification basée sur des clés lorsque le point de terminaison A2A accepte une clé API, un jeton d’accès personnel (PAT) ou une autre information d’identification secrète. Pour améliorer la sécurité, stockez les informations d’identification partagées dans une connexion de projet au lieu de les transmettre au moment de l’exécution.
Lorsque vous connectez votre point de terminaison A2A à un agent dans le portail Foundry, Foundry crée une connexion de projet pour vous. Indiquez le nom de l'identifiant (nom de l’en-tête HTTP) et la valeur de l'identifiant (valeur de l’en-tête). Le format dépend de ce que le point de terminaison attend.
Formats d’informations d’identification courants :
| Type de point de terminaison | Nom d'identification | Valeur des informations d’identification |
|---|---|---|
| Jeton porteur | Authorization |
Bearer <your-token> |
| Clé API dans l’en-tête | x-api-key |
<your-api-key> |
| En-tête personnalisé | <custom-header-name> |
<your-secret-value> |
Lorsque l’agent invoque le point de terminaison A2A, le service de l’agent récupère les informations d’identification depuis la connexion de projet, qu’il inclut ensuite dans les en-têtes de requête.
Meilleures pratiques de sécurité pour l’authentification basée sur des clés
- Utilisez des informations d’identification à privilèges minimaux : demandez uniquement les autorisations minimales nécessaires pour les tâches de l’agent.
- Faire pivoter régulièrement des jetons : définissez un rappel pour régénérer les jetons avant leur expiration.
- Restreindre l’accès au projet : limitez les personnes autorisées à accéder aux projets qui contiennent des secrets partagés.
- Audit de l'utilisation des identifiants : Surveillez l'accès aux connexions de projet dans vos journaux d'activité Azure.
Authentification par Microsoft Entra ID
Utilisez l'authentification Microsoft Entra ID lorsque le point de terminaison A2A et son service sous-jacent acceptent les jetons Microsoft Entra ID. Cette méthode élimine la nécessité de gérer les secrets, car Azure gère automatiquement l’acquisition et le renouvellement des jetons.
Identité de l’agent
Utilisez l'identité managée de votre agent pour s'authentifier auprès des points de terminaison A2A qui prennent en charge l'authentification Microsoft Entra ID. Lorsque vous créez un agent dans le service d’agent, l’agent reçoit automatiquement une identité managée.
Cycle de vie des identités :
- Avant de publier : tous les agents du même projet partagent une identité commune. Cela simplifie le développement et les tests.
- Après la publication : chaque agent publié reçoit une identité unique. Cela permet d’isoler et d’activer le contrôle d’accès granulaire.
Pour plus d’informations sur le cycle de vie des identités de l’agent, consultez Concepts d’identité de l’agent dans Microsoft Foundry.
Pour configurer l’authentification d’identité de l’agent :
- Identifiez le service sous-jacent qui alimente le point de terminaison A2A (par exemple, Azure Cosmos DB ou stockage Azure).
- Attribuez les rôles requis à l’identité de l’agent sur ce service. Les rôles spécifiques dépendent du service et des opérations que votre agent doit effectuer.
- Configurez la connexion A2A pour utiliser l’authentification d’identité de l’agent.
Lorsque l’agent appelle le point de terminaison A2A, Agent Service utilise l’identité de l’agent pour demander un jeton d’autorisation à partir de Microsoft Entra ID et l’inclure dans la demande.
Identité managée du projet Foundry
Utilisez l’identité managée de votre projet Foundry pour s’authentifier auprès des points de terminaison A2A. Cette option est utile lorsque vous souhaitez que tous les agents d’un projet partagent la même identité pour accéder aux ressources.
Pour configurer l’authentification d’identité managée du projet :
- Identifiez le service sous-jacent qui alimente le point de terminaison A2A.
- Attribuez les rôles requis à l’identité managée du projet sur ce service.
- Configurez la connexion A2A pour utiliser l’authentification d’identité managée du projet.
Lorsque l'agent appelle le point de terminaison A2A, le service Agent utilise l'identité managée du projet pour demander un jeton d'autorisation depuis Microsoft Entra ID et l'inclut dans la demande.
Transfert direct d’identité OAuth
Note
Pour utiliser le passage d’identité OAuth, les utilisateurs qui interagissent avec votre agent ont besoin au moins du rôle Azure utilisateur IA sur le projet.
Le passage d’identité OAuth permet à votre agent d’agir pour le compte d’utilisateurs individuels. Utilisez cette méthode lorsque les actions doivent être limitées aux autorisations de chaque utilisateur, telles que l’accès à leurs fichiers personnels, référentiels ou autres ressources protégées.
Le passage d'identité OAuth fonctionne avec des endpoints A2A de Microsoft et de tiers qui prennent en charge OAuth 2.0, y compris les services utilisant Microsoft Entra ID.
Fonctionnement de la passthrough d’identité OAuth
- Première interaction : lorsqu’un utilisateur interagit d’abord avec votre agent, le service agent génère un lien de consentement.
- Consentement de l’utilisateur : l’utilisateur ouvre le lien, se connecte au service sous-jacent et autorise l’agent à accéder à ses données.
- Stockage de jetons : le service d’agent stocke en toute sécurité les jetons OAuth de l’utilisateur (jeton d’accès et jeton d’actualisation). Ces jetons sont limités à cette combinaison d’utilisateurs et d’agents spécifiques.
- Demandes suivantes : lorsque l’agent appelle le point de terminaison A2A, le service agent inclut le jeton d’accès de l’utilisateur dans la demande. Si le jeton d’accès expire, le service Agent utilise le jeton d’actualisation pour en obtenir un nouveau.
Types de jetons OAuth
OAuth utilise deux types de jetons :
| Type de jeton | Objectif | Durée de vie |
|---|---|---|
| Jeton d’accès | Autorise les appels d’API au service sous-jacent | Durée de vie courte (généralement 1 heure) pour limiter l’exposition en cas de compromission |
| Jeton d’actualisation | Obtient de nouveaux jetons d’accès sans obliger l’utilisateur à se reconnecter | Durée de vie plus longue (heures à semaines ou jusqu’à révocation) |
Les étendues OAuth définissent ce que l’agent peut accéder et faire au nom de l’utilisateur. Les étendues sont spécifiées lorsque vous configurez la connexion et qu’elles sont présentées à l’utilisateur pendant le flux de consentement. Pour plus d’informations sur OAuth, consultez la documentation de sécurité Microsoft.
OAuth managé et OAuth personnalisé
Agent Service prend en charge deux options de configuration OAuth :
| Option | Description | Quand utiliser |
|---|---|---|
| OAuth managé | Microsoft ou l’éditeur de point de terminaison A2A gère l’inscription de l’application OAuth. | À utiliser si disponible. Simplifie l’installation et réduit les erreurs de configuration. |
| OAuth personnalisé | Vous fournissez votre propre inscription d’application OAuth à partir de Microsoft Entra ID ou d’un autre fournisseur d’identité. | Utilisez lorsque OAuth managé n’est pas disponible ou lorsque vous avez besoin de périmètres personnalisés ou d'une image de marque. |
Pour configurer oAuth personnalisé, fournissez les informations suivantes :
- ID client : ID d’application de votre inscription d’application OAuth.
- Clé secrète client (si nécessaire) : secret associé à l’inscription de votre application.
- URL d’autorisation : point de terminaison où les utilisateurs autorisent l’accès.
- URL du jeton : point de terminaison où agent service échange le code d’autorisation pour les jetons.
- URL d’actualisation : point de terminaison pour l’actualisation des jetons d’accès expirés.
-
Scopes : autorisations dont votre agent a besoin (par exemple,
repopour GitHub ouFiles.Readpour Microsoft Graph).
Important
Si vous utilisez un OAuth personnalisé, vous recevez une URL de redirection du service d’agent. Ajoutez cette URL aux URI de redirection autorisées de votre enregistrement d'application OAuth afin qu’Agent Service puisse terminer le flux d’autorisation.
Accès non authentifié
Utilisez un accès non authentifié uniquement lorsque le point de terminaison A2A est accessible publiquement et ne nécessite pas d’authentification. Cette option est rare dans les scénarios de production, mais peut être appropriée pour :
- API publiques qui ne nécessitent pas d’authentification
- Points de terminaison de développement ou de test internes
- Points de terminaison protégés par la sécurité au niveau du réseau (tels que les points de terminaison privés) au lieu de l’authentification
Configurer l’authentification pour une connexion A2A
Procédez comme suit pour configurer l’authentification pour une connexion A2A :
Identifiez le point de terminaison A2A et les méthodes d’authentification prises en charge. Contactez l’éditeur de point de terminaison ou consultez la documentation du point de terminaison pour déterminer quelles méthodes d’authentification sont prises en charge.
Rassemblez les informations d’identification requises en fonction de votre méthode d’authentification choisie :
- Basé sur la clé : obtenez la clé API ou le jeton auprès de l’éditeur du point de terminaison.
- Microsoft Entra ID : identifiez les attributions de rôles requises pour le service sous-jacent.
- OAuth : déterminez si OAuth managé est disponible ou rassemblez vos détails d’inscription d’application OAuth personnalisés.
Créez une connexion de projet dans le portail Foundry. La connexion stocke l’URL du point de terminaison A2A, la méthode d’authentification et les informations d’identification.
- Pour obtenir des conseils généraux sur la connexion, consultez Ajouter une nouvelle connexion à votre projet.
- Pour obtenir une configuration spécifique à A2A, consultez Ajouter un point de terminaison d’agent A2A au service de l’agent Foundry.
Configurer les attributions de rôles (authentification Microsoft Entra ID uniquement). Attribuez les rôles nécessaires à l'identité d'agent ou à l'identité managée du projet dans le service sous-jacent.
Ajoutez l’outil A2A à votre agent. Référencez la connexion de projet que vous avez créée et configurez les outils à partir du point de terminaison A2A que votre agent peut appeler.
Valider l’authentification
Après avoir configuré l’authentification, testez la connexion pour confirmer qu’elle fonctionne correctement.
Valider l’authentification par clé ou Microsoft Entra ID
- Ouvrez votre agent dans le portail Foundry.
- Démarrez une conversation et déclenchez une action qui appelle l’outil A2A.
- Vérifiez que l’appel de l’outil se termine avec succès. Si l’appel échoue, vérifiez le message d’erreur et consultez Résolution des problèmes.
Valider la passe d’identité OAuth
- Ouvrez votre agent dans le portail Foundry à l'aide d'un compte utilisateur de test qui n'a pas encore consenti.
- Démarrez une conversation et déclenchez une action qui appelle l’outil A2A.
- Vérifiez qu’un lien de consentement apparaît dans la réponse de l’agent.
- Ouvrez le lien de consentement et connectez-vous avec les informations d’identification de l’utilisateur de test.
- Autorisez les autorisations demandées.
- Revenez à l’agent et réactivez l’outil A2A.
- Vérifiez que l’appel de l’outil s’effectue avec succès à l’aide des identifiants de l’utilisateur de test.
- (Facultatif) Testez avec un autre compte d’utilisateur pour confirmer que les flux de consentement fonctionnent pour plusieurs utilisateurs.
Dépannage
Utilisez le tableau suivant pour diagnostiquer et résoudre les problèmes d’authentification courants :
| Problème | Cause possible | Résolution |
|---|---|---|
| L’authentification basée sur des clés échoue avec 401 Non autorisé | Jeton non valide ou expiré | Générez à nouveau le jeton à partir de l’éditeur de point de terminaison et mettez à jour la connexion du projet. |
| L’authentification basée sur des clés échoue avec la requête incorrecte 400 | Nom d’en-tête ou format de valeur incorrect | Consultez la documentation du point de terminaison pour connaître le format attendu de l’en-tête. Les formats courants incluent Authorization: Bearer <token> et x-api-key: <key>. |
| L’authentification Microsoft Entra ID échoue avec le code d'erreur 403 - Accès interdit. | L’identité n’a pas les attributions de rôle requises | Attribuez les rôles nécessaires à l'identité d'agent ou à l'identité managée du projet dans le service sous-jacent. La propagation des modifications d’attribution de rôle peut prendre jusqu’à 10 minutes. |
| L'authentification Microsoft Entra ID échoue avec 401 Non autorisée | Le service sous-jacent n'accepte pas de jetons Microsoft Entra ID, ou l'audience est incorrecte | Vérifiez que le service sous-jacent prend en charge l’authentification Microsoft Entra ID. Vérifiez que le point de terminaison A2A est configuré pour accepter des jetons pour les destinataires adéquats. |
| Le consentement se termine, mais les appels d’outil échouent | L’utilisateur n’a pas d’autorisations dans le service sous-jacent | Vérifiez que l’utilisateur dispose des autorisations requises dans le service sous-jacent. Vérifiez également que l’utilisateur a au moins le rôle Azure utilisateur IA sur le projet Foundry. |
| Aucun lien de consentement n’apparaît pour OAuth | Le passthrough d’identité OAuth n’est pas configuré ou l’agent n’a pas appelé l’outil A2A | Vérifiez que la connexion au projet est configurée pour le passage d’identité OAuth. Déclenchez une action qui appelle l’outil A2A. |
| Le lien de consentement s’affiche, mais la connexion échoue | La configuration OAuth personnalisée est incorrecte | Pour un OAuth personnalisé, vérifiez que l’URL d’autorisation, l’ID client et l’URL de redirection sont correctes. Vérifiez que l’URL de redirection est ajoutée à votre inscription d’application OAuth. |
| Jeton d’actualisation expiré | L'utilisateur n'a pas interagié avec l'agent depuis une période prolongée | L’utilisateur doit passer à nouveau par le flux de consentement. Ce comportement est attendu pour la sécurité. |
Contenu connexe
- Ajoutez un point d'accès A2A à Foundry Agent Service : Guide étape par étape pour configurer un outil A2A pour votre agent.
- Concepts d'identité d'agent dans Microsoft Foundry : découvrez le fonctionnement et le cycle de vie des identités d'agents.
- Contrôle d'accès basé sur le rôle pour Microsoft Foundry : Comprenez les rôles et les autorisations disponibles dans Foundry.
- Ajoutez une nouvelle connexion à votre projet : conseils généraux pour la création de connexions de projet.