Tre opzioni, tre livelli di conoscenza dell’utente
L’identità di un agente Copilot Studio si decide in un solo posto: apri Settings dell’agente, scegli Security, poi il riquadro Authentication, seleziona l’opzione e conferma con Save. Le scelte possibili sono tre e non sono varianti della stessa cosa: cambiano quali informazioni sull’utente l’agente possiede durante la conversazione.
No authentication significa che all’utente non viene chiesto di accedere. La documentazione è brutale sulla conseguenza: chiunque abbia il link può conversare con l’agente, e l’agente può raggiungere soltanto informazioni e risorse pubbliche. È anche la configurazione in cui non puoi controllare chi nell’organizzazione parla con l’agente, perché la condivisione dell’agente non ha alcuna presa. Nota amministrativa: se una data policy nel Power Platform admin center impone l’autenticazione, questa opzione non è nemmeno selezionabile.
Authenticate with Microsoft imposta Microsoft Entra ID senza configurazione manuale e ti dà accesso al canale Teams + Microsoft 365, oltre ai canali native app e custom app. Dentro Teams l’utente non vede un prompt di accesso, perché è già identificato dal client, a meno che l’agente non richieda uno scope più ampio. Nel canvas di authoring dei topic questa opzione espone due variabili e solo due: User.ID e User.DisplayName. Non è disponibile per gli agenti che si integrano con Dynamics 365 Customer Service.
Authenticate manually è la strada per tutto il resto. Qui scegli un Service provider fra Microsoft Entra ID V2 with federated credentials, Microsoft Entra ID V2 with certificates, Microsoft Entra ID V2 with client secrets, Microsoft Entra ID e Generic OAuth 2, cioè qualunque identity provider conforme a OAuth2. Le variabili disponibili diventano quattro: User.Id, User.DisplayName, User.AccessToken e User.IsLoggedIn. La pagina di Learn scrive la prima come User.ID nella sezione Microsoft e come User.Id in quella manuale: è la stessa variabile, non due oggetti diversi. Un esempio minimo di configurazione con credenziali federate e scope adeguati a SharePoint:
Service provider: Microsoft Entra ID V2 with federated credentials
Client ID: <Application (client) ID dell'app registration>
Scopes: profile openid Sites.Read.All Files.Read.All
Il criterio di scelta è secco: se un topic o un tool deve chiamare un servizio con il token dell’utente, ti serve User.AccessToken, quindi ti serve Authenticate manually. Queste User.* sono variabili di stato della conversazione: non confonderle con una environment variable, che è configurazione di rilascio di una solution, né con una connection reference, che porta una credenziale.
Le modifiche non esistono finché non pubblichi
Tre fatti su cui l’esame insiste, perché sono esattamente i punti in cui i candidati sbagliano.
Primo: User.AccessToken e User.IsLoggedIn non sono disponibili con Authenticate with Microsoft. Se una domanda descrive un agente in Teams che deve chiamare un’API con il token dell’utente, la risposta non è “aggiungi la variabile”, è “passa a Authenticate manually”.
Secondo: le modifiche alla configurazione di autenticazione hanno effetto solo dopo la pubblicazione dell’agente. Salvare non basta, e questo va pianificato prima di toccare l’impostazione su un agente già in uso.
Terzo: se passi da Authenticate manually a Authenticate with Microsoft o a No authentication, i topic che referenziavano le variabili rimosse le mostrano come Unknown. Vai alla pagina Topics, individua i topic in errore e correggili prima di pubblicare.
C’è poi il legame con i tool, che è un livello diverso dall’agente. Sul singolo tool l’impostazione Authentication sceglie fra credenziali dell’utente finale e credenziali del maker: scegli Agent author authentication quando l’accesso al servizio è implicito o a basso rischio, per esempio un’API meteo o la ricerca di un numero di assistenza per codice postale, e User authentication quando i dati vanno ristretti a specifici utenti. Da qui la trappola: se un tool richiede le credenziali dell’utente, non disattivare l’autenticazione a livello di agente, perché quel tool smette di funzionare.
Canali: dove l’agente appare e dove l’autenticazione regge
I canali si aggiungono dalla voce Channels della barra superiore, ma solo dopo aver pubblicato l’agente almeno una volta; la pubblicazione si applica a tutti i canali collegati. L’elenco comprende Teams and Microsoft 365 Copilot, SharePoint, WhatsApp, Demo Website, Custom Website, Mobile App, Facebook e i canali Azure Bot Service.
Il punto che si dimentica è che la copertura non è uniforme. Per l’autenticazione utente sui tool risultano supportati Custom Website, Microsoft Teams, SharePoint e Omnichannel for Customer Service, limitatamente al canale live chat; risultano non supportati Demo Website, Mobile App, Facebook e i canali Azure Bot Service. Il Demo Website serve a raccogliere feedback interno e non è pensato per la produzione: quell’URL non va condiviso con i clienti. Ricorda anche che il contenuto appena pubblicato entra in vigore all’inizio di una nuova sessione; nei canali con conversazioni persistenti puoi scrivere start over per forzarla.
Audience esterna: cosa cambia parlando con estranei
Se l’interlocutore non appartiene al tenant, hai due strade coerenti. Con No authentication accetti che chiunque abbia il link entri, quindi l’agente deve poggiare solo su knowledge source pubbliche e su tool a basso rischio configurati con Agent author authentication. Con Authenticate manually e Generic OAuth 2 fai accedere l’utente al suo identity provider: puoi attivare o disattivare Require users to sign in, ma non puoi selezionare quali utenti specifici dell’organizzazione conversano con l’agente tramite la condivisione. Solo Microsoft Entra ID, come service provider manuale, ti restituisce quel controllo. Quando attivi Require users to sign in viene creato l’omonimo system topic, in sola lettura, che reindirizza al system topic Escalate se l’accesso non riesce. Un’ultima insidia da tenere a mente per gli scenari misti: negli scenari SSO gli utenti guest non accedono alle risposte generate da origini SharePoint e Graph connector.