Otázky & Odpovědi
Zde najdete seznam nejčastějších otázek a odpovědí na ně. Otázky se mohou týkat technických problémů, informací ohledně licencování, nákupu portálu, instalace portálu, tipy a triky k používání portálu a cokoliv dalšího, co souvisí s aplikací Enterprise Architect Information Portal.
- Admin nemá automatický přístup do repozitory
- Automatické přihlašování windows serveru
- Co se stane, pokud uživatel připojil EA repozitář do infoportálu a následně zmigroval databázová data?
- Chyba při migraci
- InfoportLauncher nechce nainstalovat verzi přes „-Source file“
- Jak se poprvé administrátor přihlásí do Infoportu?
- Jaké je požadované EA schéma pro připojení EA repozitáře?
- Lze přejmenovat soubor EaInfoport.exe?
- Mohu mít zaregistrovaných více personal licencí?
- Nastavení rozměru elementu na diagramu
- Databázová chyba "Unable to convert MySQL date/time to System.DateTime"
- Nefunguje vyhledávání s českými znaky
- Nejde synchronizace uživatele proti Enterprise Architect
- Nekonzistence collations (MySQL, MariaDB)
- Nelze vidět nové modely v Infoportálu se základními oprávněními
- Není podporována funkce "zpět" prohlížečem
- Obrázek diagramu je příliš malý
- Po editaci se neobjeví změna v Enterprise Achitect
- Pokud nelze připojit EA repository kvůli špatnému heslu k EAP (Cesta k EAP souboru, Uživatelské jméno nebo Heslo není validní)
- Problém s licenčním klíčem
- Proč nejde LDAP přihlášení/odhlášení?
- Špatné zobrazení detailu
- Špatné zobrazení detailu
- Špatné zobrazení diagramu
- Verze 8.4.0.12 - nové oprávnění na pohledy
- Oprávnění pro skupiny/uživatele v případě použití funkce "URL pro přímý přístup"
- Defaultní nastavení na balíčku
- Defaultní nastavení a nastavení oprávnění na package
- Nastavení SSL komunikace pro připojení EAInfoportu a PostgreSQL databáze
- Co dělat když se nepodaří nainstalovat nová verze EA Infoport a potřebujete spustit původní verzi??
- Po instalaci verze EA Infoport 8.7.0.8956 se nezobrazují ikonky na vytvoření přístupových klíčů (permalinků)
- Chybějící oprávnění Repository během přihlášení přes AD nebo OpenID
- Automatizované nastavování práv pro uživatele či skupinu, přes DB
- Řazení artefaktů a operací
- Chyba při instalaci verze 8.8.x "Could not load file or assembly"
- Chyba [ERR] Email 'xxx.yyy@xxxx.cz' is already taken
- Chyba [ERR] User 'xxx.yyy@xxxxx.cz' had once existed and was deleted from the portal. If you need to restore him, contact the portal administrator please.
- Micrsosoft databáze (sql sever 2014 a starší) - chyba Microsoft.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near '$'.
- "Diagram se přegenerovává" po níž vzápětí následuje druhá chybová "Systémová chyba"
- Jeden z uživatelů se nemůže přihlásit do Infoportu
- Nefunguje-li XFrame
Admin nemá automatický přístup do repozitory
Otázka
Od verze 8.5.0.8563 se admin nemůže dostat do repozitory?
Odpověď
Nově z auditních důvodů, nemá admin (správce portálu) automaticky přiřazený přístup do repozitory. Po rozkliknutí šipky v levém horním rohu, vidí pouze seznam vytvořených repozitory.
V případě potřeby je nutné přes "Správa portálu">"Správa uživatelů" >"Seznam uživatelů" nastavit oprávnění do požadovaných repozitory.
Automatické přihlašování windows serveru
Edit: od Windows Server 2019 platí následujícíc postup (ale Autolog platí stále):
EA Infoport a některé další tooly běží pouze pokud je na serveru přihlášen uživatel (tj. nelze je provozovat jako windows service). To je způsobeno tím, že tyto tooly pracují s grafickou vrstvou a ta není, systémovým službám, dostupná.
Tento problém lze vyřešit nastavením automatického přihlašování, vybraného uživatele, na server a to několika způsoby viz:
Varianta User Management Applet
Full steps:
Disabling CTRL+ALT+DEL logon requirement
- Start
- Type 'Local Security Policy' (no quotes) and click on item matching this name
- Open 'Local Policies'
- Open 'Security Options'
- Locate Policy called 'Interactive logon: Do not require CTRL+ALT+DEL'
- Double click on it
- Set to 'Enabled'
To set auto-login account
- Start > Run > netplwiz (as explained in other answers)
- Un-tick "Users must enter a user name and password to use this computer."
- Provide login credentials to be used for auto-logon
After applying this change and rebooting the server it managed to successfully auto-login to the account I had provided.
Varianta Autologon
https://docs.microsoft.com/en-us/sysinternals/downloads/autologon
https://docs.microsoft.com/en-us/windows/win32/secauthn/protecting-the-automatic-logon-password
Autologon v3.10
By Mark Russinovich
Published: August 29, 2016
Download Autologon (495 KB)
Run now from Sysinternals Live.
Introduction
Autologon enables you to easily configure Windows’ built-in autologon mechanism. Instead of waiting for a user to enter their name and password, Windows uses the credentials you enter with Autologon, which are encrypted in the Registry, to log on the specified user automatically.
[!WARNING] Although the password is encrypted in the registry as an LSA secret, a user with administrative rights can easily retrieve and decrypt it. (For more information see Protecting the Automatic Logon Password )
Autologon is easy enough to use. Just run autologon.exe, fill in the dialog, and hit Enable. The next time the system starts, Windows will try to use the entered credentials to log on the user at the console. Note that Autologon does not verify the submitted credentials, nor does it verify that the specified user account is allowed to log on to the computer.
To turn off auto-logon, hit Disable. Also, if the shift key is held down before the system performs an autologon, the autologon will be disabled for that logon. You can also pass the username, domain and password as command-line arguments:
autologon user domain password
Note: When Exchange Activesync password restrictions are in place, Windows will not process the autologon configuration.
Download Autologon (495 KB)
Run now from Sysinternals Live.
#include <windows.h>
#include <stdio.h>
DWORD UpdateDefaultPassword(WCHAR * pwszSecret)
{
LSA_OBJECT_ATTRIBUTES ObjectAttributes;
LSA_HANDLE LsaPolicyHandle = NULL;
LSA_UNICODE_STRING lusSecretName;
LSA_UNICODE_STRING lusSecretData;
USHORT SecretNameLength;
USHORT SecretDataLength;
NTSTATUS ntsResult = STATUS_SUCCESS;
DWORD dwRetCode = ERROR_SUCCESS;
// Object attributes are reserved, so initialize to zeros.
ZeroMemory(&ObjectAttributes, sizeof(ObjectAttributes));
// Get a handle to the Policy object.
ntsResult = LsaOpenPolicy(
NULL, // local machine
&ObjectAttributes,
POLICY_CREATE_SECRET,
&LsaPolicyHandle);
if( STATUS_SUCCESS != ntsResult )
{
// An error occurred. Display it as a win32 error code.
dwRetCode = LsaNtStatusToWinError(ntsResult);
wprintf(L"Failed call to LsaOpenPolicy %lu\n", dwRetCode);
return dwRetCode;
}
// Initialize an LSA_UNICODE_STRING for the name of the
// private data ("DefaultPassword").
SecretNameLength = (USHORT)wcslen(L"DefaultPassword");
lusSecretName.Buffer = L"DefaultPassword";
lusSecretName.Length = SecretNameLength * sizeof(WCHAR);
lusSecretName.MaximumLength =
(SecretNameLength+1) * sizeof(WCHAR);
// If the pwszSecret parameter is NULL, then clear the secret.
if( NULL == pwszSecret )
{
wprintf(L"Clearing the secret...\n");
ntsResult = LsaStorePrivateData(
LsaPolicyHandle,
&lusSecretName,
NULL);
dwRetCode = LsaNtStatusToWinError(ntsResult);
}
else
{
wprintf(L"Setting the secret...\n");
// Initialize an LSA_UNICODE_STRING for the value
// of the private data.
SecretDataLength = (USHORT)wcslen(pwszSecret);
lusSecretData.Buffer = pwszSecret;
lusSecretData.Length = SecretDataLength * sizeof(WCHAR);
lusSecretData.MaximumLength =
(SecretDataLength+1) * sizeof(WCHAR);
ntsResult = LsaStorePrivateData(
LsaPolicyHandle,
&lusSecretName,
&lusSecretData);
dwRetCode = LsaNtStatusToWinError(ntsResult);
}
LsaClose(LsaPolicyHandle);
if (dwRetCode != ERROR_SUCCESS)
wprintf(L"Failed call to LsaStorePrivateData %lu\n",
dwRetCode);
return dwRetCode;
}
Co se stane, pokud uživatel připojil EA repozitář do infoportálu a následně zmigroval databázová data?
Otázka
Co se stane, pokud uživatel připojil EA repozitář do infoportálu a následně zmigroval databázové data?
Odpověď
Infoportál nebude schopen správně vyhodnocovat svá vlastní oprávnění na balíčkách.
Bylo přidáno nové tlačítko do editace repozitáře, které vynuluje veškeré nastavení oprávnění na balíčkách a vyřeší problém se zmigrovanou repozitáří.
Chyba při migraci
Otázka
Co dělat, když se při migraci objeví chyba typu
(Column 'AspNetUsers.Id' is not of same collation as referencing column 'VisitedDetails.UserId' in foreign key 'FK_VisitedDetails_AspNetUsers_UserId'.
Could not create constraint or index. See previous errors.) ?
Odpověď
Ověřte si, jestli databázové tabulky a databázové schéma mají stejný collation.
InfoportLauncher nechce nainstalovat verzi přes „-Source file“
Otázka:
InfoportLauncher nechce nainstalovat verzi přes „-Source file“, v cmd vyskakuje "Update site is not available"
Odpověď:
Ve složce s InfoportLauncher nesmí být jiný zip než s Infoportem, launcher projíždí všechny .zip soubory a hledá .zip, který má nainstalovat.
Jak se poprvé administrátor přihlásí do Infoportu?
Otázka
Jak se administrátor poprvé přihlásí do Infoportu ?
Odpověď
Administrátor se poprvé přihlásí pomocí přihlašovacích údajů:
Uživatelské jméno: admin
Heslo: P@ssw0rd
Po prvním přihlášení doporučujeme změnit heslo!
Jaké je požadované EA schéma pro připojení EA repozitáře?
Otázka:
Jaké je požadované EASchema pro připojení EA modelu?
Odpověď:
Databázový server MySQL se schématem minimálně EASchema_1220_MySQL.sql, naše doporučení EASchema_1558_MySQL.sql. (Pozn. EASchema_851_MySQL.sql nefunguje).
Lze přejmenovat soubor EaInfoport.exe?
Otázka
Lze přejmenovat soubor EaInfoport.exe?
Odpověď
Ne, InfoportLauncher by nebyl schopen rozpoznat aktuálně běžící verzi.
Mohu mít zaregistrovaných více personal licencí?
Otázka
Mohu mít zaregistrovaných více osobních (personal) licencí?
Odpověď
Ano, pokud budete dodržovat pravidla licencování, můžete mít zaregistrovaný libovolných počet osobních (nebo také NP-EDU, které se to rovněž týká) licencí.
Nastavení rozměru elementu na diagramu
Otázka
Po přidání elementu na diagram má element špatný rozměr. Co dělat?
Odpověď
V aplikaci Enterprise Architect kliknete na Configure, poté Options. V otevřeném okně kliknete na Cloud a zaškrtněte volbu Auto create Diagram Image and Image Map (each time a Diagram is saved).
Je potřeba nastavení u každého projektu!
Databázová chyba "Unable to convert MySQL date/time to System.DateTime"
Otázka
Co dělat, když se objeví chyba Unable to convert MySQL date/time to System.DateTime, set AllowZeroDateTime=True or ConvertZeroDateTime=True in the connection string. See https://mysqlconnector.net/connection-options/ ?
Odpověď
Pokud se objeví tato chyba, přidejte na konec connection stringu ConvertZeroDateTime=True;.
Nefunguje vyhledávání s českými znaky
Otázka
Ve fulltextovém vyhledávání se mi nezobrazují české znaky. Co je špatně?
Odpověď
Pravděpodobně nemáte na DB (instalace databáze, ve které máte vytvořenou repozitory EA) správně nastavené coalesce.
Nejde synchronizace uživatele proti Enterprise Architect
Otázka
Co dělat, když se mi uživatel nesynchronizuje proti Enterprise Architect ?
Odpověď
Ujistěte se, že má uživatel přístup do dané repositáře.
Administrátor portálu se nebere automaticky jako uživatel repositáře a musí být do repositáře exaktně přiřazen, jinak nebude propojen s Enterprise Architectem.
Nekonzistence collations (MySQL, MariaDB)
Otázka
Co mám dělat, když mám v databázi nekonzistenci collations (MySQL, MariaDB)?
Odpověď
Nasledující platí jen pro MySQL a MariaDB databázi :
Od verze 8.2 musí být collation schématu konzistentní s collation jednotlivých tabulek a sloupců jinak Infoport nedovolí zmigrovat. Admin databáze musí sjednotit collation na schématu.
Pro zobrazení collation na sloupečkách použijte query:
SELECT DISTINCT COLLATION_NAME
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'schemaName' AND TABLE_NAME <> '__EfMigrationsHistory' AND COLLATION_NAME IS NOT null
Pro zobrazení collation na tabulkách použijte query:
SELECT DISTINCT TABLE_COLLATION
FROM information_schema.`TABLES`
WHERE TABLE_SCHEMA = 'schemaName' AND TABLE_NAME <> '__EfMigrationsHistory'
Pro zobrazení collation na schématu použijte query:
SELECT DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'schemaName' AND TABLE_NAME <> '__EfMigrationsHistory'
Pro zobrazení tabulek, sloupců a jejich collation použijte query:
SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'schemaName'
AND COLLATION_NAME IS NOT NULL
AND TABLE_NAME <> '__EfMigrationsHistory'
GROUP BY TABLE_NAME, COLUMN_NAME, COLLATION_NAME
Sjednoťte prosím collation a znovu spusťte Infoport.
Pro sjednocení můžete použít tyto scripty:
Pro každou tabulku:
SELECT CONCAT('ALTER TABLE `', TABLE_NAME,
'` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
AS 'USE `DATABASE_NAME`;'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DATABASE_NAME'
AND TABLE_TYPE LIKE 'BASE TABLE'
Pro každý sloupec:
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME,'` ',
DATA_TYPE, IF(CHARACTER_MAXIMUM_LENGTH IS NULL
OR DATA_TYPE LIKE 'longtext', '', CONCAT('(', CHARACTER_MAXIMUM_LENGTH,
')')
), ' COLLATE utf8mb4_unicode_ci;') AS 'USE `DATABASE_NAME`;'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'DATABASE_NAME'
AND (SELECT INFORMATION_SCHEMA.TABLES.TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA =
INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA
AND INFORMATION_SCHEMA.TABLES.TABLE_NAME =
INFORMATION_SCHEMA.COLUMNS.TABLE_NAME
LIMIT 1) LIKE 'BASE TABLE'
AND DATA_TYPE IN ( 'char', 'varchar' ) /* include other types if necessary */
Pro více informací se obraťte na nás helpdesk https://www.dphelpdesk.cz/ .
Nelze vidět nové modely v Infoportálu se základními oprávněními
Otázka
Mám připojenou repozitář do Infoportálu. V Enterprise Architectu jsem vytvořil nový rootový node (nový model), ale v Infoportálu ho bohužel uživatel se základními oprávněními nevidí. Jak tento problém vyřešit?
Odpověď
Ve verzi 7.x je uživatel bohužel nucen smazat repozitář a znovu ho vytvořit.
Od verze 8.x je pro všechny přidáno tlačítko do editace repozitáře, které vyresetuje oprávnění a tím vytvoří defaultní oprávnění na nově vytvořeném modelu.
Uživatelé, kteří vlastní Medium Business Edition a výše mají též možnost si za admina repozitáře nebo vlastníka modelu nastavit toto defaultní oprávnění ručně přes záložku Oprávnění ve stromečku.
Není podporována funkce "zpět" prohlížečem
Otázka
Co dělat, když se chci vrátit zpátky funkci v prohlížeči z portálu ?
Odpověď
Při přechodu mezi repozitářemi nebo portálem není podporováno vrácení zpátky funkci prohlížečem.
Obrázek diagramu je příliš malý
Otázka
Obrázek diagramu vidím příliš malý. Čím to je?
Odpověď
Musí se nastavit hodnota diagramu na 400% a Image Memory Limit na 256 (Nastavení optimálního zoomu).
Po editaci se neobjeví změna v Enterprise Achitect
Otázka
Co dělat, když se po editaci v portálu změna neobjeví v Enterprise Architect?
Odpověď
Je potřeba v Enterprise Architect kliknout pravým tlačítkem na "package". Klikneme na "contents" a pak dáme "reload current package". Tím se nám balíček obnoví a změna se v Enterprise Architect propíše.
Pokud nelze připojit EA repository kvůli špatnému heslu k EAP (Cesta k EAP souboru, Uživatelské jméno nebo Heslo není validní)
Otázka
Pokud, během připojování EA repository, v konfiguračním manageru systém hlásí "Cesta k EAP souboru, Uživatelské jméno nebo Heslo není validní" a přitom jste si jistí, že jméno i cesta je správně, jak problém vyřešit?
Odpověď
- Znovu zkontrolovat jméno a heslo - ideálně zkopírovat cestu do clipboardu a spustit z příkazové řádky.
- Zkontrolovat zda není na začátku či konci hesla / uživatelského jména mezera.
- Vykopírovat EAP zástupce (popřípadě celý adresář EA infoportu) ze systémových složek do kořenového adresáře (např. do C:\EAInfoport). Pozor, systémové složky, do kterých Windows omezuje přístup, jsou například i Program Files a Program Files (x86)
Problém s licenčním klíčem
Otázka
Co dělat, když se vyskytne problém s licenčním klíčem?
Odpověď
- Je potřeba smazat configurační soubor appsettings.json v instalační složce infoportu, restartovat server a spustit základní localhost a znovu naconfigurovat aplikaci
- Nebo v appsettings nahradit licenční klíč
Proč nejde LDAP přihlášení/odhlášení?
Otázka
Proč nejde LDAP přihlášení/odhlášení?
Odpověď
Od verze 8.0.1.x jsme normalizovali Windows Autentizaci podle .Net 6 knihoven.
Windows uživatel, který není v LDAP se nebude moci přihlásit. Automaticky se budou přihlašovat jen uživatelé ověření proti LDAP a bez možnosti odhlášení.
Pro přihlášení mimo LDAP si bude muset správce přenastavit v appsettings.json položku AutomaticLogin v sekci LDAP na false a restartovat Infoport. Odebere se možnost automatického přihlášení, ale přes Login Page se bude moci ověřit i uživatel, který není v LDAP, ale jen v databázi.
Špatné zobrazení detailu
Otázka
Co dělat, když mám problémy se zobrazováním detailu?
Odpověď
V dynamickém detailu se musí nastavit šířka pole.
Špatné zobrazení detailu
Otázka
Co dělat, když mám problémy se zobrazováním detailu?
Odpověď
V dynamickém detailu se musí nastavit šířka pole.
Špatné zobrazení diagramu
Otázka
Co dělat, když na klientovi vidím špatně diagram, ale na portálu správně?
Odpověď
Pokud na klientovi vidíte špatně diagram (rozhozená grafika) a na serveru správně, může to být tím, že nemáte správně nainstalované MDG technologie.
Verze 8.4.0.12 - nové oprávnění na pohledy
Ve verzi 8.4.0.12 je přidáno nové oprávnění na pohledy (Views). Pro uživatele/skupiny s oprávněním na stromeček je nutné přidat i oprávnění na pohledy, jinak se pohled nezobrazí.
Od verze 8.4.1.1 není nutné nastavovat, každý uživatel či skupina s oprávněním ke stromečku repozitáře má rovněž přístup i k pohledům.
Oprávnění pro skupiny/uživatele v případě použití funkce "URL pro přímý přístup"
Otázka
Jak se uplatňují oprávnění pro skupiny / uživatele v případě použití funkce "URL pro přímý přístup"?
Odpověď
Funkčnost "URL pro přímý přístup" je vytvořena právě za tím účelem, aby se na zveřejněný link dostal kdokoliv, kdo ten link má. Proto je součástí odkazu i vygenerovaný security klíč. Pokud chcete čtenáře ověřit, nepoužívejte tuto funkčnost, ale funkci "Kopírovat url adresu" (pozor, není to to samé jako zkopírovat odkaz v browseru!)
Používá se to například tam, kde se autentizace + autorizace řeší jiným způsobem (Confluence, Sharepoint, nějaké dokumenty atd.) a nebo pokud prostě potřebujete, aby se na ten (například) diagram dostal opravdu každý, kdo na to klikne.
Nicméně, takto zveřejněného diagramu se čtenář dostane jen na detail elementů na diagramu umístněných, pokud by se chtěl prokliknout dál, například přes hyperlink, už to bude chtít přihlášení.
Uživatel může vytvořit url pro přímý přístup jen pokud na něj má sám práva.
Defaultní nastavení na balíčku
Otázka
Co se děje když není zaškrtnuté defaultní nastavení na balíčku?
Odpověď
Pokud není defaultní nastavení žádné tzn. nastavení se přebírá z nadřazeného rootového balíčku, tak není repository defaultně vidět, neboli čtení není povoleno.
Defaultní nastavení a nastavení oprávnění na package
Otázka
Jak funguje defaultní nastavení a nastavení oprávnění na package?
Odpověď
Nastavení oprávnění na package znázorňuje tabulka:
Parent | Default | Group | Personal | Result |
no | - | - | - | no |
no | no | - | - | no |
no | yes | - | - | yes |
no | x | - | no | no |
no | x | - | yes | yes |
no | x | no | - | no |
no | x | yes | - | yes |
no | x | no | no | no |
no | x | no | yes | yes |
no | x | yes | no (not possible)* | yes |
no | x | yes | yes | yes |
yes | - | - | - | yes |
yes | no | - | - | no |
yes | yes | - | - | yes |
yes | x | - | no | no |
yes | x | - | yes | yes |
yes | x | no | - | no |
yes | x | yes | - | yes |
yes | x | no | no | no |
yes | x | no | yes (not possible)* | no |
yes | x | yes | no | no |
yes | x | yes | yes | yes |
* V případě nastavení oprávnění na skupině se automaticky zaškrtne nastavení i na uživateli, který je členem skupiny.
- neuvedeno
x na hodnotě nezáleží
Defaultní nastavení se přebírá z nadřazeného balíčku.
Pokud není defaultní nastavení žádné (pouze u nově vytvořených Root), není repository defaultně vidět, neboli čtení není povoleno.
Admin má přístup ke všem package, bez ohledu na nastavení.
Vyhodnocení práv na podřízeném package nebere v úvahu, jakým způsobem byla práva vyhodnocena na nadřazeném package, ale do rozhodování vstupuje pouze výsledek vyhodnocení na parentovi (no/yes).
Nastavení SSL komunikace pro připojení EAInfoportu a PostgreSQL databáze
Otázka
Jak nastavit SSL komunikaci pro připojení EAInforportu a PostgreSQL databázi?
Odpověď
Následující postup je ověřený na instalaci PostgreSQL 13 a Infoport 8.7.x
Podrobný popis nastavení databáze je uvedený přímo v aktuální dokumentaci https://www.postgresql.org/docs/current/ssl-tcp.html který doporučujeme pečlivě prostudovat. Navíc je na stránce https://methoddev.com/blog/postgresql-windows-encrypted-connection-ssl uveden step-by-step postup, jak konfiguraci provést prakticky.
Pro ověření, zda je komunikace zabezpečená je vhodné použít následující sql dotaz, který je možné v databázi spustit:
SELECT application_name, datname, usename, ssl, client_addr
FROM pg_stat_ssl
INNER JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid;
Výsledek ukáže, jestli je daná session (konkrétní připojení aplikace - např. EAInfoport) zabezpečena pomocí ssl. Doporučujeme si toto ověřit, jak před začátkem jakýchkoliv změn v nastavení a následně po jejich dokončení.
Nastavení EAInfoportu se (prozatím - později bude součást Configuration Managera) provádí pomocí konfiguračního souboru appsettings.json. Zde je potřeba hodnotu "InfoportConnection_Npgsql" doplnit o ";ApplicationName=Infoport;SSL Mode=VerifyCA". Toto nastavení znamená, že EAInfoport bude vyžadovat ssl připojení do databáze, a bude kontrolovat, že existuje důvěryhodný certifikát.
Poznámka: pokud je db server nastaven tak, že ssl vyžaduje (=odmítá připojení bez ssl) ale v connection stringu EAInfoportu je nastaveno ";SSL Mode=Disable", zobrazí se v logu EAInfoportu hláška typu "28000: pg_hba.conf rejects connection for host "x.x.x.x", user "xx", database "xx", SSL off".
Verze EAInfoportu 7.x nebyla vyvíjena ani testována pro připojení pomocí ssl, ale je možné vyzkoušet následující:
Od verze 6 (.NETu - nikoliv databáze) jsou změněná varianty parametru pro ssl (viz též Security and Encryption | Npgsql Documentation)
Npgsql v6.0+:
- Disable
- Allow
- Prefer (default)
- Require
- VerifyCA
- VerifyFull
Npgsql pre-v6.0:
- Disable (default)
- Prefer
- Require
Pro vezi .NETu 2 (= pro EAInfoport 7.x) je možné jako parametr vyzkoušet ';SSL Mode=Prefer' a nebo ještě přidat, že certifikátu věřím, tzn. ";SSL Mode=Prefer;Trust Server Certificate=true"
Poslední varianta je vyměnit Prefer vymění za Require
Co dělat když se nepodaří nainstalovat nová verze EA Infoport a potřebujete spustit původní verzi??
Pokud po aktualizaci na novou verzi nejde EA Infoport spustit, může to být způsobeno dvěma důvody. Problém mohl vzniknout při vlastní aktualizaci, a to například tím, že se nepodařily nakopírovat všechny potřebné soubory, že došlo místo na disku, nebo se předčasně ukončil program InfoportLauncher (a případně z dalších příčin).
Druhou skupinou problémů může být stav, kdy se sice samotná instalace podařila, ale nová verze Infoportu má chybu, která znemožňuje správný běh.
Rychlým řešením obou druhů problémů je návrat k verzi původní, která do chvíle aktualizace na serveru fungovala.
Nejjednodušší způsob, jak to udělat, je upravit konfiguraci (parametry) programu InfoportLauncher. Běžné nastavení parametru „-Version“ je řetězec "* * * *". To znamená, že se program snaží získávat a instalovat nejnovější verze Infoportu a to bez jakéhokoliv omezení (platí jak pro instalaci z ftp tak i file).
Dále je nutné smazat soubor s novou verzí, která není funkční.
Pokud hvězdičky nahradíme konkrétní (dosud funkční verzí), InfoportLauncher se nebude pokoušet o aktualizaci, ale bude spouštět konkrétní verzi.
Po instalaci verze EA Infoport 8.7.0.8956 se nezobrazují ikonky na vytvoření přístupových klíčů (permalinků)
V EaIfoportu vznikla nová možnost nastavení uživatelům „Oprávnění pro publikaci veřejných klíčů“.
Po instalaci verze 8.7.0 je nutné uživatelům, kteří vytvářejí permalinky oprávnění nastavit v opačném případě o tuto možnost přijdou.
Nastavení:
- Správa portálu> Správa uživatelů > Repozitáře > zvolit požadovaná oprávnění
Chybějící oprávnění Repository během přihlášení přes AD nebo OpenID
Otázka:
Co dělat když se uživatelům ztratilo oprávnění Repository během přihlášení přes AD nebo OpenID?
Odpověď?
Situace mohla nastat po instalaci nové verze 8.7.0.8956. Uživatelům se mohlo ztratit oprávnění Repository během přihlášení přes AD nebo OpenID. Důležité je říct, že se to nejspíš dělo, když měl uživatel více jak jednu Repository.
Oprava je možná pomocí scriptu, který tyto uživatele najde a vytvoří jim oprávnění zpátky. V případě potvrzení problému, nás kontaktujte https://www.dphelpdesk.cz/
Automatizované nastavování práv pro uživatele či skupinu, přes DB
Otázka
Jak automatizovat nastavování práv pro uživatele či skupinu, přes DB?
Odpověď
EaInfoport má dvě tabulky pro osobní oprávnění (uživatel a skupina). Pro uživatele se tabulka jmenuje `package_access_user` a pro skupiny `package_access_group`.
Popíšu zde postup pro skupiny, protože primárně doporučujeme nastavovat oprávnění pro skupiny, ale pro uživatele je postup obdobný.
Pro zápis do této tabulky jsou pro nás důležité 4 hodnoty. ID skupiny, ID repozitáře, GUID package(balíčku), ID oprávnění.
ID skupiny si můžeme vytáhnout například podle jména skupiny:
SELECT g.Id
FROM AspNetGroups g
WHERE g.Name = 'Jméno skupiny';
ID repozitáře si můžeme vytáhnout například podle jména repozitáře:
SELECT r.Id
FROM Repositories r
WHERE r.Name = 'Jméno repozitáře';
Výpis ID oprávnění pro každý typ:
- Owner má ID 1
- Read má ID 5
- Edit má ID 6
- Review má ID 8
- Delete má ID 10
Pozor! GUID balíčku se musí nacházet v našem vybraném repozitáři!
Insert script, který zapíše Read oprávnění pro skupinu 'Jméno skupiny' v repozitáři 'Jméno repozitáře' na balíčku s GUID '{00GUID00-0000-0000-0000-000PACKAGE00}'. Sloupeček Access ignorujeme, nastavujeme 0.
INSERT INTO `infoport`.`package_access_group` (`GroupId`, `Access`, `RepositoryId`, `Package`, `RelationTypeId`) VALUES (
(SELECT g.Id
FROM AspNetGroups g
WHERE g.Name = 'Jméno skupiny'),
0,
(SELECT r.Id
FROM Repositories r
WHERE r.Name = 'Jméno repozitáře'),
'{00GUID00-0000-0000-0000-000PACKAGE00}', '5');
Pro uživatele bude postup stejný, ale budeme zapisovat do tabulky `package_access_user` a budeme vybírat ID uživatele z tabulky AspNetUsers.
Defaultní oprávnění najdeme v tabulce `package_acess`. Důležité jsou sloupečky Package, RepositoryId, DefaultReadAllowed.
- Do Package se vložen Guid balíčku
- RepositoryId obsahuje číslo repozitáře v kterém se balíček nachází
- DefaultReadAllowed je sloupec pro defaultní čtení. 1 značí, že je čtení povoleno. 0 značí, že je čtení zakázáno. Null značí, že se čtení dědí z Parenta.
Rooty musí mít nastavené default pro DefaultReadAllowed! Nesmí obsahovat Null!
Scripty jsou udělané pro MySQL.
Popíšu zde také popis vyhodnocování, aby nenastala záměna.
Osobní oprávnění vždy aplikuje negaci na nastavené defaultní oprávnění!
Podívejme se na tento jednoduchý příklad. Balíček 1 má dva podřadné balíčky 2 a 3.
Pokud máme nastaveno na balíčku 1 defaultní čtení povoleno a na balíček 2 spustíme INSERT osobního oprávnění na čtení, tak EaInfoport vypočítá pro danou skupinu/uživatele na balíčku 2 zákaz.
Dále pokud máme nastaveno na balíčku 3 defaultní čtení zakázáno a spustíme INSERT osobní oprávnění na čtení, tak EaInfoport vypočítá pro danou skupinu/uživatele na balíčku 3 čtení.
Řazení artefaktů a operací
Otázka
Jak změnit řazení artefaktů a operací, aby se neřadily dle abecedy?
Odpověď
Pokud chcete, aby EaInfoport dodržoval pořadí atributů a operací, jak je nadefinujete (ručně), tak je nutné v EA vypnout řazení viz níže.
Chyba při instalaci verze 8.8.x "Could not load file or assembly"
Otázka
Co dělat pokud se Vám při instalaci verze 8.8.x objeví následující chyba?
Could not load file or assembly 'Serilog.Filters.Expressions, Version=2.1.0.0, ...
Odpověď
Chyba se může vyskytnout při spuštění verze 8.8.x, pokud na serveru byla kdysi nainstalovaná verze 7.x.x.
Je potřeba ve verzi 8.8.x Infoportu najít soubor "Serilog.Filters.Expressions.dll" a smazat ho.
Chyba [ERR] Email 'xxx.yyy@xxxx.cz' is already taken
Jaký by měl být správný postup administrátora, pokud je v logu záznam
[ERR] Email 'xxx.yyy@xxxx.cz' is already taken ze synchronizace s AD?
Administrátor by se měl ujistit, že email je zadaný správně a není duplicitní (v Active Directory)
Chyba vzniká, pokud je uživatel manuálně upraven např. změna uživatelského jména v Infoportu.
Doporučujeme dohledat změnu a upravit v Activ Directory nebo Infoportu.
Případně je možné uživatele smazat v databázi Infoportu, po synchronizaci s AD se uživatel opět založí v Infoportu správným způsobem.
Chyba [ERR] User 'xxx.yyy@xxxxx.cz' had once existed and was deleted from the portal. If you need to restore him, contact the portal administrator please.
Co znamená když vyskočí následující chyba?
[ERR] User 'xxx.yyy@xxxx.cz' had once existed and was deleted from the portal. If you need to restore him, contact the portal administrator please.
Chyba vzniká v případě, je-li uživatel smazán pouze v Infoportu a Active Directory se snaží uživatele synchronizovat.
Doporučujeme smazat uživatele přímo v databázi Infoportu.
Micrsosoft databáze (sql sever 2014 a starší) - chyba Microsoft.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near '$'.
Máte Micrsosoft databázi (sql sever 2014 a starší) a EaInfoport Vám nefunguje správně od verze 8.8.0.9195 případně se Vám zobrazí chybová hláška Microsoft.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near '$'. ?
Je potřeba instalovat novější verzi Sql Severu viz Breaking changes in EF Core 8.0 (EF8) - EF Core | Microsoft Learn
"Diagram se přegenerovává" po níž vzápětí následuje druhá chybová "Systémová chyba"
Otázka
Při pokusu o zobrazení (obrázku) diagramu, se vzápětí postupně zobrazí dvě hlášky. První informativní "Diagram se přegenerovává" po níž vzápětí následuje druhá chybová "Systémová chyba"
Odpověď
Pokud se podíváme do DevTool prohlížeče (F12) tak je zde vidět hlášení Console, že chybí práva na čtení .png souboru (kde je požadovaný obrázek).
Dále je v logu Infoportu záznam o nemožnosti generovat obrázek (typicky hlásí EA.Interop.dll / DCOM)
Jednou z příčin může být problém s přístupem do souborů cache, kdy při něčem (výpadek, odstávka, migrace apod.) dojde ke ztrátě práv na souboru cachujícím diagramy resp. jejich uzamčení nějakým procesem.
Soubory jsou sice dostupné pro čtení (proto se jich většina v Infoportu zobrazuje), ale jakmile je potřeba je regenerovat (nový diagram, změna na diagramu a jiné) tak to není možné a uživatel obdrží v prohlížeči chybu. Při volání Sparx DCOMu se totiž nepodařilo na disku (v cachi) souboru aktualizovat.
Řešením je smazání adresářů tvořících keš \wwwroot\cache\*
Jeden z uživatelů se nemůže přihlásit do Infoportu
Co dělat když se nemůže jeden z uživatelů přihlásit do Infoportu?
Doporučujeme přihlásit se jako anonymní uživatel a vymazat cookies.
Nefunguje-li XFrame
Co dělat nefunguje-li Vám XFrame?
Zkontrolujte nastavení v Configuration Manageru, checkbox Active musí být zatrhnutý.