Installationsanleitung M365 - Kollaboratives Arbeiten
Einleitung
Mit der Schnittstelle Kollaboratives Arbeiten wird die strukturierte Dossier- und Prozessführung in CMI mit den kollaborativen Arbeitsformen von Microsoft 365 verbunden, insbesondere im Hinblick auf die gemeinsame Bearbeitung von Dokumenten.
Voraussetzungen
Technische Voraussetzungen
- CMI: Ab Version 25.0.0
- Microsoft 365 Tenant: Erforderlich mit den entsprechenden Lizenzen für Teams und OneDrive.
- Azure Active Directory: Muss für das Unternehmen korrekt konfiguriert sein.
- Microsoft 365- oder Azure Active Directory (Azure AD)-Konto: Notwendig zur Anmeldung.
- Proxy-Konfiguration: Für Hybrid-Kunden: Neuer CMI Relay-Service (2025) CMI Cloud - Vorabinformation Relay Migration
Wenn ein alternativer Proxy verwendet wird, muss sichergestellt sein, dass dieX-Forwarded-ForundX-Forwarded-Prefix-Header korrekt gesetzt sind.
Zugriff auf die Microsoft Graph API
Es muss sichergestellt werden, dass die Microsoft Graph API über das Unternehmensnetzwerk erreichbar ist. Für den Betrieb müssen die folgenden Domains freigeschaltet werden:
- Authentifizierung: login.microsoftonline.com
- API: graph.microsoft.com
- Dokumenten Upload nach OneDrive: http://{tenantName}-my.sharepoint.com
- Dokumenten Upload nach Teams: http://{tenantName}.sharepoint.com
HTTPS
Damit die Anmeldung bei Azure/Microsoft klappt, muss lokal HTTPS konfiguriert sein: Client Server Verbindung verschlüsseln (SSL HTTPS)
metatool.ini
In der metatool.ini muss in der Sektion OwinServer der UriPortPrivate konfiguriert sein:
[OwinServer]
Server=*
PortPrivate=10003
PortPublic=10004
Mandant=dev1
HTTPSEnabled=1
UriPortPrivate=https://owin.cmiag.dev
Damit die SignIn- und Callback-Endpunkte korrekt funktionieren, muss diese Url von extern erreichbar sein. Gegebenenfalls muss die Url daher über einen Relay-Proxy angegeben werden.
In der Sektion MobileFirst muss Url mit der Basis-Url des Webclients konfiguriert sein, damit die Registerkarten im Team erstellt werden können:
[MobileFirst]
Url=https://webclient.cmiag.dev
Die Url muss zwingend mit https:// beginnen!
Erstellen der Backend App-Registrierung
-
Azure-Portal öffnen und den Dienst App-Registrierungen aufrufen.

-
Auf Neue Registrierung klicken.

-
Sprechenden Namen vergeben, Kontotyp auf Nur Konten in diesem Organisationsverzeichnis setzen. Umleitungs-URI wird für das Backend nicht benötigt.
ℹ️ Hinweis: Es empfiehlt sich, dass aus dem Namen hervorgeht, dass es sich um die Backend Registrierung handelt.
-
Auf Registrieren klicken.
Konfigurieren der Backend App-Registrierung
-
Applikationsverantwortliche als Besitzer eintragen.

-
Eine API verfügbar machen:
- Anwendungs-ID-URI hinzufügen

- Bereich hinzufügen → Pflichtfelder ausfüllen


ℹ️ Beispielwerte zum kopieren
Bereichsname: access_as_user
Anzeigename der Administratoreinwilligung: Access as Users
Beschreibung der Administratoreinwilligung: Ermöglicht der App den Zugriff im Namen des angemeldeten Benutzers.
-
Unter API-Berechtigungen:
- Microsoft Graph → Delegierte Berechtigungen
Berechtigungen:Team.ReadBasic.AllChannel.ReadBasic.AllTeamsTab.ReadWrite.AllFiles.ReadWrite.AllDirectory.AccessAsUser.AllUser.Read


- Administratorzustimmung erteilen

- Status prüfen

- Microsoft Graph → Delegierte Berechtigungen
Erstellen der Frontend App-Registrierung
-
Azure-Portal öffnen und den Dienst App-Registrierungen aufrufen.

-
Auf Neue Registrierung klicken.

-
Sprechenden Namen vergeben, Kontotyp auf Nur Konten in diesem Organisationsverzeichnis setzen. Die Umleitungs-URI wird in einem späteren Schritt konfiguriert und kann vorerst leer gelassen werden.
ℹ️ Hinweis: Es empfiehlt sich, dass aus dem Namen hervorgeht, dass es sich um die Frontend Registrierung handelt.
-
Auf Registrieren klicken.
Konfigurieren der Frontend App-Registrierung
-
Applikationsverantwortliche als Besitzer eintragen.

-
Unter Authentifizierung:
- Plattform hinzufügen

- Web auswählen
-
Umleitungs-URI:
https://{baseUrl}/api/core/CustomAuth/Callbackeintragenℹ️ Hinweis: Die Umleitungs-URI wird im CMI in der Microsoft Graph API Konfiguration angezeigt.ℹ️ Ich habe keinen Zugriff auf die Konfigurationen oder finde die BaseUrl nicht!
Wird keine Umleitungs-URI eingetragen, erhält man einen Fehler bei der Anmeldung beim ausführen der M365 Menüs. Teil der Fehlermeldung ist auch die URL die hinterlegt werden muss. Das ist hilfreich, wenn beispielsweise kein Zugriff auf das config.json vorhanden ist oder ein Proxy im Einsatz ist.
-
Checkbox Zugriffstoken aktivieren
-
Zusätzliche URIs bei Bedarf eintragen. So können mehrere CMI-Mandanten auf die gleiche Azure-Instanz abgebildet werden.

-
Unter API-Berechtigungen:
-
Microsoft Graph → Delegierte Berechtigungen
Berechtigungen:
-User.Read -
Von meiner Organisation verwendete APIs → Backend API hinzufügen
Berechtigungen:
-access_as_user

-
Administratorzustimmung erteilen

-
Status prüfen

-
Konfiguration CMI
Lizenz
Die gesamte Funktionalität ist an die M_M365_KOLLABORATIVESARBEITEN Lizenz gebunden.
Die Gruppe M365 Kollaboratives Arbeiten erlaubt Mitgliedern den Zugriff auf die Funktionalität.
Berechtigungen im KPF
- CMI Desktop Client starten
-
KPF Parameter editieren

-
Registerkarte Benutzergruppen → Abhängigkeiten

-
Gruppen verbinden (Drag & Drop)
Hier können nun Abhängigkeiten von KPF Benutzergruppen auf M365 Kollaboratives Arbeiten gezogen werden. Hierzu mit dem Mauszeiger über die Gruppe fahren, und den grünen Kreis mit gedrückter linken Maustaste auf M365 Kollaboratives Arbeiten ziehen.

-
Datei speichern und hochladen
-
Server Service neu starten. Erst nach einem Neustart werden die Änderungen aktiv.
Microsoft Graph API Konfiguration
In den Systemeinstellungen muss die Microsoft Graph API konfiguriert werden. Die Werte müssen den Azure App-Registrierungen entnommen werden.

- Checkbox Aktivieren auswählen
- Die Authority Base URL für Microsoft Graph ist:
https://login.microsoftonline.com/ - Authority Version:
v2.0 - Verzeichnis-ID (Mandant):
Da beide App-Registrierungen den gleichen Mandanten haben , ist es egal aus welcher App-Registrierung der Wert kopiert wird:

- Anwendungs-ID (Client) - Backend

- Zertifikate & Geheimnisse - Backend Für die Authentifizierung von Anwendungen in Azure über eine App-Registrierung stehen zwei Optionen zur Verfügung: ein Zertifikat oder ein geheimer Clientschlüssel (Client Secret). Beide Methoden dienen dazu, die Identität der Anwendung sicher nachzuweisen. Hier werden beide Ansätze im Detail beschrieben.
- Scopes Backend:
https://graph.microsoft.com/.default -
Anwendungs-ID (Client) - Frontend

-
Zertifikate & Geheimnisse - Frontend Für die Authentifizierung von Anwendungen in Azure über eine App-Registrierung stehen zwei Optionen zur Verfügung: ein Zertifikat oder ein geheimer Clientschlüssel (Client Secret). Beide Methoden dienen dazu, die Identität der Anwendung sicher nachzuweisen. Hier werden beide Ansätze im Detail beschrieben.
-
Scopes Frontend
Der erste Eintrag istopenid. Dann mit einem Leerschlag getrennt muss die Anwendungs-ID-URI der Backend App-Registrierung eingetragen werden + /.defaultBeispiel:
openid api://25940d9d-0824-4257-86af-f68b5f9cc7cd/.default
11. Schwellenwert für DriveItems
Dieser Konfigurationswert dient zur Begrenzung der Anzahl gleichzeitig verarbeiteter Elemente (DriveItems), um die Performance und Stabilität des Systems sicherzustellen. Er definiert die maximale Anzahl an Elementen, die bei der Übernahme aus Microsoft 365 (M365) ausgewählt werden können oder als untergeordnete Elemente in Baumdarstellungen angezeigt werden dürfen.
M365 Integration Konfiguration
CMI Link in Teams & SharePoint anzeigen
Damit der CMI Link angezeigt werden kann, muss für jedes Team eine neue Text-Spalte hinzugefügt werden:

Als Name der Spalte soll standardmässig CMI_WebUrl eingetragen werden. Nach dem erstellen kann der Name beliebig angepasst werden. Technisch ist immer der erste Name relevant und muss mit der Einstellung Benutzerdefinierte SharePoint Spaltenbezeichnung für CMI Link übereinstimmen.

Spalte formatieren
Damit in der Spalte ein klickbares CMI Logo erscheint, muss die Spalte folgendermassen formatiert werden:

{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"attributes": {
"href": "=if(@currentField != '', @currentField, '')",
"target": "_blank"
},
"style": {
"display": "=if(@currentField != '', 'inline', 'none')"
},
"children": [
{
"elmType": "svg",
"style": {
"fill": "#009fe3",
"height": "30px",
"witdh": "30px",
"padding-top": "4.5px"
},
"attributes": {
"viewBox": "0 0 25 25"
},
"children": [
{
"elmType": "path",
"attributes": {
"d": "M19.78,15.42a.67.67,0,0,1-1.34,0V8.66a.67.67,0,1,1,1.34,0Zm-3.38,0a.67.67,0,0,1-1.34,0V11.2l-1,2.26a.74.74,0,0,1-1.36,0l-1-2.26v4.22a.67.67,0,0,1-1.33,0V8.66A.68.68,0,0,1,11.06,8h.18c.43,0,.59.27.73.58l1.43,3.22,1.43-3.22c.14-.31.3-.58.73-.58h.17a.68.68,0,0,1,.67.67Zm-9.95-.66h.1a.93.93,0,0,0,1-.78.67.67,0,0,1,1.33.07v.13a2.28,2.28,0,0,1-2.3,1.9h-.1a2.26,2.26,0,0,1-2.31-2.25V10.24A2.27,2.27,0,0,1,6.45,8h.1A2.25,2.25,0,0,1,8.84,9.91a.38.38,0,0,1,0,.12.66.66,0,0,1-.68.65.63.63,0,0,1-.65-.58.93.93,0,0,0-1-.78h-.1a.93.93,0,0,0-1,.92v3.59a.94.94,0,0,0,1,.93M0,24.06H24.12V0H0Z"
}
}
]
}
]
}
Ergebnis bei erfolgreicher Konfiguration:
