Když si instalujete Rossum pro Pohodu, setkáte se s Dativery Agentem. Co to tedy je a proč jej potřebujete?

Některé z firemních aplikací nejsou cloudové. Zákazník si je instaluje na svůj počítač nebo server. Pokud vedle toho provozujete cloudovou aplikaci, která chce komunikovat s lokálně instalovanou aplikací, je nutné vytvořit propojení. 

To se obvykle řeší tak, že si najmete IT správce, který zpřístupní aplikaci do internetu. K tomu potřebujete nastavit firewall a také vlastnit veřejnou IP adresu. Abyste navíc zajistili zvýšenou bezpečnost, omezíte přístup podle IP adresy cloudové služby nebo nakonfigurujete virtuální síť VPN. U cloudových služeb se ovšem IP adresy často mění a provozovat velké množství VPN uzlů je také problematické (a především drahé). A většina cloudových služeb proto VPN vůbec neumožňuje.

Proto jsme vytvořili Dativery Agenta. Nainstalujete jej na počítač nebo server, kde běží vaše aplikace, a on ji umožní bezpečně a hlavně jednoduše zpřístupnit. Díky podpoře pro konkrétní aplikace zvládne instalaci opravdu každý. Například u Pohody si zobrazíte seznam účtovaných firem a kliknutím vytvoříte spojení (pošlete pozvánku).

Stáhnout Dativery Agent

Trochu techničtěji

Pokud vás zajímají technické detaily, můžete číst dál. Co tedy Agent dělá? Dativery Agent nainstalujete na počítač. Spustí se jako služba na pozadí a trvale naváže spojení s naším serverem link.dativery.com pomocí WebSocketu (HTTPS). Vygeneruje si autorizační údaje, kterými se ověřuje proti této službě, a tato služba se ověřuje platným SSL certifikátem.

Když spustíte desktopovou aplikaci Agentu, vidíte jeho stav (i zda se může připojit k našemu serveru) a lze jej konfigurovat. V rozhraní nechybí tlačítko “Pozastavit”, které informuje náš server, že si dočasně nepřejete komunikovat. Link.dativery.com při pozastavení vůbec nepřeposílá žádné požadavky. Pozastavení Agentu je vhodné například ve chvíli, kdy zálohujete nebo aktualizujete propojenou aplikaci (např. Pohodu).

Dativery Agent pro Windows

Agent díky pluginům zobrazí seznam instalovaných a podporovaných aplikací. Umožňuje také zaslat pozvánku k používání dalšímu uživateli. Pozvánka po akceptování poskytne autorizační údaje. Tyto údaje mají dvě části. První umožní přeposlat požadavek z link.dativery.com na Agenta. A druhá část umožní z Agenta přístup do konkrétní účtované firmy.

Pohoda mServer

V případě Pohody se při poslání pozvánky také automaticky nakonfiguruje Pohoda mServer. mServer je služba, která umožňuje XML komunikaci s Pohodou. Tuto službu ovšem nedoporučují vystavit do internetu. A pokud spadne (nebo je ukončena kvůli zálohování), sama se nenastartuje. Pokud jste účetní firma a máte 100 účtovaných firem, byla by paměťová spotřeba obrovská. Proto si Agent pouští mServery podle potřeby a pokud nejsou potřeba, umí si je i vypnout. Pokud přijde požadavek a mServer není spuštěný, zajistí jeho nastartování a vyřízení požadavku.

Komunikační protokol

Jak vypadá samostatná komunikace? Místo přímé adresy serveru pošlete požadavek na link.dativery.com.

POST http://localhost:444/xml HTTP/1.1
STW-Authorization: Basic QDo=
Content-Type: text/xml

Požadavek by tedy vypadal takto:

POST https://link.dativery.com/xml HTTP/1.1
X-Link-Authorization: Basic NGU1YTQwMzctNGIyMS00YTYzLTkwODQtNjAzOTUxYjY1OTdjOmVjN2MyMjVkLTBkMWU=
STW-Authorization: Basic QDo=
Content-Type: text/xml

Struktura X-Link-Authorization je stejná jako u běžné autorizace. První část (uživatelské jméno) umožní přístup přes internet do Agenta (první úroveň autorizace). Druhá část pak identifikuje konkrétní účtovanou organizaci.

Díky této dvojité autorizaci, je zabezpečený jak samotný počítač s Agentem, tak i samotné organizace. Oproti VPN je tak zajištěna vyšší bezpečnost. Především v případě, že jste účetní firma a chcete jednomu ze svých klientů umožnit přístup k jeho účtovaným datům. Agent zajistí, že se nedostane k datům jiných zákazníků, i když byste používali slabá hesla.

Jaké bezpečnostní prvky celé řešení obsahuje?

  • HTTPS s platným certifikátem pro link.dativery.com.
  • Rate limiting – implementovali jsme přiškrcování. Jeden uživatel tak nemůže provádět příliš mnoho požadavků a tím ohrožovat služby.
  • Autorizace agenta vůči link serveru. Tím je zajištěna možnost, že je možné libovolně měnit IP adresy přes kterou Agent přistupuje.
  • Vysoká dostupnost díky Elastic LoadBalanceru od AWS.
  • Bez autorizačních údajů není útočník vůbec schopen komunikovat s Agentem.
  • Dvojitá autorizace. Agent bez správné autorizace nedovolí komunikovat s účtovanými firmami.
  • Určitá míra odolnosti vůči DoS útokům.

Do Agenta připravujeme i podporu dalších aplikací. A je zde i možnost přímé integrace do cílové aplikace. Ale to je vhodné pouze pro výrobce těchto aplikací.

Já bych ale raději plugin do cílové aplikace

Jedním z častých dotazů je, proč používáme Agenta a nenapíšeme plugin přío pro cílovou aplikaci. Většina aplikací toto vůbec nepodporuje. Některé mají podporu pro propojení typu “Obecný internetový obchod”. Nevýhodou těchto řešení je, že to zásadně omezuje způsob komunikace a především strukturu. Toto vás silně omezuje i když propojujete internetový obchod. A v případě, že nepropojujete internetový obchod, je jeho použití už zcela nereálné. 

Proto jsme investovali nemalé úsilí do vytvoření Dativery Agenta. Ať slouží 🙂