Introduction to Microsoft UC integration#

Overview#

This section introduces Microsoft Unified Communications (UC) integration with Automate.

Automate provides an interface for managing Microsoft users and services, either as a stand-alone, Microsoft-only implementation, or as part of a multi vendor implementation.

Automate can be used to manage multiple applications within Microsoft’s UC stack, including:

  • Microsoft Entra ID

  • Microsoft Teams

  • Exchange Online

  • On-premise Active Directory

The flowchart provides a high level workflow for the Microsoft solution in Automate.

Microsoft Overview Flowchart

@startuml
'Introduction to Microsoft UC Integration Flowchart
!include style.iuml
start
:[[../src/user/microsoft-device-mgt.html Microsoft UC application setup]];
:[[../src/user/config-automate-for-ms-services.html Configure Automate for Microsoft services]];
fork
:[[../src/user/sync-ms-users-to-sites.html#sync-to-site-with-flow-through-provisioning Sync to site with flow through]];
fork again
:[[../src/user/sync-ms-users-to-sites.html#sync-to-customer-then-to-site Sync to customer then to site]];
end fork
:[[../src/user/ms-subscribers.html Manage Microsoft subscribers]];
@enduml

Related topics

Devices for Microsoft UC application setup#

The following devices must be configured for Microsoft UC application setup (authentication, authorization, and PowerShell ):

Microsoft Graph API#

Automate communicates with Microsoft Entra using Microsoft Graph API. Registering Automate as an application object in Microsoft Entra provides authentication and authorization for Automate.

Microsoft Graph API offers:

  • Simplicity

  • No requirement for an intervening proxy

  • Lower latency

  • Secure authentication options

  • Granular permissions management

As the Microsoft Graph API matures, Automate can easily be updated to leverage new Graph functionality - new templates can be added, and existing ones can be updated. Template updates can be deployed with no downtime or service impact.

PowerShell proxy server#

Automate communicates with the Microsoft Teams Portal and Microsoft Exchange Online via an installed PowerShell service, which is then enabled and that provides a management API for administrative tasks:

  • Session Management: List, monitor, and terminate PowerShell listener sessions

  • Certificate Management: List, sync, upload, and verify certificates

  • User Management: Create, list, update, and delete users

  • Error Handler Configuration: View and update error handling rules

  • Log retrieval: Get logs by execution ID or session ID

  • Persistent config: Memory tuning, concurrency limits (global and per-customer), session settings (idle reaper, max session age), and container memory limit

For command line management, refer to the PowerShell topic in the Platform Guide.

Microsoft Teams#

Automate uses the PowerShell service and the Microsoft Teams PowerShell module to manage settings for end users, services, device policies, and telephony in Microsoft Teams.

PowerShell authenticate to Microsoft Teams through an application registration.

Microsoft Exchange Online#

Automates uses the PowerShell service and Microsoft’s Exchange Online PowerShell module to manage user mailboxes, shared mailboxes, room mailboxes, and distribution groups in Microsoft Exchange Online.

Automate employs app-only authentication for Microsoft Exchange Online, requiring a certificate and private key installed on the PowerShell proxy.

For app-only authentication, you will need to create an X.509 certificate with a private key, then install the certificate and private key on the PowerShell proxy server. Automate can create this certificate for the Microsoft tenant setup, upload it to the PowerShell proxy server, install it, and update the thumbprint in the tenant data. The public key is exported from Automate and imported into Microsoft Entra.

The certificate can also be imported from the customer into Automate.

During the registration of the Automate application object with Microsoft Entra, upload the certificate (public key only), assign Exchange Online API permissions, and an appropriate RBAC role to the application:

  • Automate requires the following Microsoft Entra permission: Exchange.ManageAsApp

    This permission allows a registered application to access Exchange Online resources.

  • Automate requires the following role-based access control (RBAC) role: Exchange Administrator

    Users with this role have global permissions within Microsoft Exchange Online and can create and manage all Microsoft 365 groups, manage support tickets, and monitor service health.

    Note

    For custom administrator user roles, ensure the associated access profile (access profile type device/msexchangeonline/*) allows for all operations on all Microsoft Exchange models.

Related topics

Powershell service concurrency and session settings#

The command line allows for server settings modification. Refer to the settings details in the PowerShell topic of the Platform Guide.

Outbound Internet Proxy#

Some organizations require all traffic outbound to the public Internet (including traffic to Microsoft 365 tenants) to traverse an outbound Internet proxy server for audit logging and, optionally, authentication.

Microsoft Entra#

Automate uses the Microsoft Graph API at https://graph.microsoft.com over TCP port 443 to interact with Microsoft Entra.

Microsoft’s application registration process provides authentication and authorization services for Automate.

You can configure the permissions granted to the Automate application based on the management use cases for which Automate has been designated. For example, you can grant permission to Automate to manage end user license assignments, or you can withhold that permission (in which case Automate will only be able to view existing license assignments, limiting the Automate workflows available to you).