Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
en:m365_graphapi_calendars_read [2025/06/16 16:48] admin created |
en:m365_graphapi_calendars_read [2026/09/14 09:15] (current) cmaes |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Configuration of Microsoft 365 for Calendars access ====== | ====== Configuration of Microsoft 365 for Calendars access ====== | ||
| - | This guide explains how to register a new application in Microsoft 365 for use with calendar integrations in **zebrix signage**. You will create an app named **"zebrix signage calendars connector"**, add a client secret, and assign it the **Calendars.Read** application permission. | + | **You expect to display your meeting rooms planning on your screen running with zebrix signage ?** |
| - | Then you'll share the required details to the zebrix technical team. | + | |
| + | This guide explains how to register a new application in Microsoft 365 for use with calendar integrations in **zebrix signage**. | ||
| + | You will create an app, add a client secret, and assign it the **Calendars.Read** application permission. Then, you'll share the required details to the zebrix technical team and finally a secret UUID will be returned to you to be used in the widget configuration. | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Please note that a Microsoft 365 Global Admin account is required to complete this configuration | ||
| + | </WRAP> | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | This tutorial is a straightforward approach that grants application-wide **permissions to all resources and users calendars**. | ||
| + | It is the easiest to implement this, using only the Microsoft Entra Admin Center, making it suitable for quick setups. | ||
| + | However, **restricting permissions to specific resources** by scoping them to groups is an approach that is **more secured and recommended**. | ||
| + | It involves combining the Microsoft Entra Admin Center for initial setup with PowerShell commands to apply scoping that will not be covered in this tutorial. | ||
| + | </WRAP> | ||
| + | |||
| + | |||
| ===== 1. Accessing App Registrations ===== | ===== 1. Accessing App Registrations ===== | ||
| Line 12: | Line 28: | ||
| ===== 2. Registering the App ===== | ===== 2. Registering the App ===== | ||
| - | - **Name**: Enter `zebrix signage calendars connector` | + | - **Name**: Enter `zebrix signage calendars connector` (you are free to choose the name you want) |
| - **Supported account types**: Choose **"Accounts in this organizational directory only"** (default). | - **Supported account types**: Choose **"Accounts in this organizational directory only"** (default). | ||
| - Leave the **Redirect URI** empty. | - Leave the **Redirect URI** empty. | ||
| Line 19: | Line 35: | ||
| {{:en:m365_calendars_app_registration_02.png?nolink&1000|}} | {{:en:m365_calendars_app_registration_02.png?nolink&1000|}} | ||
| - | ===== 3. Creating a Client Secret ===== | + | ===== 3. Save details and create a Client Secret ===== |
| - | - In the app overview, select **"Certificates & secrets"**. | + | - Save the details that need to be provided to zebrix's technical team: |
| - | - Under **Client secrets**, click **"New client secret"**. | + | - **Application (client) ID** |
| - | - Add a description, for example `zebrix connector secret`. | + | - **Directory (tenant) ID** |
| - | - Set an expiration (recommended: 6 or 12 months). | + | - Click on **Add a certificate or secret**. |
| - | - Click **"Add"** and copy the generated value immediately. **You will not be able to retrieve it again.** | + | |
| {{:en:m365_calendars_app_registration_03.png?nolink&1000|}} | {{:en:m365_calendars_app_registration_03.png?nolink&1000|}} | ||
| + | |||
| + | - Add a description, for example `zebrix connector secret`. | ||
| + | - Set an appropriate expiration (24 months is recommended). | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | When the secret will expire, zebrix will not have access to your calendars anymore and display their details on screen. You'll have to create a new secret and provide it to zebrix. We invite you to create an event in your personal calendar at the end of the validity period of the secret. | ||
| + | </WRAP> | ||
| {{:en:m365_calendars_app_registration_04.png?nolink&1000|}} | {{:en:m365_calendars_app_registration_04.png?nolink&1000|}} | ||
| + | |||
| + | - Click **"Add"** and copy the generated value and save it immediately. **You will not be able to retrieve it again.** | ||
| {{:en:m365_calendars_app_registration_05.png?nolink&1000|}} | {{:en:m365_calendars_app_registration_05.png?nolink&1000|}} | ||
| Line 37: | Line 61: | ||
| - Select **Microsoft Graph**. | - Select **Microsoft Graph**. | ||
| - Choose **Application permissions**. | - Choose **Application permissions**. | ||
| - | - In the search bar, type `Calendars.Read`. | + | - Please search **Calendars**. |
| + | - If you only want to display meeting rooms events and availabilities, please check the role `Calendars.Read` | ||
| + | - If you plan to allow instant booking from the touchscreen, please check the role `Calendars.ReadWrite` | ||
| - Check **Calendars.Read** under the **Calendars** section. | - Check **Calendars.Read** under the **Calendars** section. | ||
| - Click **"Add permissions"**. | - Click **"Add permissions"**. | ||
| Line 44: | Line 70: | ||
| {{:en:m365_calendars_app_registration_06.png?nolink&1000|}} | {{:en:m365_calendars_app_registration_06.png?nolink&1000|}} | ||
| - | {{:en:m365_calendars_app_registration_07.png?nolink&1000|}} | + | {{:public_media:m365_calendars_api_permissions.png?nolink|}} |
| + | |||
| + | ===== 5. M365 connector creation on Zebrix ===== | ||
| + | |||
| + | {{:public_media:connector_creation_m365_1.png|900}} | ||
| + | |||
| + | {{:public_media:connector_creation_m365_2.png|600}} | ||
| + | |||
| + | |||
| + | - In the *Parameters* section of the CMS, inside the *Connectors* subsection, create a new Microsoft 365 Calendar connector. Please enter the details of your Microsoft 365 app: | ||
| + | * Application (client) ID | ||
| + | * Directory (tenant) ID | ||
| + | * Application Secret | ||
| + | |||
| + | {{:public_media:connector_creation_m365_3.png|}} | ||
| + | |||
| + | - A connector entry will be created and an UUID generated that identifies this connector. You should keep this UUID secret (i.e. it should stay inside Zebrix) because it gives access to the M365 calendar resources. | ||
| + | |||
| + | ===== 6. Widget configuration ===== | ||
| + | |||
| + | When you add or edit a widget zone in the page editor, if you select a Microsoft 365 Calendar widget, the connector(s) configured on your account will automatically be available for selection. | ||
| - | ===== 5. Summary ===== | ||
| - | You now have: | ||
| - | - Registered an application named **"zebrix signage calendars connector"**. | ||
| - | - Generated a client secret to authenticate your backend app. | ||
| - | - Granted **Calendars.Read** application-level permission to access calendars in your organization. | ||
| - | ===== Next Steps ===== | ||
| - | Use the **Application (client) ID**, **Directory (tenant) ID**, and **Client secret** in your integration code to authenticate using the OAuth 2.0 client credentials flow. | ||
