Zylinc Cloud is able to integrate with Microsoft Exchange in order to provide calendar integration for customers that have not migrated their calendars to Office365.
In order to do so, a Zylinc Calendar OnPremise Microsoft Exchange service must be installed within customer's network. Microsoft Exchange server must be reachable by this service in order to request calendar data.
Since Zylinc Calendar OnPremise Microsoft Exchange service will use Push Subscriptions (see Notification
subscriptions, mailbox events, and EWS in Exchange) for monitoring calendar changes, it is necessary that Microsoft Exchange server is also able to reach the Zylinc Calendar OnPremise Microsoft Exchange service.
Requirements
We need Your IP Address, for where you install the Service
With Powershell on that server, run this command.
curl ipinfo.io
This will return Content with an IP address, send info to partner.
Here are the requirements for the service to be operational.
Dependencies
.NET Framework 4.8 that can be downloaded and installed. See Download .NET Framework 4.8.
Firewall
Allow outgoing connection to integration.zylinc.cloud:5671
Important:
After opening your firewall run this PowerShell Command on your server.
ComputerName : integration.zylinc.cloud
This will test if it's possible to Ping Zylinc and get an response (TcpTestSucceeded : True)
Minimum system requirements
Windows Server 2016 (64-bit)
Dual-core or Quad-core CPU
2 GB of RAM
Note: The resource requirement will increase with the number of users that are being synced.
Service and Exchange configuration
Initial setup requirements:
Zylinc Calendar OnPremise Microsoft Exchange service is installed within customer's network.
Microsoft Exchange server is reachable by Zylinc Calendar OnPremise Microsoft Exchange service.
Zylinc Calendar OnPremise Microsoft Exchange service is reachable by Microsoft Exchange server.
Exchange User (sync user) with impersonation rights.
Must have access to read other users calendars and their events.
Exchange synchronization user setup
For details on setting up user with impersonation rights, please go to Impersonation and EWS in Exchange.
Exchange Impersonation enables a caller to impersonate a given user account. This enables the caller to perform operations by using the permissions that are associated with the impersonated account, instead of the permissions that are associated with the caller's account.
This is done using the New-ManagementRoleAssignment Exchange Management Shell cmdlet to assign the ApplicationImpersonation role to users in the organization.
Example:
New-ManagementRoleAssignment –Name:impersonationAssignmentName –Role:ApplicationImpersonation –User:serviceAccount
Integration configuration
Once the service is installed and ready to be used, the following configurations must be applied.
Service configuration
First of all, the service that is installed on customer's site must be configured. The configuration must be added before
the service is started. If service is already started, it must be stopped.
The configuration file (appsettings.json) is found at the following folder:
C:\ProgramData\Zylinc\CalendarProviderMsExchange\[_current version_]\CalendarProviderMsExchange
Once appsettings.json file is open, following fields must be filled:
Customer - Name of the customer (provided by Zylinc).
CustomerGuid - Unique customer Id (provided by Zylinc).
GlobalRabbitMq:ConnectionString - Connection string (address with credentials) to Zylinc's Global Message Bus (provided by Zylinc).
- Format: amqp://[username]:[password]@[address]:[port]/%2f[rabbitmq_virtual_host]
- %2f - is necessary part for RabbitMQ. No way around it. It must be part of the string if virtual host is being used.
GlobalRabbitMq:EnableSSL - true
GlobalRabbitMq:SslServer - integration.zylinc.cloud
Other settings can be left as they are.
These settings are necessary for the Zylinc Cloud to interact with the OnPremise service.
appsettings.json file example:
{
// Customer Id and name
"Customer": "zylinc-t1n",
"CustomerGuid": "0000000-aaaa-bbbb-cccc-000000000001",
// Connection settings to Global RabbitMQ
"GlobalRabbitMq": {
"ConnectionString": "amqp://username:password@integration.zylinc.cloud:5671/%2fvirtual-host",
"EnableSsl": true,
"SslServer": "integration.zylinc.cloud"
},
// Console logging settings.
"ConsoleLogging": {
"LogLevel": "Trace"
}
}
Zylinc Cloud configuration
Once the Calendar OnPremise Exchange service is configured and started, Zylinc Cloud needs to be configured in order to begin calendar synchronization.
Enter Microsoft Exchange calendar integration configuration page to start configuring.
Create new calendar provider.
Calendar settings
To configure calendar synchronization, the following fields can be configured.
Configuration name - must be supplied by the customer..
Enable - can be selected or deselected to enable/disable calendar synchronization.
Time of day for periodic synchronization - can be adjusted by the customer to indicate what time the full synchronization should happen every day/night. The time is in UTC.
Synchronization period - can be left as Default or changed by customer to indicate a period of which the calendar events should be synchronized in the past and future.
Privacy - can be changed by customer in order to specify the privacy settings for imported calendar events.
- Standard - will import calendar events as they are configured based on their privacy settings in Exchange.
- Free/busy - will apply privacy filter and will modify sensitive information (subject, location, etc) on import by masking it for all event.
- Exclude private - will exclude any private event from the import.
Tags - can be filled by customer with tags that users posses to include into the calendar synchronization. If left empty, all users with calendar license will be included.
Exchange settings
Once configuration for the calendar synchronization is complete, configuration for Exchange server must be provided.
Exchange server URL - must be supplied by the customer. The URL is an address of the Exchange server and itmust be reachable by the Calendar OnPremise Microsoft Exchange service that was earlier installed.
Example: http://[address]:[port]/ews/exchange.asmx
Notification callback URL - must be supplied by the customer. The URL is an address of the Zylinc Calendar OnPremise Microsoft Exchange service that can be reached by Exchange server within customer's network.
Example: http://[address]:[port]
Allow self-signed certificates - can be enabled by customer if their Exchange server is running with Self Signed certificates. If this is not enabled and Exchange server is running with Self Signed certificates, then the connection to Exchange will not be established by the Zylinc Calendar OnPremise Microsoft Exchange service.
Username - Username of Exchange user that has impersonation rights to read other users calendars and events.
Password - Password of Exchange user that has impersonation rights to read other users calendars and events.
Communication overview
General overview on how the Zylinc Calendar OnPremise Microsoft Exchange service interacts with Zylinc Cloud and
Microsoft Exchange server.
Note: All communication between Zylinc Calendar OnPremise Microsoft Exchange service and Zylinc Cloud is performed over Zylinc Global Message Bus