Autorizzazioni e considerazioni sulle app di Microsoft TeamsMicrosoft Teams apps permissions and considerations

Le app di Microsoft teams sono un modo per aggregare una o più funzionalità in un pacchetto dell'app che può essere installato, aggiornato e disinstallato.Microsoft Teams apps are a way to aggregate one or more capabilities into an app package that can be installed, upgraded, and uninstalled. Le funzionalità includono:The capabilities include:

  • BotBots
  • Estensioni della messaggisticaMessaging extensions
  • SchedeTabs
  • ConnettoriConnectors

Le app vengono consentite dagli utenti e gestite da una prospettiva politica.Apps are consented to by users and managed by IT from a policy perspective. Tuttavia, per la maggior parte, le autorizzazioni e il profilo di rischio di un'app sono definiti dalle autorizzazioni e dai profili di rischio delle funzionalità contenute nell'app.However, for the most part, an app's permissions and risk profile are defined by the permissions and risk profiles of the capabilities that the app contains. Questo articolo si basa quindi sulle autorizzazioni e sulle considerazioni a livello di funzionalità.Therefore, this article focuses on permissions and considerations at the capability level.

Le autorizzazioni elencate di seguito in lettere maiuscole, ad esempio RECEIVE_MESSAGE e REPLYTO_MESSAGE, non vengono visualizzate in un punto qualsiasi della documentazione dello sviluppatore di Microsoft teams o delle autorizzazioni per Microsoft Graph.The permissions listed below in capital letters, for example RECEIVE_MESSAGE and REPLYTO_MESSAGE, don't appear anywhere in the Microsoft Teams developer documentation or the permissions for Microsoft Graph. Sono semplicemente una scorciatoia descrittiva ai fini di questo articolo.They're simply a descriptive shorthand for the purpose of this article.

Icona che descrive un punto decisionale
Punto decisionaleDecision point
  • Usare le tabelle seguenti come guida per individuare le autorizzazioni richieste dalle app che si stanno esaminando.Use the tables below as a guide to understand which permissions the apps you're investigating are requesting.
Icona che descrive il passaggio successivo
Passaggio successivoNext step
  • Eseguire ricerche nell'app o nel servizio stesso per decidere se si vuole consentire l'accesso all'interno dell'organizzazione.Research the app or service itself to decide whether you want to allow access to it within your organization. Ad esempio, i bot inviano e ricevono messaggi dagli utenti e, eccetto i bot personalizzati aziendali, si trovano all'esterno del limite di conformità.For example, bots send and receive messages from users, and—except for enterprise custom bots—they're located outside the compliance boundary. Di conseguenza, qualsiasi app che includa un bot richiede le autorizzazioni e ha il profilo di rischio, come minimo.Therefore, any app that includes a bot requires those permissions and has that risk profile, at a minimum.

Autorizzazioni e considerazioni sulle app globaliGlobal app permissions and considerations

Autorizzazioni necessarieRequired permissions

NessunoNone

Autorizzazioni facoltativeOptional permissions

NessunoNone

ConsiderazioniConsiderations

  • Un'app deve rivelare i dati che usa e i dati usati per i collegamenti alle condizioni d'uso e ai criteri di privacy.An app must disclose what data it uses and what the data is used for in its terms of use and privacy policy links.

  • Il consenso specifico della risorsa fornisce un set di autorizzazioni che possono essere richieste dalle app, visualizzate nella schermata di installazione dell'app.Resource-specific consent provides a set of permissions that apps can request, which appears on the installation screen of the app. Per altre informazioni sulle autorizzazioni per il consenso specifiche delle risorse, vedere informazioni di riferimento sulle autorizzazioniper i grafici.To learn more about resource-specific consent permissions, see Graph permissions reference.

  • Le app possono anche avere bisogno di autorizzazioni diverse dalle autorizzazioni di consenso specifiche delle risorse.Apps may also need permissions other than resource-specific consent permissions. Dopo l'installazione di un'app, l'app può richiedere le autorizzazioni del grafico tramite una richiesta di consenso.After an app is installed, the app may request Graph permissions through a consent prompt. Per altre informazioni, vedere informazioni sulle esperienze di consenso dell'applicazione Azure ad.To learn more, see Understanding Azure AD application consent experiences. È possibile configurare le autorizzazioni API e il consenso in Azure Portal.You can configure API permissions and consent in the Azure portal. Per altre informazioni, Vedi Framework di consenso di Azure Active Directory.To learn more, see Azure Active Directory consent framework.

Bot e estensioni di messaggisticaBots and messaging extensions

Autorizzazioni necessarieRequired permissions

  • RECEIVE_MESSAGE, REPLYTO_MESSAGE.RECEIVE_MESSAGE, REPLYTO_MESSAGE. Il bot può ricevere messaggi dagli utenti e rispondere. 1The bot can receive messages from users and reply to them.1

  • POST_MESSAGE_USER.POST_MESSAGE_USER. Dopo che un utente ha inviato un messaggio a un bot, il bot può inviare i messaggi diretti dell'utente (detti anche messaggi proattivi in qualsiasi momento.After a user has sent a message to a bot, the bot can send the user direct messages (also called proactive messages at any time.

  • GET_CHANNEL_LIST.GET_CHANNEL_LIST. I bot aggiunti ai team possono ottenere un elenco di nomi e ID dei canali in un team.Bots added to teams can get a list of names and IDs of the channels in a team.

Autorizzazioni facoltativeOptional permissions

  • Identità.IDENTITY. Quando viene usato in un canale, i bot dell'app possono accedere alle informazioni di base sulle identità dei membri del team (nome, cognome, nome dell'entità utente [UPN], indirizzo di posta elettronica); Quando viene usata in una chat personale o di gruppo, il bot può accedere alle stesse informazioni per gli utenti.When it's used in a channel, the app's bots can access basic identity information of team members (first name, last name, user principal name [UPN], email address); when it's used in a personal or group chat, the bot can access the same information for those users.

  • POST_MESSAGE_TEAM.POST_MESSAGE_TEAM. Consente ai bot di un'app di inviare messaggi diretti (proattivi) a qualsiasi membro del team in qualsiasi momento, anche se l'utente non ha mai parlato con il bot prima.Allows an app's bots to send direct (proactive) messages to any team member at any time, even if the user has never talked to the bot before.

  • Le autorizzazioni seguenti non sono esplicite, ma sono implicite in RECEIVE_MESSAGE e REPLYTO_MESSAGE e gli ambiti in cui possono essere usati i bot, dichiarati nel manifesto:The following are not explicit permissions, but are implied by RECEIVE_MESSAGE and REPLYTO_MESSAGE and the scopes into which the bots can be used, declared in the manifest:

    • RECEIVE_MESSAGE_PERSONAL REPLYTO_MESSAGE_PERSONALRECEIVE_MESSAGE_PERSONAL, REPLYTO_MESSAGE_PERSONAL
    • RECEIVE_MESSAGE_GROUPCHAT REPLYTO_MESSAGE_GROUPCHATRECEIVE_MESSAGE_GROUPCHAT, REPLYTO_MESSAGE_GROUPCHAT
    • RECEIVE_MESSAGE_TEAM REPLYTO_MESSAGE_TEAMRECEIVE_MESSAGE_TEAM, REPLYTO_MESSAGE_TEAM
  • SEND_FILES, RECEIVE_FILES. 2 controlla se un bot può inviare e ricevere file in chat personali (non ancora supportati per la chat di gruppo o i canali).SEND_FILES, RECEIVE_FILES.2 Controls whether a bot can send and receive files in personal chat (not yet supported for group chat or channels).

ConsiderazioniConsiderations

  • I bot hanno accesso solo ai team a cui sono stati aggiunti o agli utenti che li hanno installati.Bots only have access to teams to which they've been added or to users who have installed them.

  • I bot ricevono solo i messaggi in cui sono menzionati esplicitamente dagli utenti.Bots only receive messages in which they're explicitly mentioned by users. Questi dati lasciano la rete aziendale.This data leaves the corporate network.

  • I bot possono solo rispondere alle conversazioni in cui sono menzionati.Bots can only reply to conversations in which they're mentioned.

  • Dopo che un utente ha conversato con un bot, se il bot archivia l'ID dell'utente, può inviare messaggi diretti dall'utente in qualsiasi momento.After a user has conversed with a bot, if the bot stores that user's ID, it can send that user direct messages at any time.

  • È teoricamente possibile che i messaggi di bot contengano collegamenti a siti di phishing o malware, ma i bot possono essere bloccati dall'utente, dall'amministratore del tenant o globalmente da Microsoft.It is theoretically possible for bot messages to contain links to phishing or malware sites, but bots can be blocked by the user, the tenant admin, or globally by Microsoft.

  • Un bot può recuperare (e potrebbe archiviare) informazioni di identità molto basilari per i membri del team a cui è stata aggiunta l'app o per singoli utenti in chat personali o di gruppo.A bot can retrieve (and might store) very basic identity information for the team members the app has been added to, or for individual users in personal or group chats. Per ottenere altre informazioni su questi utenti, il bot deve richiedere l'accesso a Azure Active Directory (Azure AD).To get further information about these users, the bot must require them to sign in to Azure Active Directory (Azure AD).

  • I bot possono recuperare (e potrebbero archiviare) l'elenco dei canali in un team; questi dati lasciano la rete aziendale.Bots can retrieve (and might store) the list of channels in a team; this data leaves the corporate network.

  • Quando un file viene inviato a un bot, il file esce dalla rete aziendale.When a file is sent to a bot, the file leaves the corporate network. L'invio e la ricezione di file richiede l'approvazione dell'utente per ogni file.Sending and receiving files requires user approval for each file.

  • Per impostazione predefinita, i bot non hanno la possibilità di agire per conto dell'utente, ma i bot possono chiedere agli utenti di effettuare l'accesso; non appena l'utente accede, il bot avrà un token di accesso con cui può eseguire altre operazioni.By default, bots don't have the ability to act on behalf of the user, but bots can ask users to sign in; as soon as the user signs in, the bot will have an access token with which it can do additional things. Esattamente ciò che questi elementi aggiuntivi dipendono dal bot e dalla posizione in cui l'utente accede: un bot è un'app Azure AD registrata https://apps.dev.microsoft.com/ e può avere un proprio set di autorizzazioni.Exactly what those additional things are depends on the bot and where the user signs in: a bot is an Azure AD app registered at https://apps.dev.microsoft.com/ and can have its own set of permissions.

  • I bot vengono informati ogni volta che gli utenti vengono aggiunti o eliminati da un team.Bots are informed whenever users are added to or deleted from a team.

  • I bot non vedono gli indirizzi IP degli utenti o altre informazioni sul referrer.Bots don't see users' IP addresses or other referrer information. Tutte le informazioni provengono da Microsoft.All information comes from Microsoft. (C'è un'eccezione: se un bot implementa la propria esperienza di accesso, l'interfaccia utente di accesso vedrà gli indirizzi IP degli utenti e le informazioni sul referrer).(There is one exception: if a bot implements its own sign-in experience, the sign-in UI will see users' IP addresses and referrer information.)

  • Le estensioni della messaggistica, invece, vedono gli indirizzi IP degli utenti e le informazioni sul referrer.Messaging extensions, on the other hand, do see users' IP addresses and referrer information.

  • Le linee guida per le app (e il processo di revisione di AppSource) richiedono discrezionalità nella pubblicazione di messaggi di chat personali agli utenti (tramite l'autorizzazione POST_MESSAGE_TEAM) per scopi validi.App guidelines (and our AppSource review process) require discretion in posting personal chat messages to users (via the POST_MESSAGE_TEAM permission) for valid purposes. In caso di abuso, gli utenti possono bloccare il bot, gli amministratori del tenant possono bloccare l'app e Microsoft può bloccare i bot centralmente, se necessario.In the event of abuse, users can block the bot, tenant admins can block the app, and Microsoft can block bots centrally if necessary.

1 alcuni bot inviano solo messaggi (POST_MESSAGE_USER).1 Some bots only send messages (POST_MESSAGE_USER). Si chiamano bot "solo notifica", ma il termine non fa riferimento a ciò che un bot è autorizzato o non può fare, ma significa che il bot non vuole esporre un'esperienza di conversazione.They're called "notification-only" bots, but the term doesn't refer to what a bot is allowed or not allowed to do, it means that the bot doesn't want to expose a conversational experience. Teams USA questo campo per disabilitare la funzionalità nell'interfaccia utente che verrebbe normalmente abilitata; il bot non è limitato in ciò che è consentito eseguire rispetto ai bot che espongono un'esperienza di conversazione.Teams uses this field to disable functionality in the UI that would ordinarily be enabled; the bot isn't restricted in what it's allowed to do compared to bots that do expose a conversational experience.

2 regolato dalla proprietà booleana supportsFiles sull'oggetto bot nel file manifest. JSON per l'app.2 Governed by the supportsFiles Boolean property on the bot object in the manifest.json file for the app.

Nota

Se un bot ha un proprio accesso, la prima volta che l'utente accede a un'esperienza di consenso diversa è la seconda:If a bot has its own sign-in, there's a second—different—consent experience the first time the user signs in.

Attualmente, le autorizzazioni di Azure AD associate a qualsiasi funzionalità all'interno di un'app Teams (bot, TAB, Connector o Messaging Extension) sono completamente separate dalle autorizzazioni per i team elencate qui.Currently, the Azure AD permissions associated with any of the capabilities inside a Teams app (bot, tab, connector, or messaging extension) are completely separate from the Teams permissions listed here.

SchedeTabs

Una scheda è un sito Web che si trova all'interno di teams.A tab is a website running inside Teams.

Autorizzazioni necessarieRequired permissions

SEND_AND_RECEIVE_WEB_DATASEND_AND_RECEIVE_WEB_DATA

Autorizzazioni facoltativeOptional permissions

Nessuno (attualmente)None (currently)

ConsiderazioniConsiderations

  • Il profilo di rischio per una tabulazione è quasi identico a quello stesso sito Web in uso in una scheda del browser.The risk profile for a tab is almost identical to that same website running in a browser tab.

  • Una scheda ottiene anche il contesto in cui è in corso, incluso il nome di accesso e l'UPN dell'utente corrente, l'ID oggetto di Azure AD per l'utente corrente, l'ID del gruppo Office 365 in cui risiede (se si tratta di un team), l'ID tenant e le impostazioni locali correnti dell'utente.A tab also gets the context in which it's running, including the sign-in name and UPN of the current user, the Azure AD Object ID for the current user, the ID of the Office 365 Group in which it resides (if it's a team), the tenant ID, and the current locale of the user. Tuttavia, per eseguire il mapping di questi ID alle informazioni di un utente, la scheda dovrebbe rendere l'accesso dell'utente ad Azure AD.However, to map these IDs to a user's information, the tab would have to make the user sign in to Azure AD.

ConnettoriConnectors

Un connettore invia i messaggi a un canale quando si verificano gli eventi in un sistema esterno.A connector posts messages to a channel when events in an external system occur.

Autorizzazioni necessarieRequired permissions

POST_MESSAGE_CHANNELPOST_MESSAGE_CHANNEL

Autorizzazioni facoltativeOptional permissions

REPLYTO_CONNECTOR_MESSAGE.REPLYTO_CONNECTOR_MESSAGE. Alcuni connettori supportano i messaggi di azione, che consentono agli utenti di inserire risposte mirate al messaggio del connettore, ad esempio aggiungendo una risposta a un problema di GitHub o aggiungendo una data a una scheda Trello.Certain connectors support actionable messages, which allow users to post targeted replies to the connector message, for example by adding a response to a GitHub issue or adding a date to a Trello card.

ConsiderazioniConsiderations

  • Il sistema che invia messaggi di connettore non conosce chi sta inviando o chi riceve i messaggi: non vengono divulgate informazioni sul destinatario.The system that posts connector messages doesn't know who it's posting to or who receives the messages: no information about the recipient is disclosed. (Microsoft è il destinatario effettivo, non il tenant; Microsoft esegue il post effettivo sul canale.(Microsoft is the actual recipient, not the tenant; Microsoft does the actual post to the channel.)

  • Nessun dato esce dalla rete aziendale quando i messaggi del connettore vengono inseriti in un canale.No data leaves the corporate network when connector messages are posted to a channel.

  • I connettori che supportano i messaggi actionable (REPLYTO_CONNECTOR_MESSAGE autorizzazione) non vedono inoltre l'indirizzo IP e le informazioni sul referrer; Queste informazioni vengono inviate a Microsoft e quindi instradate agli endpoint HTTP precedentemente registrati con Microsoft nel portale dei connettori.Connectors that support actionable messages (REPLYTO_CONNECTOR_MESSAGE permission) also don't see IP address and referrer information; this information is sent to Microsoft and then routed to HTTP endpoints that were previously registered with Microsoft in the Connectors portal.

  • Ogni volta che un connettore è configurato per un canale, viene creato un URL univoco per l'istanza del connettore.Each time a connector is configured for a channel, a unique URL for that connector instance is created. Se l'istanza del connettore viene eliminata, l'URL non può più essere usato.If that connector instance is deleted, the URL can no longer be used.

  • I messaggi del connettore non possono contenere file allegati.Connector messages can't contain file attachments.

  • L'URL dell'istanza del connettore deve essere considerato segreto/riservato: chiunque disponga di tale URL può inserire un post, ad esempio un indirizzo di posta elettronica.The connector instance URL should be treated as secret/confidential: anyone who has that URL can post to it, like an email address. C'è quindi qualche rischio di spam o collegamenti a siti di phishing o malware.Therefore, there's some risk of spam or links to phishing or malware sites. Se ciò dovesse accadere, i proprietari del team possono eliminare l'istanza del connettore.If that were to happen, team owners can delete the connector instance.

  • Se il servizio che invia i messaggi del connettore dovesse essere compromesso e iniziare a inviare collegamenti di posta indesiderata/phishing/malware, un amministratore del tenant può impedire la creazione di nuove istanze di connettori e Microsoft può bloccarle centralmente.If the service that sends connector messages were to become compromised and start sending spam/phishing/malware links, a tenant administrator can prevent new connector instances from being created and Microsoft can block them centrally.

Nota

Attualmente non è possibile sapere quali connettori supportano i messaggi di azione (REPLYTO_CONNECTOR_MESSAGE autorizzazione).It's not currently possible to know which connectors support actionable messages (REPLYTO_CONNECTOR_MESSAGE permission).

Webhook in uscitaOutgoing webhooks

I webhook in uscita vengono creati al volo dai proprietari o dai membri del team.Outgoing webhooks are created on the fly by team owners or team members. Non sono funzionalità delle app Teams; Queste informazioni sono incluse per la completezza.They aren't capabilities of Teams apps; this information is included for completeness.

Autorizzazioni necessarieRequired permissions

RECEIVE_MESSAGE, REPLYTO_MESSAGE.RECEIVE_MESSAGE, REPLYTO_MESSAGE. Può ricevere messaggi dagli utenti e rispondere.Can receive messages from users and reply to them.

Autorizzazioni facoltativeOptional permissions

NessunoNone

ConsiderazioniConsiderations

  • I webhook in uscita sono simili ai bot, ma hanno meno privilegi.Outgoing webhooks are similar to bots but have fewer privileges. Devono essere esplicitamente menzionati, proprio come i bot.They must be explicitly mentioned, just like bots.

  • Quando viene registrato un webhook in uscita, viene generato un segreto, che consente al webhook in uscita di verificare che il mittente sia Microsoft teams in contrapposizione a un utente malintenzionato.When an outgoing webhook is registered, a secret is generated, which allows the outgoing webhook to verify that the sender is Microsoft Teams as opposed to a malicious attacker. Questo segreto deve rimanere segreto; chiunque abbia accesso può rappresentare Microsoft teams.This secret should remain a secret; anyone who has access to it can impersonate Microsoft Teams. Se il segreto è compromesso, il webhook in uscita può essere eliminato e ricreato e verrà generato un nuovo segreto.If the secret is compromised, the outgoing webhook can be deleted and re-created, and a new secret will be generated.

  • Anche se è possibile creare un webhook in uscita che non convalidi il segreto, è consigliabile sconsigliarlo.Although it's possible to create an outgoing webhook that doesn't validate the secret, we recommend against it.

  • Oltre a ricevere e rispondere ai messaggi, i webhook in uscita non possono fare molto: non possono inviare messaggi in modo proattivo, non possono inviare o ricevere file, ma non possono fare altro che i bot possano fare tranne che per ricevere e rispondere ai messaggi.Other than receiving and replying to messages, outgoing webhooks can't do much: they can't proactively send messages, they can't send or receive files, they can't do anything else that bots can do except receive and reply to messages.