23 March, 2021 09:22

The calendar application is an essential component of Microsoft Teams. This application’s task is to display your calendar from the personal mailbox. You access the calendar app directly from the app bar within your Teams client. The following screenshot shows the Microsoft Teams web client as an example.

Calendar.png

Microsoft Teams contacts the Teams Backend Services in Microsoft 365 to get calendar information from the Teams Backend Services to display the users’ calendar. The Backend Services get the required information from the Exchange mailbox. This access is not a problem for mailboxes hosted in Exchange Online, as Microsoft 365 provides the required access paths and permissions for your tenant.

Your on-premises Exchange Organization must meet specific requirements to provide access for Microsoft Teams. These technical prerequisites bring additional complexity into daily operation, which has its troubleshooting challenges. As an IT administrator, you need to know the individual components involved and their interaction to handle problems efficiently.

In this first article, I focus on the technical components and the requirements to make local Exchange mailboxes accessible for Microsoft Teams. The following two blog posts show you your options and tools for troubleshooting connectivity issues to on-premises mailboxes.

Microsoft Teams (Backend) Services
In contrast to other software clients that access an Exchange mailbox, calendar access in Microsoft Teams is not done by the Teams client itself, but rather by the so-called Teams Middle-Tier, which is part of a set of Teams Backend Services, independently of the client. Client access to other Microsoft 365 services, such as SharePoint Online or OneNote, is done directly.
The following diagram shows how Teams clients access the Teams Backend Services.

backend services.png

We only focus on the two components highlighted with a red rectangle, the Teams Services and Exchange. The connection between Teams Backend Services and Exchange is drawn as a simple line in the diagram, but it is precisely this connection that needs your attention to make Microsoft Teams work with on-premises mailboxes.

Calendar Access Overview
When a user accesses the calendar app in a Microsoft Teams client, the client queries the calendar information from the Teams Backend Services. The request uses the user’s login name (e.g., John-Doe@varunagroup.de), which is supposed to be the primary email address.
Let us assume the user uses John.Doe@varunagroup.de as a login when starting the Teams client.

In the first step, after receiving the calendar request from the Teams client, the Teams Backend Services perform an AutoDiscover V2 query on Exchange Online (1). The Teams Backend Services always query outlook.office365.com first because the services assume that Exchange Online has the necessary information for calendar access to John Doe’s mailbox.

Exchange.png

In this example, the mailbox is in an on-premises Exchange organization, Exchange Online replies with an HTTP 302 redirect response. As a result, the Teams Backend Services need to determine the local Exchange organizations endpoints using AutoDiscover V2 independently. The services use the domain part of John Doe’s email address for the request, which is varunagroup.de.

In step (2), the Teams Backend Services tries to determine the default AutoDiscover endpoint using the DNS name provided in the HTTPT 302 response. After successful DNS resolution, the services establish an anonymous AutoDiscover V2 connection using HTTPS. Exchange Server responds to this request with the local Exchange organization’s URL information configured as ExternalUrl attributes for the virtual Exchange Server directories.

Authenticated access to the Exchange mailbox only takes place in step (3). The AutoDiscover V2 requests use anonymous requests for performance reasons. Teams Backend Services uses OAuth-Authentication when accessing the Exchange Web Services’ endpoint and reading calendar information. The Backend Services services then prepare the calendar information and respond to the Teams client request.

After receiving the Teams Backend Services response, the Teams client displays the calendar app icon for John Doe.

The requirements for this process to function correctly are:

  • Correctly configured Azure AD Connect with Exchange Hybrid option enabled
  • Synchronization of all on-premises mailbox users to Azure AD
  • Exchange Organization published to the internet
  • Exchange Server 2019 or 2016 running the latest cumulative updates
  • Exchange namespace correctly configured in the external DNS zone
  • Configured AutoDiscover endpoints for all primary email domains in the external DNS zones, accepting non-authenticated requests
  • Configuration of Exchange Classic Full Hybrid Mode using Hybrid Configuration Wizard

With a hybrid Exchange configuration that meets these requirements, the use of on-premises mailboxes with Microsoft Teams works.

Exchange Server is a very tolerant server application that you can operate in very different configurations. Individual deviations from the preferred architecture of Exchange Server and a hybrid configuration with Microsoft 365 lead to possible errors when using Microsoft Teams with on-premises user mailboxes.

I highly recommend reading the Microsoft Docs article Troubleshoot Microsoft Teams and Exchange Server interaction issues, when encountering problems with your on-premises mailboxes and Microsoft Teams.

In the next two blog posts, I will take a closer look at calendar access and calendar delegate situations and the possible sources of errors and options for error analysis.

Links

Thomas Stensitzki is a leading technology consultant focusing on Microsoft messaging and collaboration technologies and the owner of Granikos GmbH & Co. KG. He is an MVP for Office Apps & Services and an MCT Regional Lead. As a user group organizer, he hosts the Microsoft Teams User Group Berlin and the Exchange User Group DACH.

Twitter: https://twitter.com/stensitzki
Blog: https://JustCantGetEnough.Granikos.eu
Teams User Group: https://TeamsUserGroup.berlin
Exchange User Group: https://exusg.de

To write your own blog on a topic of interest as a guest blogger in the Microsoft Teams Community, please submit your idea here: https://aka.ms/TeamsCommunityBlogger

https://techcommunity.microsoft.com/t5/microsoft-teams-community-blog/microsoft-teams-and-on-premises-mailboxes-part-1-how-do-teams/ba-p/2229851 https://techcommunity.microsoft.com/t5/microsoft-teams-community-blog/microsoft-teams-and-on-premises-mailboxes-part-1-how-do-teams/ba-p/2229851 2021-03-23 15:00:00Z