Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La maggior parte dei server MCP (Model Context Protocol) richiede l'autenticazione per accedere al server e al servizio sottostante. L'autenticazione corretta garantisce che gli agenti possano connettersi in modo sicuro ai server MCP, richiamare i propri strumenti e accedere alle risorse protette mantenendo al contempo i controlli di accesso appropriati.
In questo articolo, tu:
- Scegliere un metodo di autenticazione in base ai requisiti di sicurezza
- Configurare l'autenticazione basata su chiave, Microsoft Entra o OAuth
- Configurare e convalidare la connessione al server MCP
Nota
Se non si ha già un account con l'editore del server MCP, crearne uno tramite il sito Web dell'editore.
Prerequisiti
Prima di iniziare, è necessario:
- Accedere al Portale Foundry e a un progetto. Se non ne hai uno, consulta Creare progetti in Foundry.
- Autorizzazioni per creare connessioni di progetto e configurare gli agenti. Per informazioni dettagliate, vedere Controllo degli accessi in base al ruolo nel portale foundry.
- URL dell'endpoint server MCP remoto a cui connettersi.
- Credenziali per il metodo di autenticazione selezionato:
- Autenticazione basata su chiave: una chiave API, un token di accesso personale (PAT) o un altro token.
- Microsoft Entra autenticazione: assegnazioni di ruolo per l'identità dell'agente o l'identità gestita del progetto nel servizio sottostante.
- Passaggio dell'identità OAuth: configurazione OAuth gestita o registrazione dell'applicazione OAuth (OAuth personalizzata).
Scegliere un metodo di autenticazione
In generale, esistono due scenari di autenticazione:
- Autenticazione condivisa: ogni utente dell'agente usa la stessa identità per l'autenticazione nel server MCP. Il contesto utente non persiste.
- Autenticazione singola: ogni utente esegue l'autenticazione con il proprio account in modo che il contesto utente venga mantenuto.
Usare le indicazioni seguenti per scegliere un metodo:
| Il tuo obiettivo | Metodo consigliato |
|---|---|
| Usare un'identità condivisa per tutti gli utenti | Autenticazione basata su chiave o autenticazione Microsoft Entra |
| Mantenere l'identità e le autorizzazioni di ogni utente | Trasmissione diretta dell'identità OAuth |
| Evitare di gestire i segreti quando il servizio sottostante supporta Microsoft Entra | autenticazione Microsoft Entra |
| Connettersi a un server MCP che non richiede l'autenticazione | Accesso non autenticato |
Suggerimento
In caso di dubbio, iniziare con Microsoft Entra l'autenticazione se il server MCP lo supporta. Microsoft Entra autenticazione elimina la necessità di gestire i segreti e fornisce la rotazione automatica dei token.
Per server MCP privati all'interno di una rete virtuale, l'autenticazione Microsoft Entra è una scelta naturale perché sia l'agente che il server MCP si trovano nella stessa rete privata.
Metodi di autenticazione supportati
| Metodo | Descrizione | Il contesto utente persiste |
|---|---|---|
| Basato su chiave | Fornire una chiave API o un token di accesso per l'autenticazione con il server MCP. | No |
| Microsoft Entra - Identità agente (anteprima) | Usare l'identità dell'agente per eseguire l'autenticazione con il server MCP. Assegnare i ruoli necessari nel servizio sottostante. | No |
| Microsoft Entra - Identità gestita del progetto (anteprima) | Usare l'identità gestita del progetto per eseguire l'autenticazione con il server MCP. Assegnare i ruoli necessari nel servizio sottostante. | No |
| Trasmissione diretta dell'identità OAuth | Richiedere agli utenti di interagire con l'agente per accedere e autorizzare l'accesso al server MCP. | Sì |
| Accesso non autenticato | Usare questo metodo solo quando il server MCP non richiede l'autenticazione. | No |
Autenticazione basata su chiave
Usare l'autenticazione basata su chiave quando il server MCP richiede una chiave API, un token di accesso personale o credenziali simili e non è necessario mantenere il contesto utente singolo.
Nota
Gli utenti che hanno accesso al progetto possono accedere a una chiave API archiviata in una connessione di progetto. Archiviare solo i segreti condivisi in una connessione di progetto. Per l'accesso specifico dell'utente, usare il pass-through dell'identità OAuth.
Passare una chiave API, un token di accesso personale (PAT) o altre credenziali ai server MCP che supportano l'autenticazione basata su chiave. Per una maggiore sicurezza, archiviare le credenziali condivise in una connessione di progetto anziché passarle in fase di esecuzione.
Quando si connette un server MCP a un agente nel portale foundry, Foundry crea automaticamente una connessione al progetto. Specificare il nome delle credenziali e il valore delle credenziali. Ad esempio, se ci si connette al server MCP GitHub, è possibile specificare:
- Nome credenziale:
Authorization - Valore credenziale:
Bearer <your-personal-access-token>
Quando l'agente richiama il server MCP, Agent Service recupera le credenziali dalla connessione al progetto e le passa al server MCP.
Per la sicurezza:
- Usare le credenziali con privilegi minimi, se possibile.
- Ruotate regolarmente i token.
- Limitare l'accesso ai progetti che contengono segreti condivisi.
autenticazione Microsoft Entra
Usare l'autenticazione Microsoft Entra quando il server MCP (e il servizio correlato sottostante) supporta i token Microsoft Entra. Questo metodo elimina la necessità di gestire i segreti e fornisce la rotazione automatica dei token.
Usare l'autenticazione dell'identità dell'agente (anteprima)
Usare l'identità dell'agente quando si desidera che l'autenticazione sia limitata a un agente specifico. Questo approccio è ideale quando si dispone di più agenti che necessitano di diversi livelli di accesso allo stesso server MCP.
Usare l'identità dell'agente per eseguire l'autenticazione con i server MCP che supportano l'autenticazione dell'identità dell'agente. Se si crea l'agente usando il servizio Agent, si assegna automaticamente un'identità dell'agente.
Prima della pubblicazione, tutti gli agenti nel progetto Foundry condividono la stessa identità dell'agente. Dopo la pubblicazione di un agente, l'agente ottiene un'identità univoca.
Assicurarsi che l'identità dell'agente disponga delle assegnazioni di ruolo necessarie nel servizio sottostante che supporta il server MCP.
Quando l'agente richiama il server MCP, Agent Service usa l'identità dell'agente disponibile per richiedere un token di autorizzazione e passarlo al server MCP.
Utilizzare l'autenticazione dell'identità gestita del progetto
Usare l'identità gestita del progetto quando si vuole che tutti gli agenti in un progetto convidano lo stesso livello di accesso o quando il server MCP richiede un'identità gestita anziché un'identità dell'agente.
Usare l'identità gestita del progetto Foundry per eseguire l'autenticazione con i server MCP che supportano l'autenticazione dell'identità gestita.
Assicurarsi che l'identità gestita del progetto disponga delle assegnazioni di ruolo necessarie nel servizio sottostante che supporta il server MCP.
Quando l'agente richiama il server MCP, Agent Service usa l'identità gestita del progetto per richiedere un token di autorizzazione e passarlo al server MCP.
Trasmissione diretta dell'identità OAuth
Nota
Per usare la trasmissione dell'identità OAuth, gli utenti che interagiscono con l'agente devono avere almeno il ruolo Utente Azure AI nel progetto. Il tenant Microsoft Entra dell'utente deve corrispondere al tenant del progetto Foundry. Lo scambio di token tra tenant non è supportato.
Il pass-through dell'identità OAuth è disponibile per l'autenticazione a server MCP Microsoft e non-Microsoft e ai servizi sottostanti conformi a OAuth, inclusi Microsoft Entra.
Usare il pass-through dell'identità OAuth per richiedere agli utenti che interagiscono con l'agente di accedere al server MCP e al servizio sottostante. Il servizio Agent archivia in modo sicuro le credenziali dell'utente e le usa solo all'interno del contesto dell'agente che comunica con il server MCP.
Quando si usa il pass-through dell'identità OAuth, il servizio Agent genera un collegamento di consenso la prima volta che un determinato utente deve autorizzare l'accesso. Dopo l'accesso e il consenso dell'utente, l'agente può individuare e richiamare gli strumenti nel server MCP con le credenziali dell'utente.
Il servizio Agent supporta due opzioni OAuth: OAuth gestite e OAuth personalizzate.
- Con OAuth gestito, Microsoft o l'autore del server MCP gestisce l'app OAuth.
- Con OAuth personalizzato, puoi portare la tua registrazione dell'app OAuth.
Nota
Se si usa OAuth personalizzato, si riceve un URL di reindirizzamento dopo la configurazione. Aggiungere l'URL di reindirizzamento all'app OAuth in modo che il servizio Agent possa completare il flusso.
Quando si configura OAuth personalizzato, specificare le informazioni seguenti:
- ID client: obbligatorio
- Segreto client: facoltativo (dipende dall'app OAuth)
- URL di autenticazione: obbligatorio
- URL di aggiornamento: obbligatorio (se non si dispone di un URL di aggiornamento separato, è possibile usare invece l'URL del token)
- URL del token: obbligatorio
- Ambiti: facoltativo
Flow using OAuth identity passthrough (Flusso tramite pass-through dell'identità OAuth)
L'ambito di OAuth è specifico al nome dello strumento (connessione) per progetto Foundry. A ogni nuovo utente che usa un nuovo strumento (connessione) in un progetto Foundry viene richiesto di fornire il consenso.
Quando un utente tenta per la prima volta di usare un nuovo strumento in un progetto Foundry, l'output della risposta condivide il collegamento di consenso in
response.output_item. È possibile trovare il collegamento di consenso nel tipo di elementooauth_consent_request, inconsent_link. Mostra questo collegamento di consenso all'utente."type":"response.output_item.done", "sequence_number":7, "output_index":1, "item":{ "type":"oauth_consent_request", "id":"oauthreq_10b0f026610e2b76006981547b53d48190840179e52f39a0aa", "created_by":{}, "consent_link":"https://logic-swedencentral-001.consent.azure-apihub.net/login?data=xxxx" }All'utente viene richiesto di accedere e fornire il consenso dopo aver esaminato l'accesso necessario. Dopo aver fornito il consenso, l'utente visualizza una finestra di dialogo simile all'esempio seguente:
Dopo che l'utente ha chiuso la finestra di dialogo, è necessario inviare un'altra risposta con l'ID risposta precedente
# Requires: azure-ai-projects >= 2.0.0 from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential # Submit another response after user consent response = client.responses.create( previous_response_id="YOUR_PREVIOUS_RESPONSE_ID", input=user_input, extra_body={ "agent_reference": {"name": agent.name, "type": "agent_reference"}, "tool_choice": "required", "stream": True }, )
Una volta che l'utente ha eseguito l'accesso e dato il consenso una volta, non è necessario fornire il consenso in futuro.
Nota
Se l'utente rifiuta il consenso, la chiamata allo strumento MCP non riesce e restituisce un errore. L'applicazione deve gestire correttamente questo caso e informare l'utente che lo strumento richiede l'autorizzazione per funzionare.
Registrazione dell'app Bring Your Own Microsoft Entra
Nota
I server MCP di Agent 365 sono disponibili solo per i tenant di Frontier.
Per usare il pass-through di identità con i servizi Microsoft, porta la tua registrazione dell'app Microsoft Entra. Portando la registrazione dell'app Microsoft Entra personalizzata, è possibile controllare le autorizzazioni concesse.
La procedura seguente usa il server MCP Agent 365 come esempio:
Seguire la guida alla registrazione di app per creare un'app Microsoft Entra e ottenere l'ID client e il segreto client.
Concedere autorizzazioni scoped all'app Microsoft Entra.
Per i server MCP di Agent 365, passare a Gestisci>Autorizzazioni API e cercare Agent 365 Tools. Se non è possibile trovarlo, cercare
ea9ffc3e-8a23-4a7d-836d-234d7c7565c1. Assegnare le autorizzazioni necessarie e concedere il consenso amministratore per il tenant.Di seguito sono riportate le autorizzazioni per ogni server MCP:
- Server MCP di Microsoft Outlook Mail (Frontier):
McpServers.Mail.All - Server di Microsoft Outlook Calendar MCP (Frontier):
McpServers.Calendar.All - Microsoft Teams MCP Server (Frontier):
McpServers.Teams.All - Server MCP del Profilo Utente Microsoft 365 (Frontier):
McpServers.Me.All - Microsoft SharePoint e OneDrive MCP Server (Frontier):
McpServers.OneDriveSharepoint.All - Microsoft SharePoint Elenco MCP Server (Frontiera):
McpServers.SharepointLists.All - Microsoft Word MCP Server (Frontier):
McpServers.Word.All - MCP Server Microsoft 365 Copilot (Search) (Frontier):
McpServers.CopilotMCP.All - Amministrazione Microsoft 365 Center MCP Server (Frontier):
McpServers.M365Admin.All - Microsoft Dataverse MCP Server (Frontier):
McpServers.Dataverse.All
- Server MCP di Microsoft Outlook Mail (Frontier):
Tornare al portale di Foundry e configurare il server MCP. Connettere uno strumento, passare a Personalizzato e quindi selezionare MCP. Specificare un nome e un endpoint server MCP e quindi selezionare Pass-through dell'identità OAuth:
- ID del cliente e segreto del cliente
- URL del token:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token - URL di autenticazione:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize - URL di aggiornamento:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token - Ambiti:
ea9ffc3e-8a23-4a7d-836d-234d7c7565c1/{permission above}
Dopo aver completato la configurazione, si riceve un URL di reindirizzamento. Aggiungilo alla tua app Microsoft Entra.
Accesso non autenticato
Usare l'accesso non autenticato solo quando il server MCP non richiede l'autenticazione. Questo metodo è appropriato per i server MCP pubblici che forniscono l'accesso aperto ai relativi strumenti o per i server MCP privati all'interno della rete virtuale che si basano sull'isolamento a livello di rete anziché sull'autenticazione esplicita.
Importante
Anche quando l'autenticazione non è necessaria, assicurarsi di comprendere le condizioni di servizio e i limiti di frequenza del server MCP prima della connessione.
Configurare l'autenticazione per un server MCP
Identificare il server MCP remoto a cui connettersi.
Creare o selezionare una connessione di progetto che archivia l'endpoint server MCP, il tipo di autenticazione e le credenziali necessarie.
Se si connette il server MCP nel portale foundry, il portale crea automaticamente la connessione al progetto.
Creare o aggiornare un agente con uno
mcpstrumento con le informazioni seguenti:-
server_url: URL del server MCP. Ad esempio,https://api.githubcopilot.com/mcp/. -
server_label: identificatore univoco del server MCP per l'agente. Ad esempio,github. -
require_approval: facoltativamente determinare se è necessaria l'approvazione. I valori supportati sono:-
always: uno sviluppatore deve fornire l'approvazione per ogni chiamata. Se non si specifica un valore, questo valore è l'impostazione predefinita. -
never: non è necessaria alcuna approvazione. -
{"never":[<tool_name_1>, <tool_name_2>]}: viene fornito un elenco di strumenti che non richiedono l'approvazione. -
{"always":[<tool_name_1>, <tool_name_2>]}: viene fornito un elenco di strumenti che richiedono l'approvazione.
-
-
project_connection_id: nome della connessione in cui sono archiviati l'endpoint server MCP, la selezione dell'autenticazione e le informazioni pertinenti. Nella connessione, se si specificano endpoint diversi rispetto aserver_url, viene utilizzato l'endpoint nella connessione.
-
Eseguire l'agente.
Se il modello tenta di richiamare uno strumento nel server MCP con l'approvazione richiesta o l'utente deve accedere per il pass-through dell'identità OAuth, esaminare l'output della risposta:
- Link di consenso:
oauth_consent_request - Richiesta di approvazione:
mcp_approval_request
Dopo l'accesso dell'utente o l'approvazione della chiamata, inviare un'altra risposta per continuare.
- Link di consenso:
Convalidare
Dopo aver configurato l'autenticazione, verificare che la connessione funzioni correttamente:
- Attivare una chiamata allo strumento MCP dall'agente inviando un prompt che fa sì che l'agente usi uno degli strumenti del server MCP.
- Verificare che la chiamata allo strumento venga completata correttamente. L'output dello strumento dovrebbe essere visualizzato nella risposta dell'agente senza errori di autenticazione.
- Se stai utilizzando il pass-through dell'identità OAuth:
- Verificare che un nuovo utente riceva un collegamento di consenso (
oauth_consent_requestnella risposta). - Dopo il consenso dell'utente, verificare che le chiamate successive dello strumento abbiano esito positivo senza richiedere di nuovo il consenso.
- Eseguire il test con un utente diverso per verificare che il flusso di consenso per utente funzioni correttamente.
- Verificare che un nuovo utente riceva un collegamento di consenso (
Risoluzione dei problemi
| Problema | Causa | Risoluzione |
|---|---|---|
Non si ottiene un oauth_consent_request quando ci si aspetta uno |
Lo strumento MCP non è configurato per il pass-through dell'identità OAuth o la chiamata allo strumento non è stata eseguita | Verificare che la connessione al progetto sia configurata per la trasmissione dell'identità OAuth e assicurarsi che il prompt spinga l'agente a richiamare lo strumento MCP. |
| Il consenso viene completato ma le chiamate degli strumenti continuano a non riuscire | Accesso mancante nel servizio sottostante | Verificare che l'utente abbia accesso al servizio sottostante al progetto e che abbia il ruolo Utente AI di Azure (o un ruolo superiore) nel progetto. |
| L'autenticazione basata su chiave ha esito negativo | Chiave o token non valido o scaduto oppure il server MCP prevede un formato di nome o valore di intestazione diverso | Rigenerare o ruotare le credenziali e aggiornare la connessione al progetto. Verificare il nome dell'intestazione e il formato di valore necessari nella documentazione del server MCP. |
| Microsoft Entra autenticazione non riesce | L'identità non ha assegnazioni di ruolo necessarie | Assegnare i ruoli necessari all'identità dell'agente o all'identità gestita del progetto nel servizio sottostante e quindi riprovare. |
| Le chiamate agli strumenti vengono bloccate in modo imprevisto |
require_approval è impostato su always (impostazione predefinita) oppure la configurazione richiede l'approvazione per lo strumento che si sta chiamando |
Aggiorna require_approval per soddisfare i requisiti di approvazione. |
| Il server MCP restituisce "non autorizzato" nonostante le credenziali valide | Il nome o il formato dell'intestazione delle credenziali non corrisponde a quello previsto dal server MCP | Controllare la documentazione del server MCP per ottenere il nome esatto dell'intestazione (ad esempio, Authorization, X-API-Keyo Api-Key) e il formato di valore (ad esempio, Bearer <token> e solo <token>). |
| I token OAuth scadono e le chiamate degli strumenti hanno esito negativo dopo un certo periodo di tempo | Il token di aggiornamento non è valido o l'URL di aggiornamento non è corretto | Verificare che l'URL di aggiornamento sia corretto. Se è stato usato l'URL del token come URL di aggiornamento, verificare che il provider OAuth supporti l'aggiornamento del token in tale endpoint. L'utente potrebbe dover fornire di nuovo il consenso se i token di aggiornamento vengono revocati. |
| Il server MCP privato non è raggiungibile dall'agente | Il server MCP non si trova nella sottorete MCP specifica, manca la delega della sottorete o la risoluzione del DNS privato non riesce | Verificare che il server MCP sia distribuito nella subnet MCP e che sia delegato a Microsoft.App/environments. Controllare la configurazione della zona DNS privata. Eseguire la distribuzione usando il modello 19-hybrid-private-resources-agent-setup . |
Ospitare un server MCP locale
Se è stato sviluppato un server MCP personalizzato o si vuole usare un server MCP open source che viene eseguito in locale, è necessario ospitarlo nel cloud prima di connetterlo al servizio Agent.
Il runtime del servizio Agent accetta solo un endpoint server MCP remoto. Per aggiungere strumenti da un server MCP locale, è necessario ospitarlo in modalità self-host in App contenitore di Azure o Funzioni di Azure per ottenere un endpoint server MCP remoto.
L'endpoint remoto può essere un endpoint pubblico o un endpoint privato all'interno della rete virtuale. Per i server MCP privati, distribuire l'applicazione container con accesso solo interno su una subnet MCP dedicata delegata a Microsoft.App/environments. Per iniziare, usare il modello 19-hybrid-private-resources-agent-setup . Per informazioni dettagliate sul supporto degli strumenti negli ambienti isolati dalla rete, vedere Strumenti di Agent con isolamento di rete.
Quando si tenta di ospitare server MCP locali nel cloud, tenere presente quanto segue:
| Configurazione del server MCP locale | Ospitare in App contenitore di Azure | Ospitalità in Funzioni di Azure |
|---|---|---|
| Trasporto | Endpoint HTTP POST/GET necessari. | Richiesta flusso HTTP (le risposte devono supportare la codifica di trasferimento in blocchi per lo streaming in stile SSE). |
| Modifiche al codice | Il contenitore richiede una ricompilazione. | File di configurazione specifici di Funzioni di Azure richiesti nella directory radice. |
| Autenticazione | Implementazione dell'autenticazione personalizzata richiesta. | Usare l'autenticazione predefinita o il codice personalizzato. Funzioni di Azure richiede una chiave per impostazione predefinita, ma è possibile disabilitare il requisito della chiave in host.json. |
| Stack di linguaggio | Qualsiasi linguaggio eseguito in contenitori Linux (Python, Node.js, .NET, TypeScript, Go). | Solo Python, Node.js, TypeScript, Java, .NET. |
| Requisiti dei contenitori | Solo Linux (linux/amd64). I contenitori privilegiati non sono supportati. | I server in contenitori non sono supportati. |
| Dipendenze | Tutte le dipendenze devono trovarsi nell'immagine del contenitore. | Le dipendenze a livello di sistema operativo (ad esempio Playwright) non sono supportate. |
| Stato | Solo senza stato. | Solo senza stato. |
| UVX/NPX | Supportato. | Non supportato. I npx comandi start non sono supportati. |
