Domande frequenti sulla sicurezza e la privacy di Bot Framework

Questo articolo risponde alle domande frequenti sulla sicurezza e sulla privacy.

SI APPLICA A: SDK v4

I bot registrati con Bot Framework raccolgono dati personali? In caso affermativo, come si può essere certi che i dati siano protetti? E la privacy?

Ogni bot è un servizio a sé e gli sviluppatori di questi servizi sono tenuti a fornire condizioni per l'utilizzo del servizio e informative sulla privacy in base al proprio codice di condotta. Per altre informazioni, vedere Indicazioni sulla verifica di bot.

È possibile ospitare il bot in server personali?

Sì. Il bot può essere ospitato ovunque in Internet, Nei propri server, in Azure o in qualsiasi altro data center. L'unico requisito è che il bot deve esporre un endpoint HTTPS accessibile pubblicamente.

Come si vietano o si rimuovono i bot dal servizio?

Gli utenti possono segnalare un bot che ha un comportamento errato tramite la scheda di contatto del bot nell'elenco. Per partecipare al servizio, gli sviluppatori devono rispettare le condizioni Microsoft per l'utilizzo del servizio.

Quali URL specifici è necessario consentire all'elenco nel firewall aziendale di accedere ai servizi Bot Framework?

Se si dispone di un firewall in uscita che blocca il traffico dal bot a Internet, sarà necessario consentire gli URL seguenti in tale firewall:

  • login.botframework.com (Autenticazione del bot)
  • login.microsoftonline.com (Autenticazione del bot)
  • westus.api.cognitive.microsoft.com (per l'integrazione NLP di Luis.ai)
  • *.botframework.com (canali)
  • state.botframework.com (compatibilità con versioni precedenti)
  • login.windows.net (account di accesso Windows)
  • login.windows.com (account di accesso Windows)
  • sts.windows.net (account di accesso Windows)
  • Altri URL per canali di Bot Framework specifici

Nota

Language Understanding (LUIS) verrà ritirato il 1° ottobre 2025. A partire dal 1° aprile 2023, non sarà possibile creare nuove risorse LUIS. Una versione più recente di Language Understanding è ora disponibile come parte del linguaggio di intelligenza artificiale di Azure.

CLU (Conversational Language Understanding), una funzionalità del linguaggio di intelligenza artificiale di Azure, è la versione aggiornata di LUIS. Per altre informazioni sul supporto per la comprensione del linguaggio in Bot Framework SDK, vedere Comprensione del linguaggio naturale.

Nota

È possibile usare <channel>.botframework.com se si preferisce non consentire l'elenco di URL con un asterisco. <channel> è uguale a ogni canale usato dal bot, ad esempio directline.botframework.com, webchat.botframework.come slack.botframework.com. È anche utile controllare il traffico sul firewall durante il test del bot per verificare il traffico che sta bloccando.

È possibile bloccare tutto il traffico verso il bot, ad eccezione di quello proveniente da Bot Framework Service?

Bot Framework Services è ospitato in data center di Azure a livello mondiale e l'elenco di indirizzi IP di Azure cambia costantemente. Ciò significa che l'inserimento di determinati indirizzi IP nell'elenco può funzionare un giorno e interrompere l'operazione successiva quando cambiano gli indirizzi IP di Azure.

Quale ruolo Controllo degli accessi in base al ruolo è necessario per creare e distribuire un bot?

Per creare un bot nel portale di Azure è necessario l'accesso come collaboratore nella sottoscrizione o in un gruppo di risorse specifico. Un utente con il ruolo Collaboratore in un gruppo di risorse può creare un nuovo bot in quel gruppo di risorse specifico. Un utente con il ruolo Collaboratore per una sottoscrizione può creare un bot in un gruppo di risorse nuovo o esistente.

Usando l'interfaccia della riga di comando di Azure, un approccio basato sul controllo degli accessi in base al ruolo può supportare i ruoli personalizzati. Se si vuole creare un ruolo personalizzato con autorizzazioni più limitate, il set seguente consente all'utente di creare e distribuire un bot che supporta anche LUIS, QnA Maker e Application Insights.

"Microsoft.Web/*",
"Microsoft.BotService/*",
"Microsoft.Storage/*",
"Microsoft.Resources/deployments/*",
"Microsoft.CognitiveServices/*",
"Microsoft.Search/searchServices/*",
"Microsoft.Insights/*",
"Microsoft.Insights/components/*"

Nota

Azure AI QnA Maker verrà ritirato il 31 marzo 2025. A partire dal 1° ottobre 2022, non potrai creare nuove risorse o Knowledge Base di QnA Maker.

Language Understanding (LUIS) verrà ritirato il 1° ottobre 2025. A partire dal 1° aprile 2023, non sarà possibile creare nuove risorse LUIS.

Le versioni più recenti di questi servizi sono ora disponibili come parte del linguaggio di intelligenza artificiale di Azure. Per altre informazioni sul supporto di domande e risposte e comprensione del linguaggio in Bot Framework SDK, vedere Comprensione del linguaggio naturale.

Nota

LUIS e QnA Maker richiedono autorizzazioni per i servizi di intelligenza artificiale di Azure. QnA Maker richiede anche le autorizzazioni di ricerca. Quando si crea un ruolo personalizzato, tenere presente che tutte le autorizzazioni di negazione ereditate supereranno queste autorizzazioni consentite.

Che cosa protegge il bot da client che rappresentano Bot Framework Service?

  1. Tutte le richieste di Bot Framework autentica sono accompagnate da un token JWT la cui firma crittografica può essere verificata seguendo la guida all'autenticazione. Il token è progettato in modo che gli utenti malintenzionati non possano rappresentare servizi attendibili.
  2. Il token di sicurezza che accompagna ogni richiesta al bot ha la codifica ServiceUrl, il che significa che, anche se un utente malintenzionato ottiene l'accesso al token, non può reindirizzare la conversazione a un nuovo ServiceUrl. Questo comportamento viene applicato da tutte le implementazioni dell'SDK e documentato nel materiale di riferimento relativo all'autenticazione.
  3. Se il token in ingresso è mancante o in formato non valido, Bot Framework SDK non genererà un token in risposta. In questo modo l'eventuale danno causato dall'errata configurazione del bot risulta limitato.
  4. All'interno del bot è possibile verificare manualmente l'attestazione ServiceUrl fornita nel token. Questo rende il bot più fragile se la topologia del servizio cambia, quindi, anche se è possibile, non è consigliabile.

Nota

Si tratta di connessioni in uscita dal bot a Internet. Non esiste un elenco di indirizzi IP o nomi DNS che il servizio Connessione or di Bot Framework userà per comunicare con il bot. L'elenco di indirizzi IP in ingresso non è supportato.

Qual è lo scopo del codice magic durante l'autenticazione?

Nel controllo chat Web sono disponibili due meccanismi per garantire che l'utente appropriato sia connesso.

  1. Codice magic. Al termine del processo di accesso, l'utente viene presentato con un codice a 6 cifre generato in modo casuale (codice magic). L'utente deve digitare questo codice nella conversazione per completare il processo di accesso. Ciò tende a produrre un'esperienza utente non valida. Inoltre, è ancora soggetto ad attacchi di phishing. Un utente malintenzionato può ingannare un altro utente per accedere e ottenere il codice fittizio tramite phishing.

    Avviso

    L'uso del codice magic è deprecato. È invece consigliabile usare l'autenticazione avanzata Direct Line, descritta di seguito.

  2. Autenticazione avanzata direct Line. A causa dei problemi relativi all'approccio al codice magic, Azure AI servizio Bot ha rimosso la necessità. Azure AI servizio Bot garantisce che il processo di accesso possa essere completato solo nella stessa sessione del browser della chat Web stessa. Per abilitare questa protezione, è necessario avviare chat Web con un token Direct Line che contiene un elenco di origini attendibili, noto anche come domini attendibili, in grado di ospitare il client di chat Web del bot. Con le opzioni di autenticazione avanzate, è possibile specificare in modo statico l'elenco di origini attendibili nella pagina di configurazione di Direct Line. Per altre informazioni, vedere Autenticazione avanzata direct Line.

In che modo Bot Framework gestisce la gestione delle identità e degli accessi?

La gestione delle identità e degli accessi (IAM) è un framework (criteri e tecnologie) per consentire alle persone appropriate di avere l'accesso appropriato alle risorse tecnologico. Per altre informazioni, vedere Gestione delle identità.

Bot Framework offre i meccanismi di identificazione seguenti:

  • Autenticazione bot. Determina se una richiesta proviene da un'origine legittima. È controllato dal servizio bot connector e consente la comunicazione sicura tra un bot e un canale. Per altre informazioni, vedere Autenticazione bot.

  • Autenticazione utente. Consente al bot di accedere alle risorse online protette per conto dell'utente. L'OAuth standard di settore viene usato per autenticare l'utente e autorizzare il bot ad accedere alle risorse. Per altre informazioni, vedere Autenticazione utente.

In sintesi, Bot Framework gestisce l'autenticazione da servizio a servizio (autenticazione bot), essenzialmente convalidando che una richiesta proveniva effettivamente da un canale appropriato. Il bot è responsabile della gestione dei livelli di autenticazione inferiori. È possibile applicare un filtro in modo che il bot accetti solo le richieste da un ID tenant specifico oppure è possibile richiedere agli utenti di eseguire l'autenticazione con un servizio OAuth (autenticazione utente).

Ricerca per categorie limitare l'uso del bot solo agli utenti appartenenti al tenant?

Sono disponibili due opzioni diverse per limitare i messaggi in ingresso elaborati dal bot.

  • Se si gestiscono dati sicuri, è sicuramente consigliabile usare OAuth per autenticare gli utenti.

  • L'uso del middleware è un'altra buona opzione. Nel canale di Teams, ad esempio, è possibile creare middleware per ottenere l'ID tenant dai dati del canale di Teams. Il middleware può quindi decidere se consentire all'attività in ingresso di continuare con la logica del bot o di restituire invece un messaggio di errore.

    Avviso

    Non è possibile impedire a Teams di inviare messaggi da diversi tenant, né impedire a un utente di installare il bot se ha il manifesto dell'app. Tutto ciò che è possibile fare è impedire al bot di elaborare i messaggi indesiderati.