Einleitung
Der CMI Docintegration TemplateManager ist eine zentrale Komponente für den Austausch von Microsoft Office-Dokumenten zwischen externen Vorlagenanbietern, wie dem [officeatwork-TemplateChooser] und dem [primedocs-TemplateChooser], und der CMI-Lösungsplattform. Der Service fungiert als temporäre Dokumentenablage, während die vollständige Dokumentenverarbeitung vorbereitet wird. Dabei ist er sowohl stateless als auch skalierbar, um eine effiziente und flexible Verarbeitung zu gewährleisten. Mit seiner Multiinstanz- und Mehrmandantenfähigkeit kann er in verschiedenen Umgebungen und für unterschiedliche Nutzergruppen gleichzeitig eingesetzt werden.
Hauptmerkmale
- Stateless und Skalierbar: Der Service ist stateless und unterstützt Multiinstanzen, was eine flexible Nutzung ermöglicht.
- Temporäre Dokumentenablage: Dient als Zwischenspeicher für Dokumente während der Integration, verwendet von [officeatwork-TemplateChooser] und [primedocs-TemplateChooser].
- Mehrmandantenfähig und Proxyfähig: Kann für mehrere Mandanten verwendet werden und unterstützt Proxy-Konfigurationen.
- Laufzeitverhalten: Der Service läuft dauerhaft, um eine kontinuierliche Verfügbarkeit zu gewährleisten.
Installation & Konfiguration
- Installation
- Konfiguration Server
- On-Behalf-Of-Grant (OBO) Authentifizierungs-Flow
- Konfiguration Azure AD
Aufbau
Die Komponente erfüllt folgende Eigenschaften:
- Stateless: ja
- Skalierbar/Multiinstanzfähig: ja
- Mehrmandantenfähig: ja
- Proxyfähig: ja
- Laufzeitverhalten: durchgehen laufender Service
Technologiestack
Folgende Technologien werden eingesetzt: * ASP.NET Core 6
Übersicht Oaw
Nachfolgend wird die Interaktion des Docintegration-Service mit allen anderen Komponenten dargestellt.
Prinzipschema
Sequenzdiagramm
sequenceDiagram
Title: Docintegration Sequence Diagram
Client->>STS3: Authorize (PKCE)
STS3-->>Client: return token
Client->>Azure: Log-in to Azure and get token
Azure-->>Client: return user-token
Client->>TemplateChooser: Start der Dokumentenintegration (Auth. Azure Bearer)
TemplateChooser-->>Client: return Templates
Client->>TemplateChooser: Select Template
TemplateChooser->>Docintegration: Upload Template (Auth. Azure Bearer)
Docintegration->>STS3: Get CMI Token from Azure Token (OBO)
STS3->>Azure: Get OIDC Metadata
Azure-->>STS3: return OIDC Metadata
STS3-->>Docintegration: Return CMI Bearer Token with Scope templateManager
Client->>CMI-Server: Start der Dokumentenitegration (Auth. CMI Bearer)
CMI-Server->>STS3: Get CMI Token (Delegation)
STS3-->>CMI-Server: Return CMI Bearer Token with Scope templateManager and Metatool
CMI-Server->>Docintegration: Download Document (Auth. CMI Bearer)
Ablauf
- Anmeldung im CmiClient ( WindowsClient oder WebClient) mit dem gewünschten Benutzer.
Dies passiert im STS3 im Regelfall mit dem code grant PKCE - Start der Erstellungsstrategie Neues officeatwork Dokument
- Anmeldung im ActiveDirectory für den TemplateChooser, falls noch nicht bereits in 1. passiert
- Auswahl des Templates
- Der TemplateManager schickt das (Word-)Dokument zum CMI DocIntegration TemplateManager
- Der DocIntegration TemplateManager tauscht das im Upload Request enthaltene Bearer-Token mittels On-Behalf-Of gegen ein
gültiges STS Token aus und validiert dieses, bevor der Upload des (Word-)Dokuments freigegeben wird. - Die restlichen Schritte des Wizards werden ausgeführt
- Der CMI Server melden sich über den delegation Grant an, um das in 4. hochgeladene Dokument zu erhalten
- Download des erstellten Dokuments
- Optionale weitere Schritte werden im Wizard auf Basis des (Word-)Dokuments erfordert
- Das (Word-)Dokument wird im CMI Dokument gespeichert
Übersicht Primedocs
Unten stehend ist einer sehr simple Übersicht der Kommunikation zwischen den beteiligten Komponenten,
Ablauf
- Anmeldung im CmiClient ( WindowsClient oder WebClient) mit dem gewünschten Benutzer.
Dies passiert im STS3 im Regelfall mit dem code grant PKCE - Start der Erstellungsstrategie Neues primedocs Dokument
- Anmeldung im primedocs TemplateChooser
- Auswahl des Templates
- Der primedocs Server authorisiert sich mittels Client-Credentials für den Upload des Worddokuments zum CMI DocIntegration TemplateManager
- Das (Word-)Dokument wird zur API hochgeladen
- Die restlichen Schritte des Wizards werden ausgeführt
- Der CMI Server melden sich über den delegation Grant an, um das in 4. hochgeladene Dokument zu erhalten
- Download des erstellten Dokuments
- Optionale weitere Schritte werden im Wizard auf Basis des (Word-)Dokuments erfordert
- Das (Word-)Dokument wird im CMI Dokument gespeichert
Entwicklerhinweise
Da der TemplateChooser nicht selbst gehostet werden kann wird ein gültige, aus dem Internet erreichbare Konfiguration während der Entwicklung benötigt. Hier kann mit Einschränkungen der ThinkTecture-RelayServer genutzt werden.