Technik:CoPlanner-Server
Der Ordner CoPlanner-Server muss auf jenem Rechner vorhanden sein, welcher als Server fungieren soll. Dieser enthält einige Konfigurationsdateien, welche Variablen, die Verbindung zu Clients, uvm. definieren. Diese müssen sorgfältig konfiguriert werden.
SysCommands.xml
Diese Datei ist im Serververzeichnis zu finden. Sie beinhaltet Informationen für CoPlanner Systemeinstellungen. Zu beachten ist hierbei nur, in welcher Sprache der SQL-Server installiert ist. Handelt es sich um ein deutsches Setup, so müssen Sie als Anwender nicht eingreifen. Handelt es sich um ein englisches Setup, muss die Datei „SysCommands.xml“ gelöscht oder umbenannt und danach die Datei „SysCommands_EnSql.xml“, welche ebenfalls im Serververzeichnis liegt, in „SysCommands.xml“ umbenannt werden.
SvrConfig.xml
Diese Datei definiert Eigenschafen des CoPlanner-Servers. Sie befindet sich im Serververzeichnis.
<?xml version= "1.0" standalone="yes"?>
<SvrConfig.xml>
<CopSettings>
<Version>4</Version>
<ConnectionString>Server=CopServer;Initial Catalog=COP_BIKE;Integrated Security=SSPI;pooling=false</ConnectionString>
<DataBaseName>COP_BIKE</DataBaseName>
<FiscalYear>0</FiscalYear>
<ServiceName>copService</ServiceName>
<TelnetDebugPort>6900</TelnetDebugPort>
<DefaultLanguage>german</DefaultLanguage>
<BackupPath>C:\temp\</BackupPath>
<BackupRestoreLimitinMB>50</BackupRestoreLimitinMB>
<WebAuthenticateUrl>http://copsupport.coplanner.com/licence/get_cop_lic_v3.php</WebAuthenticateUrl>
<LicenceID>123</LicenceID>
<ClientConnectionTimeOut>1440</ClientConnectionTimeOut>
<EntitySecurity>true</EntitySecurity>
<AllowNonPowerUserDeleteDimElementsWithData>false</AllowNonPowerUserDeleteDimElementsWithData>
<MultiThreadCommand>true</MultiThreadCommand>
<ProActiveCaching>true</ProActiveCaching>
<SkipImportHistory>true</SkipImportHistory>
<SecurityProxyLoad>false</SecurityProxyLoad>
<CopSysIDStartOffset>0</CopSysIDStartOffset>
<DebugMode>false</DebugMode>
<StoredProcedureTimeout>3600</StoredProcedureTimeout>
<ShowLostDBConnectionWaruning>true</ShowLostDBConnectionWaruning>
<IISUserName></IISUserName>
<TransportUserName></TransportUserName>
<PowerUserModeViaADOnly>false</PowerUserModeViaADOnly>
<ADGroupPowerUser></ADGroupPowerUser>
<ADGroupPartnerUser></ADGroupPartnerUser>
<ADGroupManufacturerUser></ADGroupManufacturerUser>
<LoadAllEntityDimensionEntriesToClient>false</LoadAllEntityDimensionEntriesToClient>
<FormulasUsePriorityQueue>false</FormulasUsePriorityQueue>
<ReportServerUrl>https://servername:4445/coplanner/reporting</ReportServerUrl>
<DoVersionCheck>true</DoVersionCheck>
<UseNewDBSync>true</UseNewDBSync>
<DBSyncMaxThreads>10</DBSyncMaxThreads>
<DBCommandTimeout>600</DBCommandTimeout>
<UseNewCaching>false</UseNewCaching>
<CacheSizeFactor>0,5</CacheSizeFactor>
<StartTabAdress></StartTabAdress>
<LogonMaximumPerTimeframe>100</LogonMaximumPerTimeframe>
<LogonMaximumTimeframeInSeconds>60</LogonMaximumTimeframeInSeconds>
<SupportColumnTable>false</SupportColumnTable>
<AllowBatchProcessingViaMacro>false</AllowBatchProcessingViaMacro>
</CopSettings>
<SSASSettings>
<Server>CopServer</Server>
<DataBaseName>cop_olap</DataBaseName>
<XmlaLoadActive>true</XmlaLoadActive>
<UseRealElementIDs>true</UseRealElementIDs>
<UseMultipleHierarchies>true</UseMultipleHierarchies>
<MultiSelectFilterActive>false</MultiSelectFilterActive>
<LoadMeasureFormatAndType>true</LoadMeasureFormatAndType>
<ReplaceNullValues>false</ReplaceNullValues>
<DimensionLoadMode>AsDimAndHierarchy</DimensionLoadMode>
<LoadDimensionsByAlias>true</LoadDimensionsByAlias>
</SSASSettings>
<SSRSSettings>
<ReportServerUrl>http://CopServer/reportserver</ReportServerUrl>
<ReportWebServiceUrl>http://CopServer/reportserver/reportservice2005.asmx</ReportWebServiceUrl>
<RootFolder>/CoPlanner/Reports</RootFolder>
<UserFolder>/CoPlanner/User</UserFolder>
<TempFolder>/CoPlanner/Temp</TempFolder>
<SharedDataSourceReference>/CoPlanner/DataSources/CoPlanner</SharedDataSourceReference>
<Parameters></Parameters>
</SSRSSettings>
<DBCon>
<Stage>Server=CopServer;Initial Catalog=COP_STAGE;Integrated Security=SSPI</Stage>
</DBCon>
<SupportConfig>
<SupportButton>True</SupportButton>
<SendAsMail>True</SendAsMail>
<EmailToSendTo>support@coplanner.com</EmailToSendTo>
<IncludeSvrCommands>True</IncludeSvrCommands>
<IncludeNavigation>True</IncludeNavigation>
<IncludeSystemInfo>True</IncludeSystemInfo>
<IncludeCPU>True</IncludeCPU>
<IncludeMemory>True</IncludeMemory>
<IncludeGraphics>True</IncludeGraphics>
<IncludeScreenShot>True</IncludeScreenShot>
<SendAsPost>True</SendAsPost>
<DestUrlPost>http://copsupport.coplanner.com/coplanner/support/supportExtended.php</DestUrlPost>
<SendAsGet>True</SendAsGet>
<DestUrlGet>http://copsupport.coplanner.com/coplanner/support/{Culture}/support.php?UserInput={UserInput}&Version={Version}&ServerCommands={ServerCommands}&Navigation={Navigation}&SysInfo={SysInfo}&CPU={CPU}&Memory={Memory}&Graphics={Graphics}</DestUrlGet>
<MaxNumbersOfServerLogLines>10</MaxNumbersOfServerLogLines>
</SupportConfig>
<WebConfig>
<WebAppUrl>https://+:4443/coplanner</WebAppUrl>
<LogonLanguages>Deutsch|English</LogonLanguages>
<LogonWithCoPlannerSecurity>True</LogonWithCoPlannerSecurity>
<LogonWithSSPI>True</LogonWithSSPI>
<CorsAllowedOrigins>https://servername:4443</CorsAllowedOrigins>
<EnableSwagger>False</EnableSwagger>
<EnableCommandEndpoints>True</EnableCommandEndpoints>
<EnableExperimentalEndpoints>True</EnableExperimentalEndpoints>
<EnableMssEndpoints>False</EnableMssEndpoints>
<EnableAuthWithSessionId>True</EnableAuthWithSessionId>
<EnableHttpsRedirection>False</EnableHttpsRedirection>
<HttpsRedirectionPort></HttpsRedirectionPort>
<EnableHSTS>False</EnableHSTS>
<StartUrl></StartUrl>
<EnableResponseCompression>true</EnableResponseCompression>
</WebConfig>
<OlapServiceSettings>
<OlapServiceUrl></OlapServiceUrl>
</OlapServiceSettings>
</SvrConfig.xml>
CopSettings
Folgende Punkte müssen im Bereich CopSettings definiert werden:
| Eintrag | Beschreibung | ||||||||||
| ConnectionString |
| ||||||||||
| DataBaseName | Name der SQL-Datenbank | ||||||||||
| PortNumber | Bis CoP 10 HF 1.2: Freigegebene und nicht verwendete Portnummer für die Kommunikation des CoPlanner-Servers mit den CoPlanner-Clients. | ||||||||||
| FiscalYear | Legt die Versetzung des Wirtschaftsjahres des Unternehmens zum Kalenderjahr fest. Dabei wird ausgehend vom Monat Jänner gerechnet.
| ||||||||||
| TcpFormatter | Bis CoP 10 HF 1.2: Legt den Übertragungsmodus zwischen Client und Server fest. Möglich ist die Auswahl zwischen "Bin" für binäre Übertragung, "Text" für Textübertragung und "Native" für native Übertragung mit höchster Komprimierung.
| ||||||||||
| ServiceName | Name des CopService | ||||||||||
| TelnetDebugPort | Es ist möglich, mittels Telnet ein Sichtfenster zum CoPlanner-Server aufzubauen. Dieser Eintrag legt die Portnummer für die Telnetverbindung fest. Die Verbindung erfolgt durch die DOS-Eingabeaufforderung (Start | ||||||||||
| DefaultLanguage | Die Defaultsprache des CoPlanner Servers. | ||||||||||
| BackupPath | Legt den temporären Speicherplatz für ein Datenbankbackup, welches durch einen Client veranlasst werden kann, fest. Der SQL-Server muss Schreibrechte auf das angegebene Verzeichnis haben. Es darf kein Netzlaufwerk sein, sondern auf ein lokales Volume des SQL-Servers verweisen. | ||||||||||
| BackupRestoreLimitinMB | Maximale Größe des Datenbankbackup in MB. | ||||||||||
| WebAuthenticateUrl | Link zur Überprüfung der CoPlanner Lizenz. | ||||||||||
| LicenceID | Wird zwingend für den Start des CoPlanner Servers benötigt. (ID der Lizenz bspw. 123) | ||||||||||
| SSPIPort | Bis CoP 10 HF 1.2: Port für die SSPI-Login Kommunikation zwischen CoPlanner Client und CoPlanner Server. Darf von der Firewall nicht geblockt werden. | ||||||||||
| ClientConnectionTimeOut | Nach Ablauf wird die Client-Session am Server gelöscht. Angabe in Minuten. Default-Wert 1.440 Minuten. | ||||||||||
| EntitySecurity | Durch diesen Eintrag kann man die Unternehmenssecurity deaktivieren, dass heißt der User kann nicht unternehmensübergreifend Werte erfassen. Ist der Eintrag nicht im Config File vorhanden, ist die Security per default aktiv. | ||||||||||
| AllowNonPowerUserDeleteDimElementsWithData | Legt fest, ob nicht Poweruser Elemente mit Daten löschen dürfen. | ||||||||||
| SSPIServicePrincipalName | Bis CoP 10 HF 1.2: Service Principal Name: Kann per default leer bleiben. Wird nur bei SSPI in Verbindung mit Double Hop benötigt Bspw.: "cop/mycomputer.mydomain.com" | ||||||||||
| EventLogEntryLevel | Bis CoP 10 HF 2.0: Steuert, welche Einträge ins Ereignisprotokoll geschrieben werden, unterschieden wird nach Schweregrad des Fehlers.
| ||||||||||
| ServerLogPath | Bis CoP 10 HF 2.0 (danach Konfiguration über NLog.Server.config bzw. NLog.Service.config): Pfad und Verzeichnis um Logfiles zu speichern. Ist der Eintrag nicht vorhanden bzw. die Value leer, wird das CoPlanner Serververzeichnis für die Ablage der Datei "Serverlog.txt" verwendet. Ist ein gültiges Verzeichnis eingetragen, erfolgt die Anlage der Datei "Serverlog.txt" in dem definierten Verzeichnis. Ist der Pfad ungültig, wird dies am Server beim Start ausgegeben, das Schreiben in die Log Datei wird deaktiviert. Lautet der Eintrag "NoLog", wird das Schreiben bzw. Erstellen der Log-Datei ebenfalls deaktiviert. Der User unter dem der CoPlanner Dienst läuft muss entsprechende Schreiberechte besitzen. | ||||||||||
| IsAliveClientTypes | Bis CoP 10 HF 1.2 (ab CoP 10 HF 1.2 automatisch für alle Typen aktiv): Client Typen die hier eingetragen werden senden alle 30 Sekunden AliveCommands an den Server um diesen mitzuteilen, dass die Session noch aktiv ist. Erhält der Server 3 Minuten keinen AliveCommand vom Client, wird die Session für 15 Minuten on Hold gesetzt. Sind die 15 Minuten abgelaufen und der Client hat sich nicht mehr gemeldet, wird die Session gelöscht. Folgende Client Typen sind zulässig: Excel, Windows, Web, PowerPoint und Word. Die Typen können mit Pipe getrennt angegeben werden (z.B.: Windows|Excel). Es wird empfohlen die Clienttypen anzugeben. | ||||||||||
| MultiThreadCommand | Legt fest, ob die Abarbeitung in mehreren Threads durchgeführt wird. | ||||||||||
| ProActiveCaching | Bei CoPlanner Würfeln wird ein Tupel Caching aktiviert. Dies hat zur Folge, das mehrmals verwendete Zwischenergebnisse zwischengespeichert werden und somit eine Performanceverbesserung erreicht wird. | ||||||||||
| SkipImportHistory | Ist dieser Eintrag auf true, werden Fehlermeldungen beim Datenimport nicht in die History-Tabelle geschrieben. | ||||||||||
| SecurityProxyLoad | Ist dieser Eintrag auf true, wird die Security erst beim LogIn für den User aufbereitet. | ||||||||||
| NTLogonTypes | Bis CoP 10 HF 1.4: Die bei dieser Eigenschaft aufgelisteten NT Logon Typen werden bei der NT Authentifizierung durch einen Client verwendet. Folgende Typen stehen zur Verfügung: INTERACTIVE, NETWORK, BATCH | ||||||||||
| CopSysIDStartOffset | Die erste vom System vergebene CopSysID wird um diesen Offset erhöht. Werden mehrere Modell mit unterschiedlichen CopServices verwendet, werden so doppelte CopSysIDs vermieden. | ||||||||||
| DynamicMode | Dynamisches Nachladen für das Modell aktivieren. | ||||||||||
| MaxSvrLogFileSize | Bis CoP 10 HF 2.0 (danach Konfiguration über NLog.Server.config bzw. NLog.Service.config): Die maximiale Größe welche die Serverlog-Files erreichen können. Wird diese Größe überschritten, wird diese Datei komprimiert und in ein Archiv-Verzeichnis verschoben. Null bedeutet keine Komprimierung. Die Konfiguration erfolgt in KB. | ||||||||||
| DebugMode | Ist dieser Eintrag auf true wird am Server detailierter gelogged. | ||||||||||
| SSPITimeOut | Bis CoP 10 HF 1.2: Definiert das TimeOut für die SSPI-Login Kommunikation zwischen Active Directory und CoPlanner Server. | ||||||||||
| SSPITimeToKeepReservedPorts | Bis CoP 10 HF 1.2: Dieser Zeitraum in Sekunden gibt an, wie lange der Server einen Port mindestens reserviert lassen soll. Die Reservierung des Ports für den User erfolgt bei Klick auf Logon. | ||||||||||
| StoredProcedureTimeout | Optionale Angabe eines Timeouts in Sekunden ehe die Ausführung einer SQL Prozedur im CoPlanner abgebrochen wird. Per default ist diese auf 3600 Sekunden gesetzt. | ||||||||||
| ShowLostDBConnectionWarning | Ist dieser Eintrag auf True wird am Client angezeigt wenn die Verbindung zur Datenbank verloren gegangen ist. | ||||||||||
| IISUserName | Dieser Eintrag ist notwendig, um via SSPI auf den Webclient zugreifen zu können. Der IISUserName ist die Identität des Anwendungspools. Ein Beispiel wäre: IIS APPPOOL\.NET v2.0. | ||||||||||
| TransportUserName | Relevant für das automatisierte Transportwesen. Bitte beachten Sie, dass der hier vergebene User immer Herstellerrechte hat, auch wenn er sich normal über den Client anmeldet. Es muss sich hier um einen vollqualifizierten Windows Domänenuser handeln. | ||||||||||
| PowerUserModeViaADOnly | Definiert, ob man in den unten definierten AD Gruppen sein muss, um sich als Hersteller, Partner oder PowerUser anmelden zu können. | ||||||||||
| ADGroupPowerUser | Definiert die AD Gruppe für den Zugriff als PowerUser. | ||||||||||
| ADGroupPartnerUser | Definiert die AD Gruppe für den Zugriff als Partner. | ||||||||||
| ADGroupManufacturerUser | Definiert die AD Gruppe für den Zugriff als Hersteller. | ||||||||||
| LoadAllEntityDimensionEntriesToClient | Definiert, ob die Filterung der Elemente bei Mandantendimensionen erst am Client stattfindet oder schon am Server. False bedeutet, dass die Filterung am Server stattfindet. | ||||||||||
| FormulasUsePriorityQueue | Wenn auf true werden die Formeln nach der im Modell vergebenen Priorität abgearbeitet. Sollte nur bei Projekten verwendet werden, die auch eine vergebene Priorität haben. Siehe: Exkurs FormulasUsePriorityQueue | ||||||||||
| DoVersionCheck | Gibt an, ob bei Anmeldungen von den Clients geprüft werden soll, ob die Version und Hotfixnummer übereinstimmt. | ||||||||||
| UseNewDBSync | Gibt an, ob der neue DB Sync verwendet wird. True heißt, dass der neue DB Sync aktiv ist. | ||||||||||
| DBSyncMaxThreads | Gibt an, wie viele Threads zum Schreiben in die Datenbank verwendet werden, wenn der neue DB Sync aktiv ist. Wird kein Wert eingetragen, werden max. 2 Threads verwendet. Maximal wird der standardmäßig ermittelte Wert für die CPU (=Anzahl Cores – minus heuristischer Reduktion bei mehreren Cores) hergenommen, auch, wenn hier ein höherer Wert angegeben wäre. Ist hier ein niedrigerer Wert angegeben, wird der niedrigere Wert verwendet. Ist die Last beim Schreiben auf die Datenbank zu hoch, dann sollte dieser Wert reduziert werden. | ||||||||||
| SSLCertificate | Bis CoP 10 HF 1.2: Leer, wenn die Daten zwischen dem CoPlanner Server und den Clients unverschlüsselt übertragen werden. Will man eine verschlüsselte Übertragung muss hier der Fingerabdruck des Zertifikats eingetragen werden und bei den Clients in der ClientConfig.xml der SSLCommonName auf den Antragesteller (CN) des Zertifikats gesetzt werden. Weitere Informationen dazu sind hier zu finden. | ||||||||||
| DBCommandTimeout | Datenbank-Kommando-Timeout für bestimmte Befehle. Dieses Timeout zieht z.B. bei der Datenbringung von Importen. Früher gab es hier ein hard-codiertes Timeout von 10 Minuten, wo der SQL Server die Daten für den Import bereitstellen muss. Nun kann man dieses Timeout hier setzen. 600 entspricht den 10 Minuten. | ||||||||||
| UseNewCaching | Gibt an, ob das neue Caching aktiviert werden soll. | ||||||||||
| CacheSizeFaktor | Nur Auswirkung bei UseNewCaching=true. Beim neuen Caching werden Daten, die in Masken angezeigt werden, in einem spaltenorientierten Cache abgelegt. Damit der Speicherverbrauch durch das neue Caching nicht zu groß wird, wird die Anzahl der Daten, die in spatenorientierten Caches abgelegt werden darf, begrenzt. Mit dem CacheSizeFactor wird diese Grenze grob in Relation zu den in den CoPlanner-Tabellen vorhandenen Daten festgelegt – ein Cache Faktor von 0,5 gibt an, dass der Cache in etwa halb so viele Daten halten darf wie in den CoPlanner-Tabellen vorhanden sind. | ||||||||||
| StartTabAdress | Wenn diese Eigenschaft leer ist, wird wie bisher die Start.html als Startseite geladen. Man kann hier aber auch z.B. die Tiles als Startseite anzeigen lassen. Bsp.: @Session_WebAppUrl@/tiles/?menu=MeineStartseite&SessionID=@Session_ID@) | ||||||||||
| LogonMaximumPerTimeframe | Maximale Anzahl von Loginversuchen pro Sekunden, welche bei LogonMaximumTimeframeInSeconds angegeben wurden. Wurde also z.B. LogonMaximumPerTimeframe auf 100 gesetzt und LogonMaximumTimeframeInSeconds auf 60, dann werden in 60 Sekunden 100 Loginversuche zugelassen. 0 steht für kein Limit. | ||||||||||
| LogonMaximumTimeframeInSeconds | Anzahl von Sekunden in denen maximal so viele Logins, wie bei LogonMaximumPerTimeframe versucht werden können. Wurde also z.B. LogonMaximumPerTimeframe auf 100 gesetzt und LogonMaximumTimeframeInSeconds auf 60, dann werden in 60 Sekunden 100 Loginversuche zugelassen. 0 steht für kein Limit. | ||||||||||
| SupportColumnTable | Ab CoP 10 HF 2.8: Derzeit eine Betavariante, die ohne Abstimmung nicht aktiviert werden sollte. Um die ColumnTable nutzen zu können müssen auch UseNewCaching und ForumulasUsePriorityQueue aktiviert sein. | ||||||||||
| AllowBatchProcessingViaMacro | Ab CoP 10 HF 2.8: Wenn diese Option aktiviert wird, kann man Batchdateien, die im Serververzeichnis in dem Scripts-Ordner liegen, aus einem Makro aufrufen. Diese Option ist per Default deaktiviert und sollte dies aus security-technischen Gründen auch bleiben. | ||||||||||
| DaysToKeepSysLogSession | Ab CoP 10 HF 3.3: Beim Serverstart werden Einträge der Sys_Log_Session Tabelle gelöscht. Mit diesem Parameter kann angegeben werden, wieviele Tage erhalten bleiben sollen. |
SSASSettings
Folgende Punkte müssen im Bereich SSASSettings definiert werden:
| Eintrag | Beschreibung |
| Server | Name des Servers, auf dem sich die OLAP-Datenbank befindet. Es muss der Name des Server bzw. die IP Adresse angegeben werden. Folgende Namen sind nicht zulässig: localhost, ., 127.0.0.1 und local. |
| DataBaseName | Name der OLAP-Datenbank |
| XmlaLoadActive | Ist dieser Eintrag auf true, werden Strukturdaten mittels XMLA geladen |
| UseRealElementIDs | Die echten OLAP-Keys werden verwendet unter der Voraussetzung, dass diese numerisch sind. |
| UseMultipleHierarchies | Ist dieser Eintrag auf true, werden Alternativhierarchien von Olap Dimensionen geladen und können verwendet werden (ab SSAS 2005). |
| MultiSelectFilterActive | Ist dieser Eintrag auf true, werden Dimensionen, die als Filter verwendet werden, mit Mehrfachauswahl (Multiselect) unterstützt. (Derzeit bis 9.3 werden keine MultiselectFilter für CoPlanner Dimensionen unterstüzt.) |
| LoadMeasureFormatAndType | Ist dieser Eintrag auf true, werden Measureformat und Typ vom Olap Server pro Measure geladen. Bei false werden Measures immer als Text geladen und die Formatted Value verwendet (Achtung bei Culturevermischungen) (ab SSAS 2005). |
| ReplaceNullValues | Ist dieser Eintrag auf true, werden Null Values vom Connector mit 0 ersetzt. |
| DimensionLoadMode | Betrifft das Ladeverhalten von OLAP Dimensionen. Folgende Einträge sind zulässig: AsDimension (Defaultwert), AsDimHierarchy und AsDimAndHierarchy. Siehe: Exkurs SSAS Einstellungen |
| LoadDimensionsByAlias | Diese Einstellung zieht wenn einem OLAP Cube eine Dimension mehrfach, mit unterschiedlichen Bezeichnungen, zugeordnet ist. Ist der Eintrag auf False gesetzt so wird die erste gefundene Dimension geladen, ist der Eintrag auf True gesetzt so werden alle Dimensionen geladen. Siehe: Exkurs SSAS Einstellungen |
| Wichtig Werden die SSAS Einstellungen LoadDimensionByAlias bzw. DimensionLoadMode im Nachhinein geändert so müssen sämtliche Cubes die auf OLAP verweisen neu aufgebaut werden. |
SSRSSettings
Folgende Punkte müssen im Bereich SSRSSettings definiert werden:
| Eintrag | Beschreibung |
| ReportServerUrl | Das virtuelle Verzeichnis für den Berichtsserver. |
| ReportWebServiceUrl | Der SOAP-Endpunkt für die Berichtsverwaltung. |
| RootFolder | Das Basisverzeichnis für die Berichte am Berichtsserver. |
| UserFolder | Das Verzeichnis für Berichte, die im BI-Center mit dem Berichtsassistenten erstellt werden. Fehlt die Angabe, wird das Basisverzeichnis verwendet. |
| TempFolder | Das Verzeichnis für Berichte, die im Analyzer mit dem Berichtsassistenten erstellt werden. Fehlt die Angabe, wird das Basisverzeichnis verwendet. |
| SharedDataSourceReference | Pfad und Name zu einer bereits vorhandenen Datenquelle am Berichtsserver, die vom Berichtsassistenten beim Erstellen eines neuen Berichtes verwendet wird. Fehlt diese Angabe erzeugt der Berichtsassistent eine im Bericht eingebettete Datenquelle. Bei Berichten mit eingebetteten Datenquellen kann vom Reportbuilder keine Vorschau angezeigt werden. |
| Parameters | Derzeit nicht in Verwendung. |
Folgende Punkte müssen im Bereich DBCon definiert werden:
| Eintrag | Beschreibung | ||||||||||
| Stage |
|
Weitere Variablen:
Variablen können zum Beispiel bei Importen benutzt werden. Importobjekte benötigen einen Connectionstring, um zB. eine Verbindung zu einer Vorsystemdatenbank aufbauen zu können. Um nun mit einem Eintrag mehrere Objekte gleichzeitig ändern zu können wird empfohlen, solche Connectionstrings als Variablen zu definieren, um Änderungen schneller vollziehen zu können.
<add key="Variablenname" value="Wert bzw. Eintrag, den die Variable haben soll"></add>
SupportConfig
- Ab CoP 10 HF 3.3:
| Eintrag | Beschreibung |
| SupportMailAddress | Wird für Aufrufe des Supports per Mail verwendet. |
| SupportFormAddress | Formular, welches bei Aufruf des Support aufgerufen wird. |
- Bis CoP 10 HF 3.3:
Folgende Punkte müssen im Bereich SupportConfig definiert werden:
| Eintrag | Beschreibung |
| SupportButton | Steuert die Anzeige des Support Buttons. |
| SendAsMail | Versenden der Informationen per Mail. Für nicht sichtbare Parameter wird not provided übermittelt. Sofern Office am Rechner installiert ist, wird eine zip-Datei mit den Informationen an das Email angehängt. Bei anderen Email-Clients öffnet sich das Mail und es kommt ein Hinweis, dass man die Informationen aus der Zwischenablage einfügen kann. Wenn Informationen nur per Mail geschickt werden soll, deaktivieren Sie die Optionen SendAsPost und SendAsGet, da diese sonst zusätzlich ausgeführt werden. |
| EmailToSendTo | Adresse an die das Mail geschickt werden soll. |
| IncluceSvrCommands | Definiert ob die Serverkommandos mit übermittelt und angezeigt werden. |
| IncludeNavigation | Definiert ob die letzten Navigationsschritte übermittelt und angezeigt werden. |
| IncludeSystemInfo | Definiert ob die Systeminformationen übermittelt und angezeigt werden. |
| IncludeCPU | Definiert ob die Informationen zur CPU übermittelt und angezeigt werden. |
| IncludeMemory | Definiert ob die Informationen über den Speicher übermittelt und angezeigt werden. |
| IncludeGraphics | Definiert ob die Informationen über die Grafikkarte übermittelt und angezeigt werden. |
| IncludeScreenshot | Definiert ob der Screenshot übermittelt und angezeigt werden. |
| SendAsPost | Definiert ob die Übermittlung via Post erfolgen soll. |
| DestUrlPost | URL an die die Daten übergeben werden sollen. Parameter, die als nicht sichtbar gesetzt sind werden als not provided angezeigt. Namen der übergebenen Parameter: UserInput, Version, ServerCommands, Navigation, SysInfo, CPU, Memory und Graphics. Sofern das Senden nur über Post funktionieren soll, bitte SendAsMail und SendAsGet deaktivieren, da diese sonst auch ausgeführt werden. |
| SendAsGet | Definiert ob die Übermittlung via Get erfolgen soll. |
| DestUrlGet | URL mit den Parametern an die die Information übermittelt werden soll. Wenn Parameter über die Optionen oben deaktiviert sind, werden diese mit not provided angegeben. Für diese Variante müssen die Informationen begrenzt werden, da wegen Beschränkungen des Browsers nach ca. 2000 Zeichen die URL abgeschnitten wird. Sofern das Senden nur über Get funktionieren soll, bitte SendAsMail und SendAsPost deaktivieren, da diese sonst auch ausgeführt werden. |
| MaxNumbersOfServerLogLines | Anzahl wieviele Zeilen des Serverlogs übergeben werden |
WebConfig
Folgende Punkte müssen im Bereich WebConfig definiert werden:
| Eintrag | Beschreibung |
| WebAppUrl | Ab CoP 10 HF 1.2: Zwingend erforderlich. Über diese URL erfolgt die komplette Kommunikation mit den Clients.
Bis CoP 10 HF 1.2: Definiert die Basis-URL unter welcher der interne Webserver verfügbar ist, über den die REST-API und einige Features angesprochen werden. Wenn Sie die REST Funktionalitäten nicht nutzen wollen, kann der Eintrag einfach leer gelassen werden. Bei Verwendung müssen die Schritte, welche unter Einrichtung des CoPlanner-Servers mit HTTPS angeführt sind, ausgeführt werden. Ab CoP 10 HF 1.9: Es können mehrere URL durch | getrennt angegeben werden (z.B. https://+:4443/%7Chttp://+:8080/). Die erste angegebene URL ist jene, die für die Sessionvariable @Session_WebAppUrl@ verwendet wird. Mit den anderen kann man ebenfalls auf den CoPlanner zugreifen. Der Windowsclient und die AddIns sollten über die erste URL zugreifen. |
| ReportServerUrl | URL über die mit dem Repotserver kommuniziert werden kann. Nur notwendig, wenn das Webreporting im Einsatz ist. |
| LogonLanguages | Definiert in welchen Sprachen man sich am Webclient anmelden kann. |
| LogonWithCoPlannerSecurity | Definiert, ob man sich im Webclient mit CoPlanner Security anmelden kann. Bei false steht die Option nicht zur Verfügung. |
| LogonWithSSPI | Definiert, ob man sich im Webclient mit Single Sign-on anmelden kann. Bei false steht die Option nicht zur Verfügung. |
| CorsAllowedOrigins | Wird von einem anderen Host auf die API zugegriffen, muss der Host hier definiert werden. z.B. Aufruf erfolgt über https://servername:5000/irgendeinaufruf, dann muss hier https://servername:5000 vergeben werden. Mit | getrennt können mehrere angegeben werden. |
| EnableSwagger | Definiert, ob man auf den Swagger zugreifen kann. Sofern das am System nicht benötigt wird, sollte die Option auf false sein. |
| ApiClientForPowerUserOnly | Muss false sein, wenn man den Windowsclient, Reportserver oder ein Addin auch ohne den PowerUser-Modus verwenden möchte. Ist die Option true, kann man sich nur mehr als PowerUser, Partner oder Hersteller anmelden, außer im Webclient. |
| EnableExperimentalEndpoints | Muss true sein, wenn Hilfeseiten, CSV-Upload, Cockpits oder etwas anderes aus dem Prototype aufgerufen wird. Sofern diese Apps nicht verwendet werden sollte man diese Option auf false setzen. |
| EnableMssEndpoints | Aktiviert die Endpunkte, die für MSS Masken benötigt werden. Sofern diese Masken nicht im Einsatz sind sollte diese Option auf false sein. |
| EnableAuthWithSessionId | Wird benötigt für die Übergabe der Session-ID im Windowsclient für MSS-Masken und die Prototype Dinge. Sofern diese nicht verwendet werden sollte diese Option auf false sein. |
| EnableHttpsRedirection | Ab CoP 10 HF 1.9: Wenn die Option auf true ist, werden HTTP-Verbindungen auf den HTTPS-Port weitergeleitet. Gibt es in der WebAppUrl nur eine URL mit HTTPS, so wird automatisch dieser Port herangezogen. Gibt es mehrere HTTPS-URLs, so muss der Port, auf den umgeleitet werden soll bei HttpsRedirectionPort eingetragen werden. |
| HttpsRedirectionPort | Ab CoP 10 HF 1.9: Hier kann der HTTPS-Port angegeben werden, auf welchen die HTTP-Verbindungen weitergeleitet werden. |
| EnableHSTS | Ab CoP 10 HF 1.9: Mit dieser Option kann HTTP Strict Transport Security (HSTS) aktiviert werden. |
| StartUrl | Ab CoP 10 HF 1.9: Mit dieser Option gibt es eine Weiterleitung, wenn man den Pfad der WebAppUrl direkt aufruft. Dieser Pfad sollte alles hinter dem Port beinhalten. z.B. /coplanner/tiles/?menu=Startmenue. Wird https://meinservername:4443/coplanner aufgerufen, gibt es hier eine automatische Weiterleitung auf https://meinservername:4443/coplanner/tiles/?menu=Startmenue. |
| EnableResponseCompression | Ab CoP 10 HF 2.0: Möglichkeit zum Deaktivieren der ResponseCompression. Komprimierung und https kann zu Security-Problemen führen, weshalb es hier die Möglichkeit gibt, diese auch bei Bedarf zu deaktivieren. |
OlapServiceSettings
| Eintrag | Beschreibung |
| OlapServiceUrl | Ab CoP 10 HF 2.0: Es gibt die Möglichkeit künftig die Anbindung an den CoPlanner über ein eigenes OLAP Service laufen zu lassen und nicht mehr direkt integriert. Will man das Service verwenden, muss man dieses konfigurieren, hier die URL des Service angegeben und den Server und den Databasename aus den SSASSettings rausnehmen. |
Exkurs SSAS Einstellungen
Der CoPlanner-Server bietet mehrere Möglichkeiten SSAS-Dimensionen zu laden. Im Folgenden werden die zulässigen Einstellungen aufgelistet.
| DimensionLoadMode | LoadDimensionByAlias | Einstellung | Ergebnis |
| AsDimension | False |
|
![]() |
| AsDimension | True |
|
|
| AsDimHierarchy | True |
|
![]() |
| AsDimAndHierarchy | True |
|
![]() |
| Wichtig Per Default gelten folgende Einstellungen: DimensionLoadMode=AsDimHierarchy bzw. LoadDimensionByAlias=True. |
| Wichtig Werden die SSAS Einstellungen LoadDimensionByAlias bzw. DimensionLoadMode im Nachhinein geändert so müssen sämtliche Cubes die auf OLAP verweisen neu aufgebaut werden. |
Nachfolgend werden die zulässigen OLAP Einstellungen näher beschrieben
| Eintrag | Beschreibung |
| XmlaLoadActive |
- False: die DimensionsMembers werden mittels Level.GetMembers() geladen - True: die DimensionsMembers werden aus SchemaDataSet geholt. (Die ADOMD Methode GetSchemaDataSet(…) wird verwendet.) |
Exkurs FormulasUsePriorityQueue
Im Formelwerk gibt es die Möglichkeit, eine Execution Order für Formeln zu definieren. Damit diese angewendet wird muss der Parameter „FormulasUsePriorityQueue“ im svrconfig.xml auf true gesetzt sein.
Mit dieser Option der Formelabarbeitung werden Formeln nicht wie bisher nach der Reihenfolge, in der die Formeln durch die Änderungen der Tabelle getriggert wurden, abgearbeitet, sondern nach Priorität.
Anhand eines einfachen Beispiels werden altes und neues Verhalten verglichen: wenn sich in der Gewinn- und Verlustrechnung die Umsätze ändern, dann ändert sich der Gewinnvortrag und auch die Bilanz muss neu gerechnet werden.
Ohne Anpassung der Priorität wird jetzt mit der Änderung eines Umsatzes im Jänner der Gewinn-/Verlustvortrag für den Februar angepasst und die Bilanz neu gerechnet, durch die Änderung des Gewinn-/Verlustvortrags im Februar ändert sich auch der Gewinn-/Verlustvortrag im März, und muss somit neu gerechnet werden. Beim Schreiben dieser Änderung wird auch wieder die Berechnung der Bilanz ausgelöst.
Vereinfacht gesagt, aus einer Umsatzänderung resultiert auch eine Gewinn-/Verluständerung, die monatsweise weitergeschrieben werden muss und bei jedem Weiterschreiben wird auch die Bilanz neu gerechnet.
Sinnvoll wäre es aber, zuerst die GuV fertig zu rechnen (d.h. den Gewinnvortrag bis Ende Jahr weiterzuschreiben), und erst dann die Daten einmal in die Bilanz zu übernehmen.
Dies kann über die PriorityQueue erreicht werden: hat die Formel für den Gewinn-/Verlustvortrag z.B. eine Priorität von 1 und die Formel, die die Bilanz aktualisiert, eine Priorität von 2, so wird bei jedem Weiterschreiben eine weitere Berechnung des Gewinn-/Verlustvortrags und eine Berechnung der Bilanz in die Berechnungsqueue gestellt.
In der PriorityQueue wird die Formel mit Priorität 1 vorgereiht, wodurch das Berechnen des Gewinn-/Verlustvortrags vor der Berechnung der Bilanz abgeschlossen wird. Zusätzlich erkennt das System, das es bereits eine Anforderung, die Bilanz neu zu rechnen, in der Queue hat und stellt diese Anforderung daher nicht mehr zusätzlich in die Queue.
Festlegen der Reihenfolge
Die Priorität für die Abarbeitung einer Formel wird anhand der Tabelle, deren Änderung die Berechnung der Formel triggert, festgelegt. Somit können Formeln mit unterschiedlicher Priorität ausgeführt werden (z.B. bei den variablen Kosten: wird die Neuberechnung der Variablen Kosten durch eine Änderung in der variablen Kosten-Planung ausgelöst, so will in der Maske auf das Ergebnis warten, wird die Berechnung hingegen durch eine Änderung in der Umsatzplanung getriggert, so soll diese Berechnung im Hintergrund passieren. Das lässt sich realisieren, indem man den beiden Tabellen „Umsatzerlöse“ und „Variable Kosten unterschiedliche Prioritäten im Formeldesigner zuweist)
Wird keine Reihenfolge vergeben, oder kann keine Reihenfolge ermittelt werden (z.B. Formel wird durch ein Makro aufgerufen), so wird die Reihenfolge auf 1 gesetzt.
Vermeidung Queue Starvation
Wenn Gefahr droht, dass eine Berechnungsanforderung „ewig“ in der Queue warten muss, wird dies vom System erkannt, und neue Berechnungsanforderungen werden ab dem Zeitpunkt des Erkennens hinter die bereits in der Queue befindlichen Berechnungsanforderungen gelegt – unabhängig von der vergebenen Priorität.
Masken: Warten auf Berechnungen der ersten Ebene
In Eingabemasken kann durch das Setzen des Flags „WaitForCalc“ festegelegt werden, ob auf Berechnungen gewartet wird. Im der bestehenden Implementierung zu Festlegung der Reihenfolge wird dabei auf alle Berechnungen gewartet, die direkt durch das Schreiben in eine Tabelle ausgelöst wurden (dies wird durch Kalkulationstiefe 1 gekennzeichnet). Dabei wird auf alle Formeln der Kalkulationstiefe 1 gewartet, unabhängig davon, ob die Berechnung durch den Benutzer selbst oder durch die Eingabe eines anderen Benutzers ausgelöst wurde.
Mit der PriorityQueue kann dies feiner gesteuert werden, es wird auf die Abarbeitung aller direkt durch die Eingabe ausgelösten Formeln, deren Reihenfolge < 0 ist gewartet (ebenfalls benutzerübergreifend). Um auf eine Formel zu warten, die auf einer anderen Tabelle als der Eingabetabelle rechnet, muss man diese Formel nur von der Eingabetabelle aus triggern und mit einer passenden Priorität (< 0) versehen. Dies kann z.B. wie folgt genutzt werden: in einer Umsatztabelle wird über eine Update-Formel der Umsatzsteuersatz zum aktuellen Datensatz dazugeholt und die USt gerechnet, und über eine weitere Formel der Umsatz für eine GuV-Berechnung weitergeschrieben. In der Maske wird jetzt auf die Update-Formel gewartet, da USt und USt-Satz dem Benutzer angezeigt werden, auf das Weiterschreiben in Richtung GuV wird jedoch nicht gewartet.
Sonderstellung der SAME-Formel
Wird die Berechnung von SAME-Formeln durch eine Dateneingabe ausgelöst, so werden diese Formel direkt beim Speichern des Datensatzes synchron gerechnet (und nicht in die Liste eingefügt). Die Berechnung erfolgt somit nicht über die Liste mit durchzuführenden Berechnungen.
Anmerkungen
Es wird generell davon abgeraten, die PriorityQueue zu verwenden, ohne das Verhalten des Rechenwerks bei bestehenden Modellen ausführlich zu testen. Die Änderung von Duplikaten musste im Rahmen der Implementierung der neuen Funktionsweise ebenfalls angepasst werden; dies kann in Ausnahmefällen dazu führen, dass die Berechnungs-reihenfolge in bestehenden Modellen anders ist als bisher.
Konfigurationstool
Zum Bearbeiten der CoPlanner Server Einstellungen steht im Server-Verzeichnis ein Konfigurationstool "SvrConfig.exe" zur Verfügung.
NLog.Server.config bzw. NLog.Service.config
Prinzipiell kann hier mehr angepasst werden, aber die grundlegenden Eigenschaften:
- logDirectory: Verzeichnis ohne den Dateinamen, wo hingeloggt werden soll
- fileName: Hier kann man den Dateinamen anpassen oder wenn man möchte auch den gesamten Pfad
- archiveAboveSize: gibt an, ab welcher Dateigröße eine neue Datei geschrieben wird. Der Standard von 10000000 entspricht 10 MB.
CoPlanner-Server als Dienst
Der CoPlanner-Server kann auch als Dienst installiert werden. Wichtig hierbei ist, dass Sie Administratorrechte besitzen, um die Installation durchführen zu können. Sie starten den Dienst mit der Schaltfläche "Install service", der unter CopSettings zu finden ist. Der Service wird mit dem Namen gestartet, der unter ServiceName angegeben ist. Um den CoPlanner-Server als Dienst zu deinstallieren wählen Sie "Uninstall service".
Mehrere CoPlanner Dienste auf einem Rechner installieren
Auf einem Rechner können auch mehrere CoPlanner Services installiert werden. Dazu ist lediglich der ServiceName unter den CopSettings zu ändern und der Dienst erneut zu installieren. Unter den Windows Diensten sind dann 2 voneinander unabhängige Dienste vorhanden.
CoPlanner-Server als Applikation
Starten des Servers als Applikation
Durch das Kopieren des Serververzeichnisses auf den Rechner ist die Installation eigentlich beendet. Sie müssen nur noch die Datei CopServer.exe starten. Ein Konsolenfenster erscheint. Hier können Sie mit verfolgen, welche Operationen der CoPlanner-Server gerade ausführt. Im Zusammenhang mit 64 Bit wird nur der SQL Server bzw. Analysis Server 2005 unterstützt.
Einrichtung des CoPlanner-Servers mit HTTPS
Um eine sichere Kommunikation des Webclients mit dem CoPlanner-Server gewährleisten zu können, sollte unbedingt HTTPS eingesetzt werden.
Dies bietet insbesondere zwei Vorteile:
- Verschlüsselung (es kann nicht mitgelesen werden)
- Signaturprüfung (es ist sichergestellt, dass auch mit dem richtigen Server kommuniziert wird)
Um HTTPS nutzen zu können, wird ein Zertifikat benötigt. Dieses kann entweder selbst erstellt oder von diversen Anbietern bezogen werden. Beide Optionen haben Vor- und Nachteile. Das Zertifikat muss ein "X.509 Certificate" sein (liegt meist als PFX-Datei vor) und für die Domain gültig sein, auf der der CoPlanner-Server laufen soll.
Beispiel: Soll der Server unter https://sample.copserver.mycompany:8080/coplanner laufen, muss das Zertifikat für sample.copserver.mycompany gültig sein.
Selbst erstellte Zertifikate ("self signed")
Vorteile: Frei konfigurierbar, jederzeit verfügbar, unabhängig
Nachteile: Von gängigen Webbrowsern standardmäßig nicht akzeptiert
Soll ein selbst erstelltes Zertifikat verwendet werden, muss es auf den PCs der Endanwender für deren Browser als vertrauenswürdig markiert werden. Die genaue Einstellung unterscheidet sich je nach Browser und Betriebssystem.
Grundsätzlich beachten die meisten Webbrowser die Zertifikatseinstellungen des Betriebssystems (zum aktuellen Zeitpunkt mindestens Chrome, Edge und Internet Explorer). Firefox muss allerdings separat konfiguriert werden (siehe diese Information von Mozilla).
Es ist möglich, Zertifikate mittels Gruppenrichtlinie in Windows-Domänen zu verteilen.
Zertifikat von einem Anbieter
Vorteile: Von gängigen Webbrowsern ohne Konfiguration akzeptiert
Nachteile: Teilweise kostenpflichtig, unterschiedlicher Service je Anbieter
Anbieter für SSL-Zertifikate gibt es viele, die Preise ändern sich laufend.
Beispiele für Anbieter:
Let’s Encrypt: https://letsencrypt.org/de/
Kostenlos. Muss alle drei Monate erneuert werden.
Thawte: https://www.thawte.de/
Kostenpflichtig.
Der Prozess unterscheidet sich je nach Anbieter. Im Endeffekt sollte das Zertifikat als Datei vorliegen, die auf dem Server installiert werden kann.
Einrichtung von HTTPS unter Windows Server
Unter Windows Server wird HTTP.sys, ein Bestandteil von Microsoft Windows, als Hosting-Komponente für den CoPlanner-Server verwendet. Diese kümmert sich auch um HTTPS.
Das Zertifikat muss für die Installation entweder als Datei vorliegen, oder bereits am Server installiert sein. Falls das Zertifikat bereits installiert ist, muss bekannt sein, welches genutzt werden soll, und dessen Thumbprint, auch Fingerabdruck, ermittelt werden. Ansonsten muss das Zertifikat aus der Datei installiert werden.
Für beide Varianten gibt es weiter unten genauere Informationen.
Zusätzlich muss bekannt sein, für welchen Aufruf das Zertifikat gültig ist. Dieser muss der Adresse entsprechen, mit dem die Nutzer auf den CopServer zugreifen werden. Die WebAppUrl sollte ebenfalls auf genau diese Adresse gesetzt werden (es sollte kein "+" mehr darin verwendet werden).
Dann muss die URL registriert werden:
netsh http add urlacl url=<WebAppUrl> user=<DOMAIN\user>
Hierbei sollten auf Produktivsystemen keine Wildcards ("*" bzw. "+") auf oberster Ebene verwendet werden. Auf Subdomain-Ebene ist die Verwendung in Ordnung, wenn man die gesamte Parent-Domäne kontrolliert.
Beispiele:
Unsicher: https://+:8080/coplanner
In Ordnung: https://*.copserver.mycompany:8080/coplanner
In Ordnung: https://sample.copserver.mycompany:8080/coplanner
Ein Beispiel wäre:
netsh http add urlacl url=https://sample.copserver.mycompany:8080/coplanner user=MY_DOMAIN\copServiceUser
Möchte man die Registrierung wieder entfernen, ist das mit folgendem Befehl möglich:
netsh http delete urlacl url=<URL>
Wenn die URL erfolgreich registriert wurde, muss das Zertifikat mit folgendem Befehl hinterlegt werden:
netsh http add sslcert ipport=<IP>:<PORT> certhash=<THUMBPRINT> appid=<GUID>
<IP> bezeichnet die IP-Adresse des Servers,
<PORT> den genutzten Port.
<THUMBPRINT> ist der Thumbprint, auch Fingerabdruck, des Zertifikats, das genutzt werden soll.
<GUID> unterscheidet sich danach, ob der CoPlanner-Server als Konsolenanwendung oder als Service verwendet wird:
- Service: "{82880fad-ad78-4531-99ba-533f4c8e5840}"
- Server: "{6ef7e594-5b5e-4626-904a-47b513e81e30}"
Beispiel:
netsh http add sslcert ipport=0.0.0.0:4443 certhash=2170950415ef045f6cb314c92e124411dd0590bf appid={6ef7e594-5b5e-4626-904a-47b513e81e30}
Um das Zertifikat wieder zu entfernen, kann folgender Befehl genutzt werden:
netsh http delete sslcert ipport=<IP>:<PORT>
Bei Verwendung des Reportservers müssen diese Schritte auch für den Reportserver ausgeführt werden.
Für den Reportserver sind die GUIDs bei der appid im netsh-Befehl:
- Service: "{d36681ea-e3d6-4909-94c3-93834beddb9d}"
- Konsole: "{489b672b-5171-4aae-9e79-320427ab6c62}"
Anpassung SPN (Service Principal Name) für Single Sign-On am Server
Entspricht der vollständige Computername nicht der URL, welche aufgerufen wird muss ein zusätzlicher Service Principal Name hinzugefügt werden, wenn man sich auch Server direkt auch mit Single Sign-On anmelden will.
z.B. vollständiger Computername ist myserver.test.coplanner.com und die URL über die zugegriffen wird ist myserver.coplanner.com
Windows-Authentifizierung mittels Webrequest funktioniert mittels Negotiate/Kerberos und/oder NTLM. Diese sind stark an die Identitäten der Maschinen gebunden. Für Kerberos können abweichende Namen mittels setspn.exe verwaltet werden. Ausgabe aller Service Principal Names (SPNs) für myserver:
setspn -L myserver
Mit setspn -A "HOST/myserver.coplanner.com" myserver
kann der für Kerberos notwendig Eintrag zum Host hinzugefügt werden. Um dies zu machen braucht man hohe Rechte. Für NTLM ist das mit HttpSys nicht möglich!
Nähere Infos zu setspn finden Sie unter https://social.technet.microsoft.com/wiki/contents/articles/717.service-principal-names-spn-setspn-syntax.aspx.
Firefox erlaubt standardmäßig keine Negotiate-Uris. Damit Firefox mit Negotiate funktioniert, muss mit "about:config" -> "network.negotiate-auth.trusted-uris" die Url freigeben werden. Das ist aber nur notwendig, wenn Firefox auf der selben Maschine wie der Server läuft! Remote wird auf NTLM zurückgegriffen und das funktioniert ohne Konfiguration.
Für den Zugriff aller Clients, die eine ClientConfig.xml besitzen (z.B. Windowsclient, MakroExecutor, AddIns,...), mit Single Sign-On direkt am Server muss in der ClientConfig.xml der Eintrag ServicePrincipalNameForServerUrl auf HOST/myserver gesetzt werden.
Anpassung für Single Sign-On im Firefox
Wenn beim Single Sing-On im Firefox noch eine Box kommt, wo man den Namen und Passwort nochmal eingeben muss, dann sollte man folgende Schritte ausführen oder diese per GPO ausrollen:
- Firefox öffnen und in Adressleiste about:config eingeben und mit Enter bestätigen
- Suchen nach dem Eintrag network.automatic-ntlm-auth.trusted-uris
- Hier dann den Namen angeben, mit dem die Seite aufgerufen wird. z.B. servername, wenn der Aufruf über http://servername:4488/... erfolgt oder servername.coplanner.com, wenn der Aufruf über http://servername.coplanner.com:4488/... erfolgt. Sollte es für beide Varianten funktionieren, kann man bei dem Eintrag mehrere Namen mit , getrennt angeben.
Anpassung für Single Sign-On in Chrome und Edge
Wenn beim Single Sing-On im Chrome oder Edge noch eine Box kommt, wo man den Namen und Passwort nochmal eingeben muss, dann sollte man folgende Schritte ausführen oder diese per GPO ausrollen:
- Öffnen Sie die Systemsteuerung > Internetoptionen.
- Wählen der Registerkarte Sicherheit
- Wählen Sie Lokales Intranet aus und klicken Sie auf Sites.
- Klicken Sie auf Erweitert
- Hier dann den Namen angeben, mit dem die Seite aufgerufen wird. Beispiel: https://servername.coplanner.com
- Bestätigen mit Hinzufügen
Installation des Zertifikats aus einer Datei
Dies ist mittels der Windows-eigenen Zertifikatsverwaltung möglich.
Bestimmung des Thumbprints des Zertifikats
Der Thumbprint (Fingerabdruck) des Zertifikats lässt sich in den Eigenschaften auslesen:
Finden des aktuell verwendeten Zertifikats unter Windows Server
Will man herausfinden, welches Zertifikat verwendet wird, so kann man das über folgende Schritte herausfinden:
Folgendes Kommando liefert Informationen zum Zertifikat (Details zu den Parametern siehe weiter oben):
netsh http show sslcert ipport=<IP>:<Port>
Der Thumbprint ist als „Zertifikathash“ aufgeführt. Anschließend kann man mittels dieser beiden Befehle die Details zum Zertifikat ermitteln (für <THUMBPRINT> muss der soeben bestimmte Wert eingesetzt werden):
cd cert:
dir -recurse | where {$_.Thumbprint -eq "<THUMBPRINT>"} | Format-List -property *
Hat das Zertifikat einen „FriendlyName“, ist dieser in der Spalte „Anzeigename“ in der Windows-Zertifikatsverwaltung aufgeführt.
Ansonsten muss man sich mit „Ausgestellt für“ und „Ausgestellt von“ behelfen. Unter „Issuer“ und „Subject“ ist jeweils ein Text aufgeführt, der in etwa so aussieht:
CN=Some Common Name, OU=Some Unit, …
In der Windows-Zertifikatsverwaltung entspricht der Wert von CN unter „Subject“ dem Wert der Spalte „Ausgestellt für“, und der Wert von CN unter „Issuer“ der Spalte „Ausgestellt von“.
Aktualisierung des Zertifikats
Um z.B. ein abgelaufenes Zertifikat zu ersetzen muss folgendes gemacht werden:
Entfernung der Bildung auf das abgelaufene Zertifikat:
netsh http delete sslcert ipport=<IP>:<PORT>
Die Vorgangsweise zum Einspielen des Zertifikats am Server ist wieder die selbe. Anschließend muss auch wieder folgender Befehl mit dem Thumbprint des neuen Zertifikats ausgeführt werden:
netsh http add sslcert ipport=<IP>:<PORT> certhash=<THUMBPRINT> appid=<GUID>







