MS Office

Overview

The io.Connect Teams Adapter consists of three components which provide integration with the various aspects of the Teams infrastructure - the Microsoft Graph API, the Teams desktop and web clients, and the Teams event streaming service.

Teams Adapter components:

  • Service App - a hidden io.Connect app that runs in the background when the io.Connect framework is started (io.Connect Desktop or io.Connect Browser). The Service App component provides integration between Teams and the io.Connect framework on the user side. In io.Connect Desktop projects, the Service App component runs as a hidden service window on the user machine. In io.Connect Browser projects, the Service App component runs in the browser as a regular Browser Client app or a Plugin.

  • Web Service - a backend component used for reacting to Teams events, such as incoming or outgoing messages. Uses end-to-end encryption to ensure data confidentiality, and a subscription model to ensure scalability and efficient usage of the Microsoft Graph API. This component must be hosted by the client on a domain visible by the Microsoft Graph API. It's possible to use the Teams Adapter without a Web Service component, but you will lose the features that depend on receiving events from Teams, as well as the UI functionalities provided by the Platform App component.

  • Platform App - an optional Teams app written with the Microsoft Teams Toolkit that provides customizable UI elements for the Teams client.

The configuration settings of the Service App component control the main functionalities of the Teams Adapter. You can use this to specify technical settings and to control features provided by the Teams Adapter.

Architecture

General

The following diagram illustrates the components of the Teams Adapter, their relationship to other apps, the user, and the Microsoft Graph API, as well as the flow of information between the various entities:

Event Message Flow

The following diagram illustrates the flow of data and the command execution flow when the Teams Adapter receives an event message from the Microsoft Graph API. The Teams Adapter reacts by performing a command as specified in the configuration of the Service App component:

In this specific example, the command is performed by invoking an action in the Microsoft Graph API (step 5). The Service App component can also be configured to perform an io.Connect operation (e.g., to raise an Intent, or to invoke an Interop method).

UI Actions Flow

The following diagram illustrates the flow of data and the command execution flow when the user performs an action in the UI of the Teams app by using a UI action provided by the Platform App component. The Teams Adapter reacts by performing a command as specified in the configuration of the Service App component:

In this specific example, the command is performed by invoking an io.Connect operation (step 6). The Service App component can also be configured to perform a Microsoft Graph API operation (e.g., to send a chat message, or to create a chat).

Security

For communicating with the Microsoft Graph API, the Teams Adapter uses an OAuth token on behalf of the user. This means that:

  • at most, the Teams Adapter will have the same permissions as the user;
  • at most, the Teams Adapter will have access to the same resources as the user;

You can either configure the io.Connect platform to log into Teams as part of the SSO phase, or have the user log in using the Teams Adapter itself.

The actual permissions for the OAuth token are specified by you depending on which operations you wish to support.

Sensitive message data received from Teams is secured using end-to-end encryption.