Uživatelský manuál
Stručný průvodce
Dashboard
Přehledy
Detail případu (Caseoverview)
Případ - Událost
Úkoly
Poznámky případu
Dokumenty
Nastavení uživatele
Oblíbené
Komponenta tabulky
FAQ
Novinky/Oznámení v Team assistant
Nastavení mobilní aplikace
Admin dokumentace
Platforma
Administrace
Crony
Paralelní cron - PostponedTaskCron
CleanupCron
MsGraphCheckUnprocessedMailsCron - Kontrola nezpracovaných mailů
Crons
Hearbeat monitoring cronů
Autentizace a synchronizace
Nastavení mobilní aplikace pro vaše prostředí
Schéma
Dynamické tabulky
Archivace
Skripty
Licence
Servisní konzole
Naplánované úkoly
HR Agenda
Sekvence
CSP hlavičky - zásady zabezpečení obsahu
Logy
Správa novinek (Notifikační centrum)
Nastavení přístupového tokenu a vypršení platnosti relace
Šablona
Tisk (Case Overview)
Úkoly
Proměnné
Skartace
Builder formulářů úkolu
Linky
Case Overview Builder (Detail případu)
Role
Self-hosted administration
Plánování
Uživatelé
Organizační struktura
Události
Překlady
NFC integrace
AXIOS API
AXIOS s využitím Trezoru
Axios s využitím certifikátů (SSL)
Výpočty a funkce
Integrace
MS Graph
ISDOC.PDF
DocuSign
Modul na volání TASu - TAS 2 TAS (zakládání procesů přes API)
DB View
API Tokeny - přístup do aplikace
TAS Forms
Pokročilé funkce a tipy
Filtrování v dynamickém listu pomocí URL parametru (statické)
Optimalizace přehledů s velkým počtem případů
AI Features
Produkt
Technický changelog
Business Changelog
Průvodce upgradem z předchozích verzí
Upgrade na 5.17
Upgrade na 5.7
Lodash upgrade v4.17.x (>v5.5)
Hlavní změny a zaniklé funkce (v5.3 > v5.7)
Podbarvení proměnných ve stavu Read-only (>v5.7.58)
Upgrade na 5.3
Migrace dynamických podmínek
Úprava a kontrola tisku pdf
Úprava Popis úkolu vs Instrukce k úkolu
Transpilace forEach na for loop
Vykreslení HTML na Caseoverview
Rozdíly mezi TAS4 a TAS5 - kompletní přehled
Best Practices upgrade z TAS 4 na TAS 5
Použití validačních funkcí
Technické požadavky a architektura
Status routes
Prerekvizity serveru
Bezpečnost a ochrana dat
Security
TAS Operations Runbook
Technologická architektura
Graceful Shutdown + Status Routes
Aktuality / Důležité informace
Getting Started
- Vše /
- Admin dokumentace
- Platforma /
- Axios s využitím certifikátů (SSL)
Axios s využitím certifikátů (SSL)
Mutual TLS (SSL klientský certifikát)
Od verze TAS 5.17 lze pro HTTPS požadavky nastavit klientský SSL certifikát (mutual TLS) metodou applySslConfig(). Metoda vrací stejnou instanci klienta, takže ji lze řetězit s dalším nastavením (např. setVaultHeader).
Parametry
Metoda přijímá jeden konfigurační objekt opts:
Parametr | Typ | Popis |
|
| CA bundle (certifikační autorita). Nepovinné. |
|
| Klientský certifikát. Nepovinné. |
|
| Privátní klíč ke klientskému certifikátu. Nepovinné. |
|
| Heslo k privátnímu klíči (pokud je klíč zašifrovaný). Nepovinné. |
|
| Ověřovat SSL certifikát serveru. Výchozí hodnota |
|
| Seznam povolených TLS šifer (OpenSSL formát). Nepovinné. Používá se pro kompatibilitu se staršími službami — viz upozornění u praktického příkladu. |
TAS 5.17 — hodnota certifikátu přes lib.getCertificate()
Ve verzi 5.17 ještě Trezor certifikáty nesdružuje. Hodnotu certifikátu je nutné načíst „postaru" funkcí lib.getCertificate(certName, encoding?) (výchozí kódování binary) a předat ji do applySslConfig() jako string nebo Buffer.
const client = axios.getAxios({ baseURL: 'https://api.mutual-tls.example.com' });
client.applySslConfig({
ca: lib.getCertificate('mtls-ca'),
cert: lib.getCertificate('mtls-client-cert'),
key: lib.getCertificate('mtls-client-key'),
});
const response = client.get('/secure-endpoint');
return response.data;lib.getCertificatePath(certName).TAS 5.18 — certifikáty i externí zdroje z Trezoru přes vault.get()
Od verze 5.18 Trezor sdružuje jak citlivé hodnoty (API klíče, hesla, tokeny), tak certifikáty a externí zdroje (Administrace → Trezor, záložka Externí zdroje). Ve výpočtu se vše načítá jednotně přes vault.get(name), který vrací VaultSecretRef — ten nelze serializovat ani zalogovat a předává se přímo do applySslConfig().
const client = axios.getAxios({ baseURL: 'https://api.mutual-tls.example.com' });
client.applySslConfig({
ca: vault.get('MTLS_CA'),
cert: vault.get('MTLS_CLIENT_CERT'),
key: vault.get('MTLS_CLIENT_KEY'),
});
const response = client.get('/secure-endpoint');
return response.data;vault.get(...)) se v 5.18 načítají i hodnoty z externích zdrojů definované na úrovni serverové konfigurace, např. v souboru .env.rejectUnauthorized: false vypne ověření serverového certifikátu a vystavuje spojení riziku MITM útoku. Používej pouze pro testování proti self-signed certifikátům, nikdy v produkci.Praktický příklad — SOAP volání s klientským certifikátem
Nejčastějším reálným použitím mutual TLS je volání staršího SOAP endpointu (typicky služby státní správy nebo bankovní rozhraní), který se zároveň prokazuje klientským certifikátem. Oproti jednoduchému client.get() výše přibývají tři věci: XML tělo přes Buffer.from, hlavička SOAPAction a použití requestRaw. Ukázku si projdeme po částech.
1. Tělo požadavku přes Buffer.from
Axios ve výchozím stavu serializuje tělo jako JSON. SOAP obálka je ale XML — aby ji axios odeslal beze změny, obalí se do binárního Buffer:
const payload = Buffer.from(xml, 'utf-8');
Proměnná xml obsahuje hotovou SOAP obálku jako text; Buffer.from(..., 'utf-8') ji převede na binární data.
2. Klient s explicitním timeoutem
SOAP služby bývají pomalejší, proto nastav dostatečný timeout (v milisekundách). Výchozí hodnota 0 se totiž řídí globálním timeoutem výpočtu (120 s), což u pomalé služby nemusí stačit:
const client = axios.getAxios({
timeout: 300000
});3. Nastavení certifikátu
Konfigurace je stejná jako v příkladech výše — zde s hodnotami z Trezoru přes lib.getCertificate() (TAS 5.17). Navíc se objevují dva parametry snižující zabezpečení, které legacy SOAP služby často vyžadují:
client.applySslConfig({
cert: lib.getCertificate('client.pem'),
key: lib.getCertificate('client.key'),
rejectUnauthorized: false,
ciphers: "DEFAULT@SECLEVEL=0"
});Parametr ciphers určuje povolené šifry TLS. Hodnota DEFAULT@SECLEVEL=0 snižuje bezpečnostní úroveň OpenSSL a povoluje starší, jinak zakázané šifry a slabší klíče — bez ní se se staršími službami nemusí podařit navázat spojení.
rejectUnauthorized: false a ciphers: "DEFAULT@SECLEVEL=0" záměrně snižuje bezpečnost spojení — vypíná ověření serverového certifikátu (riziko MITM) a povoluje zastaralé šifry. Používej ji pouze tam, kde to protistrana skutečně vyžaduje. Pokud služba běží na moderním certifikátu, obě volby vynech.4. Odeslání přes requestRaw
SOAP se posílá metodou POST. Hlavička SOAPAction je u SOAP 1.1 povinná — hodnota '""' (prázdné uvozovky) se používá, když služba nevyžaduje konkrétní akci. Použije se requestRaw, protože ze SOAP odpovědi je obvykle potřeba i stavový kód a hlavičky:
const result = client.requestRaw({
method: 'POST',
url,
data: payload,
headers: {
'SOAPAction': '""'
}
});requestRaw (od verze 5.7.37) vrací plnou odpověď { data, status, statusText, headers } a na chybový status nevyhazuje výjimku — stavový kód proto zkontroluj ručně (např. if (result.status !== 200)). Klasické metody (get, post, …) vracejí přímo data a na chybu výjimku vyhodí; ty použij u běžných JSON API, kde status ani hlavičky nepotřebuješ.Kompletní kód
const payload = Buffer.from(xml, 'utf-8');
const client = axios.getAxios({
timeout: 300000
});
client.applySslConfig({
cert: lib.getCertificate('client.pem'),
key: lib.getCertificate('client.key'),
rejectUnauthorized: false,
ciphers: "DEFAULT@SECLEVEL=0"
});
const result = client.requestRaw({
method: 'POST',
url,
data: payload,
headers: {
'SOAPAction': '""'
}
});
result obsahuje odpověď rovnou. Nikdy nepoužívej async, await, .then() ani Promise; TAS transpilace by způsobila tiché selhání výpočtu.
Updated
by Frantisek Brych