Microsoft Information Protection (MIP)
Diese Dokumentfunktion ermöglicht es, beim Generieren von Word-, PowerPoint- und Excel-Dokumenten Vertraulichkeitsbezeichnungen (Sensitivity Labels) von Microsoft Information Protection (Microsoft Purview) anzuwenden. Der Benutzer wählt das Label beim Generieren im Eingabeformular aus; primedocs wendet die zugehörigen visuellen Markierungen (Kopf-/Fusszeilen, Wasserzeichen) und – falls aktiviert – den Rechteschutz an.
- Eine Azure-AD-App-Registrierung, deren Client-ID in
ApplicationIdhinterlegt wird (für die MIP-SDK-Operationen). - Für den Rechteschutz (
EnableProtection) muss zusätzlich der Connected Service_System.MIP.Protectionkonfiguriert sein. - Die Auswahl eines Labels durch den Benutzer kann eine vorgängige Anmeldung am Connected Service erfordern.
- Auf dem Server (bzw. dem System, das die MIP-Operationen ausführt) muss das Visual C++ Redistributable installiert sein, da das MIP-SDK dieses voraussetzt.
- Das System, das die MIP-Operationen ausführt, benötigt Internetzugriff auf die MIP-Dienste. Beim Einsatz eines Proxys auf dem Server ist eine zusätzliche Konfiguration nötig, siehe Netzwerkzugriff und Proxy.
Grundaufbau
Die Konfiguration erfolgt im Vorlageneditor unter Dokumentfunktionen. Die Einstellungen können entweder direkt (lokal) oder über eine Globale Konfiguration referenziert werden – eine Mischung beider Varianten ist nicht zulässig.
<MipConfiguration>
<ApplicationId>00000000-0000-0000-0000-000000000000</ApplicationId>
<EnableProtection>true</EnableProtection>
</MipConfiguration>
Konfigurationselemente
| Element | Pflicht | Beschreibung |
|---|---|---|
ApplicationId | erforderlich | Client-ID der Azure-AD-App-Registrierung, die für die MIP-SDK-Operationen verwendet wird. Bei lokaler Konfiguration muss ApplicationId gesetzt sein; wird stattdessen über GlobalMipSettings referenziert, muss der globale Eintrag die ApplicationId liefern. |
EnableProtection | optional | true, wenn Labels mit Rechteschutz (Rights Management) unterstützt werden sollen. Erfordert den Connected Service _System.MIP.Protection. |
OverrideServiceUrl | optional | Überschreibt den MIP-Service-Endpunkt (z.B. für lokale Entwicklung). |
GlobalMipSettings | optional | Referenz auf eine globale MIP-Konfiguration über das Attribut Key. Bei Verwendung werden alle Einstellungen aus dem referenzierten globalen Eintrag geladen; darf nicht mit lokalen Einstellungen kombiniert werden. |
Globale MIP-Einstellungen wiederverwenden
Wird dieselbe MIP-Konfiguration in mehreren Vorlagen benötigt, lässt sie sich als globale Konfiguration vom Typ MipGlobalSettings zentral pflegen und über GlobalMipSettings referenzieren:
<MipConfiguration>
<GlobalMipSettings Key="StandardMip" />
</MipConfiguration>
Die Auswahl der Vertraulichkeitsbezeichnung erscheint dem Benutzer als Feld im Generierungsformular. Welche Labels verfügbar sind, ergibt sich aus der MIP-/Purview-Konfiguration des Mandanten.
Serverseitige Anwendung (Dark Processing)
Vertraulichkeitsbezeichnungen werden nicht nur im Office-Client, sondern auch serverseitig bei der Dokumentgenerierung angewendet — insbesondere beim Document Creation Server (DCS) und bei der automatisierten Generierung über Connect («Dark Processing»), ohne dass ein lokales Office-Add-In beteiligt ist.
Die Anwendung erfolgt als letzter Schritt der Dokumentpipeline direkt auf dem Dokument-Bytestream. Grund: Ist Rechteschutz aktiv (EnableProtection), verschlüsselt MIP das Dokument, wodurch es kein reines Office-Open-XML mehr ist und nicht weiterverarbeitet werden kann. Unterstützt werden Word, PowerPoint und Excel.
Authentifizierung
Serverseitig stehen keine interaktiven Office-Anmeldungen zur Verfügung. Die Anmeldung läuft daher über Connected Services:
- Das OAuth-Access-Token des Benutzers wird als Connected Service serverseitig gespeichert und pro Benutzer entschlüsselt verwendet. Die Benutzeridentität wird aus dem Token (JWT) ermittelt.
- Pro Benutzer wird ein isolierter MIP-Cache verwendet (relevant für Terminalserver-/Citrix-Umgebungen).
- Ist der benötigte Connected Service nicht angemeldet, wird die Label-Auswahl blockiert (Anmelde-Hinweis). Bei aktiviertem
EnableProtectionmüssen beide Dienste (_System.MIPund_System.MIP.Protection) angemeldet sein.
Verfügbare Labels
Die verfügbaren Vertraulichkeitsbezeichnungen werden zur Laufzeit direkt aus dem MIP-Dienst gelesen (nicht aus einer lokalen Kopie):
- Hierarchische Labels werden als
Übergeordnet\Untergeordnetdargestellt. - Nur aktive Labels erscheinen.
- Labels mit Rechteschutz erscheinen nur, wenn
EnableProtectiongesetzt ist.

Die Label-Auswahl im Generierungsformular des Desktop Clients. Der Eintrag Demo Group\Demo Label in Group zeigt die Darstellung eines hierarchischen Labels.

Dieselbe Auswahl in der Web-App, hier zusätzlich mit der Beschreibung je Label.
Bei der serverseitigen Generierung werden keine visuellen Markierungen (Kopf-/Fusszeilen, Wasserzeichen) eingebrannt — es wird lediglich das Label (inkl. Rechteschutz) gesetzt. Die visuellen Markierungen werden beim Öffnen des Dokuments im Office-COM-Add-In nachgezogen (Relabeling).
Netzwerkzugriff und Proxy
Das MIP-SDK kommuniziert direkt mit den Microsoft-Cloud-Diensten (Richtlinien/Labels, Rechteschutz, Microsoft Entra ID). Deshalb braucht jedes System, das MIP-Operationen ausführt, ausgehenden HTTPS-Zugriff auf diese Dienste. Die benötigten Endpunkte sind in der Microsoft-Dokumentation aufgeführt.
Welches System das ist, hängt davon ab, wo das Dokument generiert wird:
- Desktop Client: Labels werden lokal auf dem Arbeitsplatz geladen und angewendet.
- primedocs Web, Office Web Add-Ins, DCS und Connect: Labels werden auf dem primedocs-Server geladen und angewendet.
MIP berücksichtigt die regulären Proxy-Einstellungen von primedocs (siehe Einsatz eines Proxys) nicht. Auf dem Server muss der Proxy für MIP separat konfiguriert werden, wie unten beschrieben.
Das MIP-SDK unterstützt keine Proxys mit Authentifizierung. Verlangt der Proxy eine Anmeldung, müssen die MIP-Endpunkte am Proxy von der Authentifizierung ausgenommen oder direkt (ohne Proxy) erreichbar sein.
Client
Der Desktop Client läuft im Kontext des angemeldeten Windows-Benutzers und übernimmt damit dessen Proxy-Einstellungen. Hat der Benutzer Internetzugriff (z.B. im Browser), funktioniert in der Regel auch MIP ohne zusätzliche Konfiguration — ausser der Proxy erfordert eine Authentifizierung (siehe oben).
Server
Die primedocs-Serverapplikationen laufen als Application Pool im IIS unter einem Dienstkonto (z.B. ApplicationPoolIdentity oder einem Service Account). Für dieses Konto sind typischerweise keine Proxy-Einstellungen hinterlegt, weshalb MIP-Anfragen ohne Proxy ins Leere laufen, obwohl der Rest von primedocs funktioniert. Der Proxy muss daher für WinHTTP konfiguriert werden. Dafür gibt es zwei Varianten:
Variante A (empfohlen): Maschinenweite WinHTTP-Konfiguration
In einer PowerShell mit Administratorrechten ausführen:
# Proxy setzen; lokale Adressen und interne Domänen umgehen den Proxy
netsh winhttp set proxy proxy-server="proxy.example.com:8080" bypass-list="<local>;*.example.com"
# Aktuelle Konfiguration anzeigen
netsh winhttp show proxy
Anschliessend die primedocs-Application Pools neu starten.
Die WinHTTP-Konfiguration ist maschinenweit und nicht an ein Benutzerkonto gebunden — sie muss also nicht im Namen des Application-Pool-Kontos gesetzt werden und gilt automatisch für alle Application Pools. Sie wirkt allerdings auf alle Anwendungen auf dem Server, die WinHTTP nutzen (z.B. auch Windows Update). Die bypass-list so wählen, dass interne Adressen — insbesondere die primedocs-URL selbst — nicht über den Proxy laufen. Zurücksetzen mit netsh winhttp reset proxy.
Variante B: Internet-Einstellungen des Application-Pool-Kontos
Soll die Einstellung nur für primedocs gelten, lassen sich die Internet-Einstellungen direkt im Benutzerprofil des Kontos setzen, unter dem der Application Pool läuft. WinHTTP greift als Fallback auf diese Werte zurück.
-
SID des Kontos ermitteln:
# ApplicationPoolIdentity: "IIS APPPOOL\<Poolname>", sonst z.B. "DOMAIN\svc-primedocs"$account = New-Object System.Security.Principal.NTAccount("IIS APPPOOL\primedocs-Managed")$account.Translate([System.Security.Principal.SecurityIdentifier]).Value -
Unter
HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Internet Settingsfolgende Werte setzen:Name Typ Wert ProxyEnableREG_DWORD1ProxyServerREG_SZproxy.example.com:8080ProxyOverrideREG_SZ<local>(bei Bedarf ergänzt um interne Domänen, getrennt mit;) -
Den Application Pool neu starten.
Die Werte müssen für jedes Konto gesetzt werden, unter dem ein primedocs-Application Pool mit MIP läuft. Der Zweig HKEY_USERS\<SID> existiert nur, wenn das Benutzerprofil geladen wird — im IIS muss dafür beim Application Pool «Load User Profile» auf True stehen (Standard).