Instalace webového rozhraní: Porovnání verzí
(→Soubor appsettings.json) |
|||
(Není zobrazeno 90 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
− | + | == O aplikaci == | |
− | + | Informační systém enTeam zajišťuje řízení a správu firemních dokumentů, komunikaci uvnitř pracovního týmu a flexibilní automatizaci firemních procesů.<br> | |
− | + | Pro zprovoznění webového rozhraní informačního systému enTeam je třeba provést instalaci a nastavení: | |
− | # | + | * Webového API (aplikační rozhraní) a |
− | + | * Webového GUI (grafické uživatelské rozhraní) | |
− | + | ||
− | + | Popis zprovoznění každé z těchto částí je uveden v samostatné kapitole tohoto postupu. | |
− | + | Instalační soubory webového rozhraní jsou součástí instalačního ZIP archivu. V návodu jsou uvedeny relativní cesty k souborům a adresářům (vždy začínají adresářem {{FileNameZip|enTeam.WebApi}} nebo {{FileNameZip|enTeam.WebGui}}</code>, tj. jedním z adresářů umístěných na první úrovni vnoření v uvedeném archivu).<br> | |
− | + | Pro přehlednost jsou názvy souborů a adresářů v celém postupu instalace označeny {{FileName|technickým písmem}}. Názvy adresářů a souborů obsažené v uvedeném ZIP archivu jsou navíc zvýrazněny {{FileNameZip|červenou barvou}}.<br> | |
− | + | Dále jsou v tomto postupu uvedeny příklady částí souborů. Takové texty jsou označeny {{FileCont|modrou barvou}}.<br> | |
− | + | ||
− | # [[Postup instalace | + | == Předpoklady instalace webového rozhraní == |
− | + | Webové rozhraní informačního systému enTeam využívá k připojení do databáze dvou způsobů. Prvním z nich je přímé připojení do databáze pomocí databázového klienta. Druhým způsobem je připojení pomocí OLE rozhraní, které je součástí standardního desktopového klienta aplikace enTeam. <br> | |
− | + | Server, kde bude webové rozhraní provozováno, proto musí mít: | |
− | + | * Funkční enTeam verze 6.0.0.3 nebo novější – serverovou (hlavní) nebo klientskou instalaci a | |
− | + | * Funkční webový server Internet Information Services (IIS) verze 10 nebo novější nainstalovaný na serveru, kde je zprovozněn IS enTeam | |
− | + | ||
− | + | == Instalace webového API == | |
− | + | Webové API je kolekce webových služeb poskytující přístup k datům modulů aplikace enTeam.<br> | |
− | + | Aktuálně podporované DBMS jsou Firebird, Microsoft SQL Server a Oracle. Požadovanou strukturu databáze je nutné vytvořit dodanými SQL skripty (viz [[#Postup instalace]]). Strukturu lze vytvořit: | |
− | + | * Individuálně, tj. samostatná databáze koexistující vedle stávající databáze enTeam, nebo | |
− | + | * Přidat do aktuální databáze enTeam | |
− | + | Na vytvořenou strukturu databáze je pak potřeba nasměrovat aplikaci (viz [[#Soubor appsettings.json]]) | |
− | # | + | |
− | + | === Předpoklady === | |
− | + | * Funkční ASP.NET Core Runtime 5.0 (např. 5.0.7 nebo novější) | |
− | + | ** https://dotnet.microsoft.com/download/dotnet/5.0 | |
+ | ** Stáhnout a nainstalovat „Hosting Bundle“ | ||
+ | [[Soubor:HostingBundle.png|žádný|Hosting Bundle]] | ||
+ | * Instalované následující komponenty IIS (instalaci lze ověřit a příp. provést přes aplikaci Server Manager > Manage > Add Roles and Features) | ||
+ | ** Web Server (IIS) > Web Server > Application Development > .NET Extensibility 4.X | ||
+ | ** Web Server (IIS) > Web Server > Application Development > ASP.NET 4.X | ||
+ | * Existence databázového uživatele (typicky teambridge), pod kterým se bude webové API přihlašovat do databáze. V případě databázového serveru Firebird musí existovat uživatel s metodou autentizace SRP (viz [[#Pod uživatelem se nelze připojit z enTeam.WebApi do DB Firebird 3.0+. Spojení z ostatních aplikací enTeam pod stejným uživatelem funguje]]). | ||
+ | |||
+ | === Postup instalace === | ||
+ | Instalace sestává z následujících kroků: | ||
+ | <ol> | ||
+ | <li> Založit databázové struktury pro webovou část enTeam<br> | ||
+ | {{Note|Poznámka: Uvedený postup popisuje vytvoření databázových struktur pro webovou část enTeam ve stávající databázi informačního systému enTeam. Struktury lze založit i v samostatné databázi vytvořené za tímto účelem.}} | ||
+ | <ol> | ||
+ | <li> Otevřete aplikaci Příkazová řádka (cmd.exe)</li> | ||
+ | <li> Spusťte SQL skripty | ||
+ | <ul> | ||
+ | <li> Máte-li databázový server '''Firebird''':<br> | ||
+ | V Příkazové řádce vykonejte následující příkazy:<br> | ||
+ | {{Command|<FirebirdAdresar>\isql -user sysdba -password <Heslo> <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\Firebird\waFirebird_001.sql}}<br> | ||
+ | {{Command|<FirebirdAdresar>\isql -user sysdba -password <Heslo> <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\Firebird\waFirebird_002.sql}}<br> | ||
+ | V příkazu nahraďte: | ||
+ | *{{Command|<FirebirdAdresar>}} za cestu k adresáři s instalací Firebird (např. {{FileName|c:\Program Files (x86)\Firebird}}), | ||
+ | *{{Command|<Heslo>}} za heslo uživatele sysdba, | ||
+ | *{{Command|<Databaze>}} za cestu k databázi informačního systému enTeam, | ||
+ | *{{Command|<ZipAdresar>}} za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam | ||
+ | </li> | ||
+ | <li> Máte-li databázový server '''Microsoft SQL Server''':<br> | ||
+ | V Příkazové řádce vykonejte následující příkazy:<br> | ||
+ | {{Command|sqlcmd -U teambridge -d <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\SqlServer\waSqlServer_001.sql}}<br> | ||
+ | {{Command|sqlcmd -U teambridge -d <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\SqlServer\waSqlServer_002.sql}}<br> | ||
+ | V příkazu nahraďte: | ||
+ | *{{Command|<Databaze>}} za název databáze informačního systému enTeam, | ||
+ | *{{Command|<ZipAdresar>}} za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam | ||
+ | {{Note|Poznámka: Při vykonání příkazů pod databázovým uživatelem teambridge se může objevit následující varování.<br> | ||
+ | {{Command|Cannot find the user 'teambridge', because it does not exist or you do not have permission.}}<br> | ||
+ | Varování se zobrazí v případě, že nedošlo k vykonání příkazů GRANT. To nastane v případě, že databázový uživatel teambridge již je vlastníkem vytvořených tabulek. Varování lze proto ignorovat.}} | ||
+ | </li> | ||
+ | <li> Máte-li databázový server '''Oracle''':<br> | ||
+ | V Příkazové řádce vykonejte následující příkaz: | ||
+ | {{Command|exit <nowiki>|</nowiki> sqlplus.exe teambridge/<Heslo>@//<Server>/<Databaze> @<ZipAdresar>\enTeam.WebApi\sql\Oracle\waOracle_002.sql}}<br> | ||
+ | V příkazu nahraďte | ||
+ | *{{Command|<Heslo>}} za heslo uživatele teambridge, | ||
+ | *{{Command|<Server>}} IP nebo hostname databázového serveru Oracle, | ||
+ | *{{Command|<Databaze>}} za název databáze informačního systému enTeam, | ||
+ | *{{Command|<ZipAdresar>}} za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam | ||
+ | </li> | ||
+ | </ol> | ||
+ | </li> | ||
+ | </li> | ||
+ | </ul> | ||
+ | <li> Vytvořit adresář {{FileName|enTeam.WebApi}} v kořenovém adresáři webového serveru (např. {{FileName|c:\inetpub\wwwroot}})</li> | ||
+ | <li> Zkopírovat obsah adresáře {{FileName|enTeam.WebApi\bin}} do adresáře {{FileName|enTeam.WebApi}}, vytvořeného v předchozím kroku</li> | ||
+ | <li> V IIS Manageru přidat nový aplikační pool pro webové API (IIS Manager > Server > Application Pools > Add Application Pool…)<br> | ||
+ | [[Soubor:AddAppPool.png|Add Application Pool]] | ||
+ | </li> | ||
+ | <li> V rozšířených nastaveních aplikačního poolu musí být nastaveno | ||
+ | * .NET CLR Version = No Managed Code | ||
+ | * Enable 32-Bit Applications = true | ||
+ | * Identity = Local System | ||
+ | [[Soubor:AdvancedSettings.png|Advanced Settings]] | ||
+ | </li> | ||
+ | <li> V IIS Manageru vytvořit novou webovou stránku pro webové API (pojmenovanou např. enTeam.WebApi) a přiřadit jí vlastní port (např. 8088).<br> | ||
+ | [[Soubor:AddWebsite.png|Add Website]]<br> | ||
+ | <br> | ||
+ | {{Note|Poznámka: Pokud je uvedený port na serveru již obsazen jinou aplikací, použijte libovolný jiný. Zvolený port je ale nutné reflektovat ve všech krocích tohoto postupu.}}<br> | ||
+ | {{Note|Poznámka: Pro účely webového rozhraní enTeam stačí, aby byl zvolený port dostupný na serveru, na který webové API instalujeme. Není tedy třeba a nedoporučuje se povolovat přístup na tento port z jiných zařízení.}} | ||
+ | </li> | ||
+ | </ol> | ||
+ | |||
+ | === Nastavení webového API === | ||
+ | |||
+ | ==== Soubor appsettings.json ==== | ||
+ | V aplikaci webového API nastavte soubor {{FileName|appsettings.json}} dle následujícího postupu. | ||
+ | <ol> | ||
+ | <li> Pokud v adresáři aplikace webového API dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru {{FileName|appsettings.Template.json}}<br> | ||
+ | {{Note|Poznámka: Klíče (ve struktuře JSON souboru), které začínají znakem (nebo více znaky) #, jsou považovány za zakomentované a slouží pouze jako ilustrace možného nastavení. Po nastavení hodnot v souboru {{FileName|appsettings.json}}, je možné zakomentované řádky zcela odstranit (pozor ale na případné porušení syntaxe JSON, např. čárky mezi vlastnostmi)}} | ||
+ | </li> | ||
+ | <li> Správně nastavte připojení k databázi webové části aplikace enTeam (viz [[#Postup instalace]]), tj. klíč {{FileCont|WebApiDb}} a jeho vlastnosti {{FileCont|Provider}} a {{FileCont|ConnectionString}}. Ostatní vlastnosti klíče {{FileCont|WebApiDb}} deaktivujte zakomentováním (nebo odstraňte) dle předchozí poznámky. | ||
+ | </li> | ||
+ | <li> Dále nastavte přístup k původní databázi (popř. databázím) aplikace enTeam (tj. obdoba nastavení databáze ze sekcí {{FileCont|[M/USER]}}, {{FileCont|[M/TeamBridge]}} atd., ve standardním INI produktu enTeam). Jde o klíče {{FileCont|DataDictionaryDb}}, {{FileCont|ScriptExDb}}, {{FileCont|UserDb}} a {{FileCont|WorkflowManagerDb}} a jejich vlastnosti {{FileCont|Provider}} a {{FileCont|ConnectionString}} | ||
+ | </li> | ||
+ | </ol> | ||
+ | {{Note|Poznámka: Pokud jsou některé (nebo všechny) databáze spojené a vlastnosti Provider a ConnectionString by se v různých klíčích konfigurace opakovaly, lze tyto nahradit implicitním nastavením – klíčem Default.}}<br><br> | ||
+ | {{Note|Poznámka: V případě databázového serveru Firebird obsahuje vlastnost {{FileCont|ConnectionString}} plnou cestu k souboru databáze (např. {{FileName|C:\enTeam\Files\Data\enTeam.fdb}}). Aby byla aplikace webového API schopna vlastnost {{FileCont|ConnectionString}} přečíst, je třeba zpětná lomítka v cestě k souboru „zdvojit“. Cesta k databázi pak bude v hodnotě vlastnosti {{FileCont|ConnectionString}} např. tato:<br> | ||
+ | {{FileCont|1="ConnectionString":"Database=SERVER:C:\\enTeam\\Files\\Data\\enTeam.fdb;…"}}}}<br> | ||
+ | |||
+ | ==== INI soubor webového API ==== | ||
+ | Webové API pro svůj běh potřebuje pozměněné INI oproti desktopu. Vytvořte kopii souboru serie_m.ini, ke které bude přistupovat pouze webové API (např. {{FileName|<enTeamAdresar>\Ini\serie_m.WebApi.ini}}) a přidejte do něj následující obsah<br> | ||
+ | {{FileCont|1=[M/TeamBridge]<br> | ||
+ | ServerEngine=True}} | ||
+ | |||
+ | ==== Soubor web.config ==== | ||
+ | Pro běh webového API je třeba nastavit proměnnou prostředí SERIEM tak, aby odkazovala na soubor {{FileName|serie_m.WebApi.ini}} (viz [[#INI soubor webového API]]). Toho lze docílit úpravou souboru {{FileName|web.config}} (uvnitř elementu {{FileCont|aspNetCore)}} dle následujícího postupu: | ||
+ | <ol> | ||
+ | <li> | ||
+ | Pokud v adresáři aplikace webového API dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru {{FileName|web.Template.config}} | ||
+ | </li> | ||
+ | <li> | ||
+ | Správně nastavte proměnnou SERIEM v souboru {{FileName|web.config}} | ||
+ | Příklad nastavení proměnné SERIEM:<br> | ||
+ | {{FileCont11Lines | | ||
+ | 1=<aspNetCore | | ||
+ | 2= processPath="c:\Program Files (x86)\dotnet\dotnet.exe" | | ||
+ | 3= arguments=".\Leviom.enTeam.WebApi.dll" | | ||
+ | 4= stdoutLogEnabled="false" | | ||
+ | 5= stdoutLogFile=".\logs\stdout"> | | ||
+ | 6= <environmentVariables> | | ||
+ | 7= <environmentVariable | | ||
+ | 8= name="SERIEM" | | ||
+ | 9= value="<enTeamAdresar>\Ini\serie_m.WebApi.ini" /> | | ||
+ | 10= </environmentVariables> | | ||
+ | 11=</aspNetCore>}}<br> | ||
+ | |||
+ | Používáte-li 64bitový OS, zajistěte, aby se používala x86 varianta programu dotnet.exe. Nejjednodušší je upravit soubor {{FileName|web.config}} tak, že nastavíte plnou cestu k programu v atributu {{FileCont|processPath}} elementu {{FileCont|aspNetCore}} (viz ukázka výše). | ||
+ | |||
+ | </li> | ||
+ | <li> | ||
+ | V IIS Manageru ověřte, zda máte na serveru nainstalovaný modul WebDAV (IIS Manager > Server > Modules). Pokud se v seznamu instalovaných modulů nevyskytuje WebDAVModule, odstraňte ze souboru {{FileName|web.config}} následující sekci.<br> | ||
+ | {{FileCont3Lines | | ||
+ | 1=<modules runAllManagedModulesForAllRequests="false"> | | ||
+ | 2= <remove name="WebDAVModule" /> | | ||
+ | 3=</modules>}} | ||
+ | </li> | ||
+ | </ol> | ||
+ | |||
+ | === Ověření funkčnosti === | ||
+ | Nyní je možné ověřit, zda je aplikace webového API správně nakonfigurovaná a běží (tj. zda odpovídá na požadavky).<br> | ||
+ | Na serveru, kde má aplikace webového API běžet, vložte do internetového prohlížeče následující URL (pokud bylo v bodě 6 kapitoly [[#Postup instalace]] aplikaci přiřazeno jiné číslo portu, je třeba URL patřičně upravit).<br> | ||
+ | http://localhost:8088/<br> | ||
+ | Pokud aplikace webového API běží, pak by měla vždy být zobrazena odpověď v následujícím formátu.<br> | ||
+ | {{FileCont|1=Leviom.enTeam.WebApi, Version=<verze>, Culture=neutral, PublicKeyToken=null}}<br> | ||
+ | Pokud není ověření funkčnosti aplikace úspěšné, pokračujte zjištěním příčiny chyby dle [[#Ověření funkčnosti webového API končí chybou 500 nebo 502]] a po vyřešení problému znovu ověřte funkčnost aplikace z internetového prohlížeče.<br> | ||
+ | {{Note|Poznámka: Některé webové prohlížeče uvedenou odpověď nezobrazí, ale nebídnou ke stažení jako soubor. V takovém případě ověřte obsah staženého souboru.}} | ||
+ | |||
+ | == Instalace webového GUI == | ||
+ | Webové GUI (grafické uživatelské rozhraní) informačního systému enTeam je webová aplikace běžící ve webovém prohlížeči uživatele. Webové GUI komunikuje s informačním systémem enTeam prostřednictvím webového API (viz [[#Instalace webového API]]). | ||
+ | |||
+ | === Předpoklady === | ||
+ | <ol> | ||
+ | <li>Doména, na které budete webové rozhraní informačního systému enTeam provozovat (např. enteam.<doména>.cz)</li> | ||
+ | <li>Zajistit směrování URL na správný server (v DNS), popř. zajistit dostupnost serveru na síťové úrovni (z intranetu nebo internetu)</li> | ||
+ | <li>SSL certifikát pro zajištění šifrované komunikace (na protokolu HTTPS) mezi webovým GUI a uživateli aplikace</li> | ||
+ | <li>Pokud není nainstalovaný modul URL Rewrite, přidat jej přes Web Platform Installer (https://www.iis.net/downloads/microsoft/url-rewrite)</li> | ||
+ | Poznámka: Po přidání rozšíření přes Web Platform Installer je nutné zavřít a znovu otevřít IIS Manager, aby bylo zobrazeno nové rozšíření</li> | ||
+ | <li>V nastavení modulu URL Rewrite webové stránky enTeam.WebGui povolte použití následujících proměnných serveru (IIS Manager > Server > Sites > enTeam.WebGui > URL Rewrite > View Server Variables…) | ||
+ | * HTTP_X_FORWARDED_HOST | ||
+ | * HTTP_X_FORWARDED_PROTO | ||
+ | * HTTP_X_FORWARDED_SCHEMA | ||
+ | </li> | ||
+ | <li>Pokud není nainstalovaný modul Application Request Routing, přidat jej přes Web Platform Installer (https://www.iis.net/downloads/microsoft/application-request-routing)<br> | ||
+ | {{Note|Poznámka: Po přidání rozšíření přes Web Platform Installer je nutné zavřít a znovu otevřít IIS Manager, aby bylo zobrazeno nové rozšíření}}</li> | ||
+ | <li>V nastavení modulu Application Request Routing povolit Cache (IIS Manager > Server > Application Request Routing Cache > Server Proxy Settings… > Enable Proxy – zaškrtnout a potvrdit tlačítkem Apply v sekci Actions v pravém sloupci aplikace IIS Manager)</li> | ||
+ | </ol> | ||
+ | |||
+ | === Postup instalace === | ||
+ | Webové GUI instalujeme jako samostatnou webovou stránku ve webovém serveru IIS. Instalace sestává z následujících kroků: | ||
+ | <ol> | ||
+ | <li> Zkopírovat adresář {{FileNameZip|enTeam.WebGui}} do kořenového adresáře webového serveru (např. {{FileName|c:\inetpub\wwwroot}}) | ||
+ | </li> | ||
+ | <li> V aplikaci IIS Manager vytvořit novou webovou stránku (site) pro webové GUI a stránce přiřadit platný SSL certifikát<br> | ||
+ | [[Soubor:AddWebsiteSSL.png|Add Website with SSL]] | ||
+ | </li> | ||
+ | <li> Přidat Binding na portu 80 (IIS Manager > Server > Sites > enTeam.WebGui > Bindings…) | ||
+ | </li> | ||
+ | </ol> | ||
+ | Binding na portu 80 je vhodné přidat pro případ, kdy uživatel zadá do prohlížeče adresu bez uvedení protokolu. V takovém případě prohlížeč volá server na portu 80 (http). Doporučuje se, aby webový server v takovém případě provedl okamžité a bezpodmínečné přesměrování uživatele na port 443 (https). | ||
+ | |||
+ | === Nastavení webového GUI === | ||
+ | ==== Soubor enteam-api-config.json ==== | ||
+ | Pro správné fungování webového GUI je třeba nastavit napojení na webové API. Toto nastavení je uloženo v souboru {{FileName|enTeam.WebGui/assets/config/enteam-api-config.json}}. | ||
+ | <ol> | ||
+ | <li>Pokud v adresáři aplikace webového GUI dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru {{FileName|enTeam.WebGui/assets/config/enteam-api-config.template.json}} </li> | ||
+ | <li>Soubor upravte dle zvoleného způsobu provozování webového API. | ||
+ | Příklad nastavení:<br> | ||
+ | {{FileCont6Lines| | ||
+ | 1={| | ||
+ | 2= "language": "cze",| | ||
+ | 3= "apiProtocol": "https",| | ||
+ | 4= "apiServer": "enteam.<doména>.cz",| | ||
+ | 5= "apiPort": "443"| | ||
+ | 6=} }}<br> | ||
+ | |||
+ | Hodnotu vlastnosti apiServer nastavte na doménu, na které má být aplikace webového GUI dostupná, zvolenou v předpokladu č. 1. Přesměrování na aplikaci webového API bude provedeno pomocí přesměrovačích pravidel definovaných v souboru web.config (viz následující odstavec). | ||
+ | </li> | ||
+ | </ol> | ||
+ | |||
+ | ==== Soubor web.config ==== | ||
+ | Pro správné fungování webového rozhraní informačního systému enTeam je třeba nastavit: | ||
+ | * Přesměrování nešifrované komunikace na protokol HTTPS | ||
+ | * Předání dotazů na webové API webové aplikaci vytvořené v kapitole 3 Postup instalace webového API | ||
+ | * Nastavení HTTP hlaviček pro kešování souborů aplikace na zařízení uživatelů po rozumně dlouhou dobu | ||
+ | Toho lze docílit pomocí souboru {{FileName|web.config}} dle následujícího postupu: | ||
+ | # Pokud v adresáři aplikace webového GUI dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru {{FileName|web.template.config}} | ||
+ | Soubor {{FileName|web.template.config}} obsahuje všechna potřebná nastavení s implicitními hodnotami. Hodnoty je možné v případě potřeby změnit. | ||
+ | |||
+ | === Ověření funkčnosti === | ||
+ | Pro ověření dostupnosti webového GUI vložte do webového prohlížeče adresu, na které má být GUI dostupné, tedy např.<br> | ||
+ | <nowiki>https://enteam.<doména>.cz</nowiki><br> | ||
+ | Pokud se v prohlížeči zobrazí přihlašovací stránka webového rozhraní informačního systému enTeam a do aplikace je možné se přihlásit, je webové GUI nainstalováno správně.<br> | ||
+ | [[Soubor:LoginToWebEnteam.png|Login to enTeam]]<br> | ||
+ | |||
+ | == Často kladené otázky (FAQ) == | ||
+ | |||
+ | === Pod uživatelem se nelze připojit z enTeam.WebApi do DB Firebird 3.0+. Spojení z ostatních aplikací enTeam pod stejným uživatelem funguje === | ||
+ | Firebird verze 3.0 představil novou metodu autentizace uživatelů – Secure Remore Password (SRP). Zatímco ostatní aplikace enTeam používají stávající metody autentizace, webové API se připojuje pomocí technologie využívající nejmodernější metodu SRP. | ||
+ | |||
+ | |||
+ | Každý databázový uživatel musí být založen právě tolikrát, kolika metodami se pod ním snažíme k DB připojit. Výpis všech uživatelů a jejich autentizačních metod lze získat SQL příkazem | ||
+ | |||
+ | {{Command|SELECT U.SEC$USER_NAME, U.SEC$PLUGIN FROM SEC$USERS U;}} | ||
+ | |||
+ | |||
+ | Pokud ve Vaší DB chybí záznam uživatele s metodou autentizace SRP, lze jej přidat SQL příkazem | ||
+ | |||
+ | {{Command|CREATE USER <uživatel> PASSWORD '<heslo>' USING PLUGIN Srp;}} | ||
+ | |||
+ | |||
+ | Typicky se tato situace objevuje u uživatele teambridge, pod jehož identitou se webové API připojuje do DB. Situace může nastat ale i u jiných uživatelů. | ||
+ | |||
+ | === Ověření funkčnosti webového API končí chybou 500 nebo 502 === | ||
+ | Pokud ověření funkčnosti webového API dle kapitoly [[#Ověření funkčnosti]] končí chybou 500 Internal Server Error, příp. 502 Bad Gateway, lze příčinu chyby zjistit dle následujícího postupu: | ||
+ | <ol> | ||
+ | <li> Otevřete aplikaci Příkazová řádka (cmd.exe) | ||
+ | </li> | ||
+ | <li> V Příkazové řádce přejděte do adresáře aplikace, ve které dochází k chybě, příkazem: | ||
+ | {{Command|cd <AplikaceAdresar>}}<br> | ||
+ | V příkazu nahraďte<br> | ||
+ | {{Command|<AplikaceAdresar>}} za plnou cestu k adresáři s instalací aplikace, která vykazuje uvedenou chybu (např. {{FileName|c:\inetpub\wwwroot\enTeam.WebApi}}) | ||
+ | </li> | ||
+ | <li> V Příkazové řádce spusťte požadovanou aplikaci<br> | ||
+ | {{Command|<DotnetAdresar>\dotnet.exe Leviom.enTeam.WebApi.dll}}<br> | ||
+ | V příkazu nahraďte<br> | ||
+ | {{Command|<DotnetAdresar>}} za plnou cestu k adresáři s instalací x86 varianty programu dotnet.exe (např. {{FileName|c:\Program Files (x86)\dotnet}}) | ||
+ | </li> | ||
+ | </ol> | ||
+ | V příkazové řádce se zobrazí výpis, z něhož by mělo být možné důvod nefunkčnosti aplikace zjistit. Pokud výpisu aplikace nerozumíte, kontaktujte, prosím, technickou podporu společnosti Leviom. | ||
+ | |||
+ | Pokud aplikace vypíše do příkazové řádky tento text:<br> | ||
+ | {{Command|1=Hosting environment: Production<br> | ||
+ | Content root path: c:\inetpub\wwwroot\enTeam.WebApi <span style="color: red">(může se lišit)</span><br> | ||
+ | Now listening on: <nowiki>http://localhost:5000</nowiki><br> | ||
+ | Application started. Press Ctrl+C to shut down.}},<br> | ||
+ | byly odstraněny všechny chyby a aplikace je plně funkční. V takovém případě ji lze v Příkazové řádce ukončit stiskem Ctrl+C a znovu ověřit její funkčnost z webového prohlížeče dle kapitoly [[#Ověření funkčnosti]]. |
Aktuální verze z 30. 6. 2021, 13:45
Obsah
O aplikaci
Informační systém enTeam zajišťuje řízení a správu firemních dokumentů, komunikaci uvnitř pracovního týmu a flexibilní automatizaci firemních procesů.
Pro zprovoznění webového rozhraní informačního systému enTeam je třeba provést instalaci a nastavení:
- Webového API (aplikační rozhraní) a
- Webového GUI (grafické uživatelské rozhraní)
Popis zprovoznění každé z těchto částí je uveden v samostatné kapitole tohoto postupu.
Instalační soubory webového rozhraní jsou součástí instalačního ZIP archivu. V návodu jsou uvedeny relativní cesty k souborům a adresářům (vždy začínají adresářem enTeam.WebApi nebo enTeam.WebGui, tj. jedním z adresářů umístěných na první úrovni vnoření v uvedeném archivu).
Pro přehlednost jsou názvy souborů a adresářů v celém postupu instalace označeny technickým písmem. Názvy adresářů a souborů obsažené v uvedeném ZIP archivu jsou navíc zvýrazněny červenou barvou.
Dále jsou v tomto postupu uvedeny příklady částí souborů. Takové texty jsou označeny modrou barvou.
Předpoklady instalace webového rozhraní
Webové rozhraní informačního systému enTeam využívá k připojení do databáze dvou způsobů. Prvním z nich je přímé připojení do databáze pomocí databázového klienta. Druhým způsobem je připojení pomocí OLE rozhraní, které je součástí standardního desktopového klienta aplikace enTeam.
Server, kde bude webové rozhraní provozováno, proto musí mít:
- Funkční enTeam verze 6.0.0.3 nebo novější – serverovou (hlavní) nebo klientskou instalaci a
- Funkční webový server Internet Information Services (IIS) verze 10 nebo novější nainstalovaný na serveru, kde je zprovozněn IS enTeam
Instalace webového API
Webové API je kolekce webových služeb poskytující přístup k datům modulů aplikace enTeam.
Aktuálně podporované DBMS jsou Firebird, Microsoft SQL Server a Oracle. Požadovanou strukturu databáze je nutné vytvořit dodanými SQL skripty (viz #Postup instalace). Strukturu lze vytvořit:
- Individuálně, tj. samostatná databáze koexistující vedle stávající databáze enTeam, nebo
- Přidat do aktuální databáze enTeam
Na vytvořenou strukturu databáze je pak potřeba nasměrovat aplikaci (viz #Soubor appsettings.json)
Předpoklady
- Funkční ASP.NET Core Runtime 5.0 (např. 5.0.7 nebo novější)
- https://dotnet.microsoft.com/download/dotnet/5.0
- Stáhnout a nainstalovat „Hosting Bundle“
- Instalované následující komponenty IIS (instalaci lze ověřit a příp. provést přes aplikaci Server Manager > Manage > Add Roles and Features)
- Web Server (IIS) > Web Server > Application Development > .NET Extensibility 4.X
- Web Server (IIS) > Web Server > Application Development > ASP.NET 4.X
- Existence databázového uživatele (typicky teambridge), pod kterým se bude webové API přihlašovat do databáze. V případě databázového serveru Firebird musí existovat uživatel s metodou autentizace SRP (viz #Pod uživatelem se nelze připojit z enTeam.WebApi do DB Firebird 3.0+. Spojení z ostatních aplikací enTeam pod stejným uživatelem funguje).
Postup instalace
Instalace sestává z následujících kroků:
- Založit databázové struktury pro webovou část enTeam
Poznámka: Uvedený postup popisuje vytvoření databázových struktur pro webovou část enTeam ve stávající databázi informačního systému enTeam. Struktury lze založit i v samostatné databázi vytvořené za tímto účelem.- Otevřete aplikaci Příkazová řádka (cmd.exe)
- Spusťte SQL skripty
- Máte-li databázový server Firebird:
V Příkazové řádce vykonejte následující příkazy:
<FirebirdAdresar>\isql -user sysdba -password <Heslo> <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\Firebird\waFirebird_001.sql
<FirebirdAdresar>\isql -user sysdba -password <Heslo> <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\Firebird\waFirebird_002.sql
V příkazu nahraďte:- <FirebirdAdresar> za cestu k adresáři s instalací Firebird (např. c:\Program Files (x86)\Firebird),
- <Heslo> za heslo uživatele sysdba,
- <Databaze> za cestu k databázi informačního systému enTeam,
- <ZipAdresar> za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam
- Máte-li databázový server Microsoft SQL Server:
V Příkazové řádce vykonejte následující příkazy:
sqlcmd -U teambridge -d <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\SqlServer\waSqlServer_001.sql
sqlcmd -U teambridge -d <Databaze> -i <ZipAdresar>\enTeam.WebApi\sql\SqlServer\waSqlServer_002.sql
V příkazu nahraďte:- <Databaze> za název databáze informačního systému enTeam,
- <ZipAdresar> za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam
Cannot find the user 'teambridge', because it does not exist or you do not have permission.
Varování se zobrazí v případě, že nedošlo k vykonání příkazů GRANT. To nastane v případě, že databázový uživatel teambridge již je vlastníkem vytvořených tabulek. Varování lze proto ignorovat. - Máte-li databázový server Oracle:
V Příkazové řádce vykonejte následující příkaz: exit | sqlplus.exe teambridge/<Heslo>@//<Server>/<Databaze> @<ZipAdresar>\enTeam.WebApi\sql\Oracle\waOracle_002.sql
V příkazu nahraďte- <Heslo> za heslo uživatele teambridge,
- <Server> IP nebo hostname databázového serveru Oracle,
- <Databaze> za název databáze informačního systému enTeam,
- <ZipAdresar> za cestu k adresáři s extrahovaným ZIP archivem s instalačními soubory webového rozhraní enTeam
- Máte-li databázový server Firebird:
- Vytvořit adresář enTeam.WebApi v kořenovém adresáři webového serveru (např. c:\inetpub\wwwroot)
- Zkopírovat obsah adresáře enTeam.WebApi\bin do adresáře enTeam.WebApi, vytvořeného v předchozím kroku
- V IIS Manageru přidat nový aplikační pool pro webové API (IIS Manager > Server > Application Pools > Add Application Pool…)
- V rozšířených nastaveních aplikačního poolu musí být nastaveno
- .NET CLR Version = No Managed Code
- Enable 32-Bit Applications = true
- Identity = Local System
- V IIS Manageru vytvořit novou webovou stránku pro webové API (pojmenovanou např. enTeam.WebApi) a přiřadit jí vlastní port (např. 8088).
Poznámka: Pokud je uvedený port na serveru již obsazen jinou aplikací, použijte libovolný jiný. Zvolený port je ale nutné reflektovat ve všech krocích tohoto postupu.
Poznámka: Pro účely webového rozhraní enTeam stačí, aby byl zvolený port dostupný na serveru, na který webové API instalujeme. Není tedy třeba a nedoporučuje se povolovat přístup na tento port z jiných zařízení.
Nastavení webového API
Soubor appsettings.json
V aplikaci webového API nastavte soubor appsettings.json dle následujícího postupu.
- Pokud v adresáři aplikace webového API dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru appsettings.Template.json
Poznámka: Klíče (ve struktuře JSON souboru), které začínají znakem (nebo více znaky) #, jsou považovány za zakomentované a slouží pouze jako ilustrace možného nastavení. Po nastavení hodnot v souboru appsettings.json, je možné zakomentované řádky zcela odstranit (pozor ale na případné porušení syntaxe JSON, např. čárky mezi vlastnostmi) - Správně nastavte připojení k databázi webové části aplikace enTeam (viz #Postup instalace), tj. klíč WebApiDb a jeho vlastnosti Provider a ConnectionString. Ostatní vlastnosti klíče WebApiDb deaktivujte zakomentováním (nebo odstraňte) dle předchozí poznámky.
- Dále nastavte přístup k původní databázi (popř. databázím) aplikace enTeam (tj. obdoba nastavení databáze ze sekcí [M/USER], [M/TeamBridge] atd., ve standardním INI produktu enTeam). Jde o klíče DataDictionaryDb, ScriptExDb, UserDb a WorkflowManagerDb a jejich vlastnosti Provider a ConnectionString
Poznámka: Pokud jsou některé (nebo všechny) databáze spojené a vlastnosti Provider a ConnectionString by se v různých klíčích konfigurace opakovaly, lze tyto nahradit implicitním nastavením – klíčem Default.
Poznámka: V případě databázového serveru Firebird obsahuje vlastnost ConnectionString plnou cestu k souboru databáze (např. C:\enTeam\Files\Data\enTeam.fdb). Aby byla aplikace webového API schopna vlastnost ConnectionString přečíst, je třeba zpětná lomítka v cestě k souboru „zdvojit“. Cesta k databázi pak bude v hodnotě vlastnosti ConnectionString např. tato:
"ConnectionString":"Database=SERVER:C:\\enTeam\\Files\\Data\\enTeam.fdb;…"
INI soubor webového API
Webové API pro svůj běh potřebuje pozměněné INI oproti desktopu. Vytvořte kopii souboru serie_m.ini, ke které bude přistupovat pouze webové API (např. <enTeamAdresar>\Ini\serie_m.WebApi.ini) a přidejte do něj následující obsah
[M/TeamBridge]
ServerEngine=True
Soubor web.config
Pro běh webového API je třeba nastavit proměnnou prostředí SERIEM tak, aby odkazovala na soubor serie_m.WebApi.ini (viz #INI soubor webového API). Toho lze docílit úpravou souboru web.config (uvnitř elementu aspNetCore) dle následujícího postupu:
- Pokud v adresáři aplikace webového API dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru web.Template.config
-
Správně nastavte proměnnou SERIEM v souboru web.config
Příklad nastavení proměnné SERIEM:
<aspNetCore
processPath="c:\Program Files (x86)\dotnet\dotnet.exe"
arguments=".\Leviom.enTeam.WebApi.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable
name="SERIEM"
value="<enTeamAdresar>\Ini\serie_m.WebApi.ini" />
</environmentVariables>
</aspNetCore>
Používáte-li 64bitový OS, zajistěte, aby se používala x86 varianta programu dotnet.exe. Nejjednodušší je upravit soubor web.config tak, že nastavíte plnou cestu k programu v atributu processPath elementu aspNetCore (viz ukázka výše). -
V IIS Manageru ověřte, zda máte na serveru nainstalovaný modul WebDAV (IIS Manager > Server > Modules). Pokud se v seznamu instalovaných modulů nevyskytuje WebDAVModule, odstraňte ze souboru web.config následující sekci.
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
Ověření funkčnosti
Nyní je možné ověřit, zda je aplikace webového API správně nakonfigurovaná a běží (tj. zda odpovídá na požadavky).
Na serveru, kde má aplikace webového API běžet, vložte do internetového prohlížeče následující URL (pokud bylo v bodě 6 kapitoly #Postup instalace aplikaci přiřazeno jiné číslo portu, je třeba URL patřičně upravit).
http://localhost:8088/
Pokud aplikace webového API běží, pak by měla vždy být zobrazena odpověď v následujícím formátu.
Leviom.enTeam.WebApi, Version=<verze>, Culture=neutral, PublicKeyToken=null
Pokud není ověření funkčnosti aplikace úspěšné, pokračujte zjištěním příčiny chyby dle #Ověření funkčnosti webového API končí chybou 500 nebo 502 a po vyřešení problému znovu ověřte funkčnost aplikace z internetového prohlížeče.
Poznámka: Některé webové prohlížeče uvedenou odpověď nezobrazí, ale nebídnou ke stažení jako soubor. V takovém případě ověřte obsah staženého souboru.
Instalace webového GUI
Webové GUI (grafické uživatelské rozhraní) informačního systému enTeam je webová aplikace běžící ve webovém prohlížeči uživatele. Webové GUI komunikuje s informačním systémem enTeam prostřednictvím webového API (viz #Instalace webového API).
Předpoklady
- Doména, na které budete webové rozhraní informačního systému enTeam provozovat (např. enteam.<doména>.cz)
- Zajistit směrování URL na správný server (v DNS), popř. zajistit dostupnost serveru na síťové úrovni (z intranetu nebo internetu)
- SSL certifikát pro zajištění šifrované komunikace (na protokolu HTTPS) mezi webovým GUI a uživateli aplikace
- Pokud není nainstalovaný modul URL Rewrite, přidat jej přes Web Platform Installer (https://www.iis.net/downloads/microsoft/url-rewrite) Poznámka: Po přidání rozšíření přes Web Platform Installer je nutné zavřít a znovu otevřít IIS Manager, aby bylo zobrazeno nové rozšíření
- V nastavení modulu URL Rewrite webové stránky enTeam.WebGui povolte použití následujících proměnných serveru (IIS Manager > Server > Sites > enTeam.WebGui > URL Rewrite > View Server Variables…)
- HTTP_X_FORWARDED_HOST
- HTTP_X_FORWARDED_PROTO
- HTTP_X_FORWARDED_SCHEMA
- Pokud není nainstalovaný modul Application Request Routing, přidat jej přes Web Platform Installer (https://www.iis.net/downloads/microsoft/application-request-routing)
Poznámka: Po přidání rozšíření přes Web Platform Installer je nutné zavřít a znovu otevřít IIS Manager, aby bylo zobrazeno nové rozšíření - V nastavení modulu Application Request Routing povolit Cache (IIS Manager > Server > Application Request Routing Cache > Server Proxy Settings… > Enable Proxy – zaškrtnout a potvrdit tlačítkem Apply v sekci Actions v pravém sloupci aplikace IIS Manager)
Postup instalace
Webové GUI instalujeme jako samostatnou webovou stránku ve webovém serveru IIS. Instalace sestává z následujících kroků:
- Zkopírovat adresář enTeam.WebGui do kořenového adresáře webového serveru (např. c:\inetpub\wwwroot)
- V aplikaci IIS Manager vytvořit novou webovou stránku (site) pro webové GUI a stránce přiřadit platný SSL certifikát
- Přidat Binding na portu 80 (IIS Manager > Server > Sites > enTeam.WebGui > Bindings…)
Binding na portu 80 je vhodné přidat pro případ, kdy uživatel zadá do prohlížeče adresu bez uvedení protokolu. V takovém případě prohlížeč volá server na portu 80 (http). Doporučuje se, aby webový server v takovém případě provedl okamžité a bezpodmínečné přesměrování uživatele na port 443 (https).
Nastavení webového GUI
Soubor enteam-api-config.json
Pro správné fungování webového GUI je třeba nastavit napojení na webové API. Toto nastavení je uloženo v souboru enTeam.WebGui/assets/config/enteam-api-config.json.
- Pokud v adresáři aplikace webového GUI dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru enTeam.WebGui/assets/config/enteam-api-config.template.json
- Soubor upravte dle zvoleného způsobu provozování webového API.
Příklad nastavení:
{
"language": "cze",
"apiProtocol": "https",
"apiServer": "enteam.<doména>.cz",
"apiPort": "443"
}
Hodnotu vlastnosti apiServer nastavte na doménu, na které má být aplikace webového GUI dostupná, zvolenou v předpokladu č. 1. Přesměrování na aplikaci webového API bude provedeno pomocí přesměrovačích pravidel definovaných v souboru web.config (viz následující odstavec).
Soubor web.config
Pro správné fungování webového rozhraní informačního systému enTeam je třeba nastavit:
- Přesměrování nešifrované komunikace na protokol HTTPS
- Předání dotazů na webové API webové aplikaci vytvořené v kapitole 3 Postup instalace webového API
- Nastavení HTTP hlaviček pro kešování souborů aplikace na zařízení uživatelů po rozumně dlouhou dobu
Toho lze docílit pomocí souboru web.config dle následujícího postupu:
- Pokud v adresáři aplikace webového GUI dosud takový soubor nemáte, pak jej vytvořte zkopírováním souboru web.template.config
Soubor web.template.config obsahuje všechna potřebná nastavení s implicitními hodnotami. Hodnoty je možné v případě potřeby změnit.
Ověření funkčnosti
Pro ověření dostupnosti webového GUI vložte do webového prohlížeče adresu, na které má být GUI dostupné, tedy např.
https://enteam.<doména>.cz
Pokud se v prohlížeči zobrazí přihlašovací stránka webového rozhraní informačního systému enTeam a do aplikace je možné se přihlásit, je webové GUI nainstalováno správně.
Často kladené otázky (FAQ)
Pod uživatelem se nelze připojit z enTeam.WebApi do DB Firebird 3.0+. Spojení z ostatních aplikací enTeam pod stejným uživatelem funguje
Firebird verze 3.0 představil novou metodu autentizace uživatelů – Secure Remore Password (SRP). Zatímco ostatní aplikace enTeam používají stávající metody autentizace, webové API se připojuje pomocí technologie využívající nejmodernější metodu SRP.
Každý databázový uživatel musí být založen právě tolikrát, kolika metodami se pod ním snažíme k DB připojit. Výpis všech uživatelů a jejich autentizačních metod lze získat SQL příkazem
SELECT U.SEC$USER_NAME, U.SEC$PLUGIN FROM SEC$USERS U;
Pokud ve Vaší DB chybí záznam uživatele s metodou autentizace SRP, lze jej přidat SQL příkazem
CREATE USER <uživatel> PASSWORD '<heslo>' USING PLUGIN Srp;
Typicky se tato situace objevuje u uživatele teambridge, pod jehož identitou se webové API připojuje do DB. Situace může nastat ale i u jiných uživatelů.
Ověření funkčnosti webového API končí chybou 500 nebo 502
Pokud ověření funkčnosti webového API dle kapitoly #Ověření funkčnosti končí chybou 500 Internal Server Error, příp. 502 Bad Gateway, lze příčinu chyby zjistit dle následujícího postupu:
- Otevřete aplikaci Příkazová řádka (cmd.exe)
- V Příkazové řádce přejděte do adresáře aplikace, ve které dochází k chybě, příkazem:
cd <AplikaceAdresar>
V příkazu nahraďte
<AplikaceAdresar> za plnou cestu k adresáři s instalací aplikace, která vykazuje uvedenou chybu (např. c:\inetpub\wwwroot\enTeam.WebApi) - V Příkazové řádce spusťte požadovanou aplikaci
<DotnetAdresar>\dotnet.exe Leviom.enTeam.WebApi.dll
V příkazu nahraďte
<DotnetAdresar> za plnou cestu k adresáři s instalací x86 varianty programu dotnet.exe (např. c:\Program Files (x86)\dotnet)
V příkazové řádce se zobrazí výpis, z něhož by mělo být možné důvod nefunkčnosti aplikace zjistit. Pokud výpisu aplikace nerozumíte, kontaktujte, prosím, technickou podporu společnosti Leviom.
Pokud aplikace vypíše do příkazové řádky tento text:
Hosting environment: Production
Content root path: c:\inetpub\wwwroot\enTeam.WebApi (může se lišit)
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.,
byly odstraněny všechny chyby a aplikace je plně funkční. V takovém případě ji lze v Příkazové řádce ukončit stiskem Ctrl+C a znovu ověřit její funkčnost z webového prohlížeče dle kapitoly #Ověření funkčnosti.