primedocs.config



Die primedocs.config-Datei ist die zentrale Konfigurationsdatei für die serverseitigen primedocs Applikationen. Sie befindet sich im Installationsverzeichnis (standardmässig unter C:\inetpub\wwwroot\primedocs\primedocs.config).

Über die primedocs.config können Features aktiviert und deaktiviert werden.

Beachten Sie, dass eine falsche Konfiguration zu Fehlern führen kann und dass gewisse Features auch lizenztechnisch relevant sind! Fragen Sie hierfür unseren Support an.

 

Nachfolgend befinden sich Beispiele:


Die GUIDs, Passwörter, Secrets, URLs und ConnectionStrings sollten nicht übernommen werden.
Bei der Installation werden die GUIDs, Passwörter und Secrets automatisch zufällig erstellt.

Standard-Installation

Die Standard OnPrem-Installation setzt auf die Windows Aufthentifzierung.

<primedocs operationDbConnectionString="Data Source=your-sql-server.yourcorp.local;Initial Catalog=primedocs_Prod_Operation;User ID=primedocsuser;Password=password_here;MultipleActiveResultSets=True" databaseLoggingEnabled="false"> <datasources> <add id="9e769582-b411-43fa-b8f6-d15ea3d83dde" isPrimary="true" dbConnectionString="Data Source=your-sql-server.yourcorp.local;Initial Catalog=primedocs_Prod;User ID=primedocsuser;Password=password_here;MultipleActiveResultSets=True;Encrypt=False" name="primedocs" /> </datasources> <clients> <!-- Windows Client OIDC Settings --> <add id="710be047-475a-4991-90b3-351ea93d6908" oidcClientId="DefaultClient" oidcClientSecret="G754ePPG0SBC" userAuthType="FromLogin" /> <!-- WebApi to invoke the Connect (DCS) --> <add id="84234199-5448-4d73-8182-b5623e51e99c" basicAuth="CONNECT-USER:izieAoETHS04" mappedToPrimarySid="CONNECT-USER" /> </clients> <apps> <add id="e185dddd-2cb4-43e2-a6fe-cf4272dd3401" name="Service" url="https://your-url.local/service/" logFilePath="Service\" type="Service" /> <add id="9ef34d3a-13b5-4f06-b437-b300474beb6d" name="IdentityServer" url="https://your-url.local/ids/" logFilePath="IdS\" type="IdentityServer" /> <add id="c74a324d-7c36-4d2f-b422-f2fdad41f81e" name="HealthMonitor" url="https://your-url.local/healthmonitor/" type="HealthMonitor" /> <add id="f7199131-de81-4d40-a254-39e7db9660f0" name="DataSourceAdminApp" url="https://your-url.local/datasourceadminapp/" logFilePath="DataSourceAdminApp\" type="DataSourceAdminApp" /> <add id="279b5480-27e5-4a09-bf9f-4c10d1770c76" name="App" url="https://your-url.local/app/" logFilePath="App\" type="App" /> <add id="f25dc7b9-d989-4d03-89ff-3ee17bf7d020" name="JobHost" logFilePath="JobHost\" type="JobHost" /> <add id="1cdca9fc-780b-477e-af20-29be64bf8dae" name="Connect" url="https://your-url.local/connect/" logFilePath="Connect\" type="Connect" /> <add id="1d28ed6f-74d4-4942-b254-b287db6e1cf9" name="AddressService" url="https://your-url.local/addressservice/" logFilePath="AddressService\" type="AddressService" /> <add id="a7ee7e49-b0eb-472c-aecb-cc0ca5257342" name="WebApi" url="https://your-url.local/webapi/" logFilePath="WebApi\" type="WebApi" /> <add id="822a4c62-ed2d-4165-9bb1-eb979632c0aa" name="AdminApp" url="https://your-url.local/adminapp/" logFilePath="AdminApp\" type="AdminApp" /> </apps> <identity signingCertFilePath="cert.pfx" signingCertPassword="kWFgDhRAMgKk" introspectionSecret="1Ubp4Efp6H3G"> <providers> <winAuth authority="https://your-url.local/IdSWindowsAuth" clientId="winauth" clientSecret="winauth-L2VDmPzm7PbK" /> </providers> </identity> <service streamBufferSizeInBytes="81920"> <syncBehavior maxConcurrentClients="30" initialAverageSyncTimeInSeconds="10" timeoutInSeconds="120" /> </service> <healthMonitor basicAuth="user:YHBAe5oAwsi2" clientSecret="healthmonitor-s5iZRGCWZ7ZE" intervalInSeconds="600"/> </primedocs>

Standard-Installation mit Entra ID

Möchten Sie anstelle der Windows Authentifizierung sich über Ihre Entra ID (ehemals Azure Active Directory) anmelden, folgen Sie den Schritten unter .
Die clientId/clientSecret für die “Benutzer-Anwendung” als auch die clientId/clientSecret für den Zugriff auf die DataSourceAdminApp (Dashboard) muss in der primedocs.config hinterlegt werden:

<primedocs operationDbConnectionString="Data Source=your-sql-server.yourcorp.local;Initial Catalog=primedocs_Prod_Operation;User ID=primedocsuser;Password=password_here;MultipleActiveResultSets=True" databaseLoggingEnabled="false"> <datasources> <add id="9e769582-b411-43fa-b8f6-d15ea3d83dde" isPrimary="true" dbConnectionString="Data Source=your-sql-server.yourcorp.local;Initial Catalog=primedocs_Prod;User ID=primedocsuser;Password=password_here;MultipleActiveResultSets=True;Encrypt=False" name="primedocs" allowedForTenant="{TENANTGUID}" /> </datasources> <clients> <!-- Windows Client OIDC Settings --> <add id="710be047-475a-4991-90b3-351ea93d6908" oidcClientId="DefaultClient" oidcClientSecret="G754ePPG0SBC" userAuthType="FromLogin" /> <!-- WebApi to invoke the Connect (DCS) --> <add id="84234199-5448-4d73-8182-b5623e51e99c" basicAuth="CONNECT-USER:izieAoETHS04" mappedToPrimarySid="CONNECT-USER" /> </clients> <apps> <add id="e185dddd-2cb4-43e2-a6fe-cf4272dd3401" name="Service" url="https://your-url.local/service/" logFilePath="Service\" type="Service" /> <add id="9ef34d3a-13b5-4f06-b437-b300474beb6d" name="IdentityServer" url="https://your-url.local/ids/" logFilePath="IdS\" type="IdentityServer" /> <add id="c74a324d-7c36-4d2f-b422-f2fdad41f81e" name="HealthMonitor" url="https://your-url.local/healthmonitor/" type="HealthMonitor" /> <add id="f7199131-de81-4d40-a254-39e7db9660f0" name="DataSourceAdminApp" url="https://your-url.local/datasourceadminapp/" logFilePath="DataSourceAdminApp\" type="DataSourceAdminApp" /> <add id="279b5480-27e5-4a09-bf9f-4c10d1770c76" name="App" url="https://your-url.local/app/" logFilePath="App\" type="App" /> <add id="f25dc7b9-d989-4d03-89ff-3ee17bf7d020" name="JobHost" logFilePath="JobHost\" type="JobHost" /> <add id="1cdca9fc-780b-477e-af20-29be64bf8dae" name="Connect" url="https://your-url.local/connect/" logFilePath="Connect\" type="Connect" /> <add id="1d28ed6f-74d4-4942-b254-b287db6e1cf9" name="AddressService" url="https://your-url.local/addressservice/" logFilePath="AddressService\" type="AddressService" /> <add id="a7ee7e49-b0eb-472c-aecb-cc0ca5257342" name="WebApi" url="https://your-url.local/webapi/" logFilePath="WebApi\" type="WebApi" /> <add id="822a4c62-ed2d-4165-9bb1-eb979632c0aa" name="AdminApp" url="https://your-url.local/adminapp/" logFilePath="AdminApp\" type="AdminApp" /> </apps> <identity signingCertFilePath="cert.pfx" signingCertPassword="kWFgDhRAMgKk" introspectionSecret="1Ubp4Efp6H3G"> <providers> <office365Auth authority=" https://login.microsoftonline.com/{TENANTGUID}" clientId="{CLIENTID}" clientSecret="{CLIENTSECRET}" microsoftAppDelegateScopes="email openid profile User.Read offline_access" /> <!-- AzureAD App for authentication instead of hardcoded admins --> <dataSourceAdminAppAuth clientId="{CLIENTID-DATASOURCEADMINAPP}" clientSecret="{CLIENTSECRET-DATASOURCEADMINAPP}" authority=" https://login.microsoftonline.com/{TENANTGUID}" microsoftAppDelegateScopes="email openid profile offline_access" /> </providers> </identity> <service streamBufferSizeInBytes="81920"> <syncBehavior maxConcurrentClients="30" initialAverageSyncTimeInSeconds="10" timeoutInSeconds="120" /> </service> <healthMonitor basicAuth="user:YHBAe5oAwsi2" clientSecret="healthmonitor-s5iZRGCWZ7ZE" intervalInSeconds="600"/> </primedocs>

Beachten Sie, dass die {TENANTGUID} durch die Id vom Entra ID auszutauschen.

Entra Id - Authority: Tenant vs. Common-Endpoint

Über die Konfiguration <office365Auth authority="https://login.microsoftonline.com/{TENANTGUID}" ... /> zeigt die primedocs Instanz auf den Entra Id Tenant. Alle Benutzer und Gruppen in diesem Entra ID Mandant sind dann nutzbar inkl. Gast-Benutzer.


Without-IdS-Variante

<primedocs> <datasources> <add id="26735c39-3d6e-44c6-b701-f5ab6cc429fd" isPrimary="true" dbConnectionString="Data Source=your-sql-server.yourcorp.local;Initial Catalog=primedocs_Prod;User ID=primedocsuser;Password=password_here;MultipleActiveResultSets=True;Encrypt=False" name="primedocs" /> </datasources> <apps> <add id="7e132bcb-b088-4cb2-b717-30174884b8f4" name="Service" url="https://your-url.local/service/" logFilePath="Service\" type="Service" /> <add id="60e0654e-9e62-4df2-8b24-4d00f2677cfa" name="HealthMonitor" url="https://your-url.local/healthmonitor/" type="HealthMonitor" /> <add id="80e85dff-e533-42df-b8f3-930598d9b955" name="JobHost" logFilePath="JobHost\" type="JobHost" /> <add id="f7199131-de81-4d40-a254-39e7db9660f0" name="DataSourceAdminApp" url="https://your-url.local/datasourceadminapp/" logFilePath="DataSourceAdminApp\" type="DataSourceAdminApp" /> <add id="c5667157-6cce-4da6-93ce-464b68947349" name="Connect" url="https://your-url.local/connect/" logFilePath="Connect\" type="Connect" /> <add id="7ee9d094-e728-4e36-91ea-8fb64aa6b765" name="AddressService" url="https://your-url.local/addressservice/" logFilePath="AddressService\" type="AddressService" /> </apps> <service streamBufferSizeInBytes="81920"> <syncBehavior maxConcurrentClients="30" initialAverageSyncTimeInSeconds="10" timeoutInSeconds="120" /> </service> <healthMonitor basicAuth="user:iPvKHKDmvlwP" clientSecret="healthmonitor-k9VBA5TXke9P" intervalInSeconds="600"/> </primedocs>

Datenquellen (“datasources”)

In den “Datenquellen” (datasources) werden alle Daten von primedocs gespeichert. In den meisten Fällen enthält eine primedocs Instanz eine Datenquelle, welche als isPrimary markiert ist.
Es gibt die Möglichkeit mehrere Datenquellen zu hinterlegen, sodass z.B. Produktiv- und Testsysteme auf einer Instanz hinterlegt werden können oder das es für verschiedene Abteilungen verschiedene Datenquellen gibt.

Beispiel mehrerer Datenquellen für Produktiv- und Testsystem mit Windows Authentifizierung:

“Multitenancy”-Modus

In der Standardeinstellung, sind alle Datenbanken für jeden Benutzer der primedocs Instanz sichtbar. Möchte man allerdings Datenbanken nur für bestimmte Benutzergruppen freigeben kann man dies über das Attribut allowedForGroups="..." steuern.
Hierbei ist es wichtig, dass keine Datenquelle mehr mit isPrimary="true" konfiguriert ist. Die “primäre Datenquelle” ist dann jeweils die erste Datenquelle, welche für den Benutzer in Frage kommt.

Über das Attribut allowedForGroups können kommasepariert (x,y) Gruppen SIDs bzw. Entra ID Group Ids angegeben werden. Zusätzlich kann ein * als Wildcard hinzugefügt werden.

Beispiel mit Windows Authentifizierung:

Alle sehen die Produktivdatenquelle, aber nur Benutzer in der Gruppe mit der SID S-1-5-21-2445566778-2513070483-412345678-11111 und S-1-5-21-2445566778-2513070483-412345678-22222 sehen die Testdatenquelle

Beispiel mit Entra ID:

Ähnliches Szenario, aber allowedForTenant muss angegeben sein und die Gruppen IDs entsprechen den Object Ids aus dem Entra Id.

Für diese Konfiguration muss in der der groups-Claim zusätzlich konfiguriert werden:

 

image-20240514-202839.png

 


cert.pfx

Das in der primedocs.config angegebene cert.pfx dient der Signierung der Authentifizierungstokens und hat keinen Bezug zu TLS/SSL Zertifikaten.

Generiert wird das Zertifikat während der Installation. Grundsätzlich wird hierbei das Zertifikat mit diesen Parametern generiert:


Admin API

Über die können Drittsysteme auf die APIs von primedocs zugreifen. Hierfür ist eine folgende Registrierung in der primedocs.config notwendig:


Connect API

Über die können Drittsysteme serverseitig die Dokumentgenerierung von primedocs nutzen. Hierfür ist eine folgende Registrierung in der primedocs.config notwendig:


Teams / Office / Outlook Integration

Die Integration in Teams sowie die Unterstützung der neuen Office.js-basierten AddIns in Office (Word/PowerPoint/Excel) sowie Outlook muss über die primedocs.config aktiviert werden.

Als id kann jede beliebige GUID verwendet werden.

Der namePrefix kann genutzt werden, wenn es mehrere Umgebungen gibt. Die AddIns sind dann in der Form {namePrefix} primedocs benannt.

Im Anschluss kann das Manifest für das Deployment über diese URLs bezogen werden:

Produkt

Manifest URL

Installationsanleitung

Produkt

Manifest URL

Installationsanleitung

Teams

https://your-url.local/app/api/manifest/teams

Office

https://your-url.local/app/api/manifest/officeaddin

Outlook

https://your-url.local/app/api/manifest/outlookaddin

Das Manifest kann dann über die Teams bzw. Office Administration verteilt werden.

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland