Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:m365_graphapi_calendars_read [2025/06/16 17:46]
admin [Configuration of Microsoft 365 for Calendars access]
en:m365_graphapi_calendars_read [2026/09/14 09:15] (current)
cmaes
Line 11: Line 11:
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-This tutorial is a straightforward approach that grants application-wide permissions to all resources and users calendars. ​+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. 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. ​+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. 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>​ </​WRAP>​
Line 28: 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 35: 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 53: 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 60: 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.