Inštalačná príručka popisuje komponent verzie 2.1.1, uistite sa, že čítate príručku verzie komponentu, ktorý používate.
Máme dobrú a zlú správu. Tá zlá správa je, že na zfunkčnenie tohto komponentu (alebo akejkoľvek inej integrácie na slovensko.sk) je nutné prejsť pomerne náročný proces s NASES a vypracovať množstvo dokumentácie. Tá dobrá správa je, že sme to skoro celé spravili za Vás a tento návod by mal úplne stačiť na to, aby ste komponent dostali do produkčnej prevádzky. Ak sa Vám to zdá zložité, ozvite sa nám emailom na [email protected] a radi pomôžeme.
Komponent slovensko.sk API je distribuovaný ako Docker kontajner, ktorý sa spúšťa štandardne, najľahšie cez docker-compose
.
Pred prvým spustením je potrebné pripraviť si adresár, ktorý bude obsahovať:
- docker-compose.yml upravený podľa potreby,
- .env s doplnenými hodnotami premenných prostredia podľa potreby,
- všetky bezpečnostné súbory, ktoré komponent požaduje podľa upraveného
.env
súboru.
Pričom:
- ak potrebujete automatickú synchronizáciu eForm formulárov, musíte do súboru
docker-compose.yml
pridať službyclock
aworker
tak, ako je to v tomto docker-compose.yml súbore, - ak potrebujete podporu pre autentifikáciu cez ÚPVS SSO, musíte do súboru
.env
pridať ďaľšie premenné tak, ako je to v tomto .env súbore.
Pozri časť Konfigurácia API komponentu.
Najskôr je potrebné inicializovať databázu cez:
docker-compose run web bundle exec rails db:create db:migrate
Potom je možné spustiť komponent:
docker-compose up
Komponent by mal bežať na porte 3000, stav je možné skontrolovať pomocou:
curl localhost:3000/health
Možnosti komponentu popisuje Špecifikácia API.
Log komponentu ide na štandardný výstup.
Najskôr je potrebné stiahnuť nový komponent:
docker-compose pull
Následne je možné komponent reštartovať:
docker-compose stop
docker-compose up --force-recreate
Na rozdiel od docker-compose restart
toto reflektuje aj zmeny v rámci súboru docker-compose.yml
.
Ukážka odoslania SKTalk správy a uloženia medzi odoslané správy v schránke
curl -H 'Authorization: Bearer API-TOKEN' -H 'Content-Type: application/json' -d '{ "message": SKTALK-MESSAGE }' localhost:3000/api/sktalk/receive_and_save_to_outbox
kde API-TOKEN
je JWT vytvorený podľa Špecifikácie API a SKTALK-MESSAGE
je valídna SKTalk správa s unikátnym MessageID
(prípadne aj CorrelationID
) a správne nastaveným SenderId
a RecipientId
.
V prípade potreby je možné vyskúšať komponet prevádzkovaný na strane Slovensko.Digital v DEV a FIX prostrediach:
-
komponent v DEV prostredí je dostupný na URL
https://dev.slovensko-sk-api.staging.slovensko.digital
pozri aktuálny stav komponentu a špecifikáciu API nasadenej verzie.
-
komponent vo FIX prostredí je dostupný na URL
https://fix.slovensko-sk-api.staging.slovensko.digital
pozri aktuálny stav komponentu a špecifikáciu API nasadenej verzie.
-
komponenty v DEV a FIX prostredí majú rovnaký privátny kľúč pre generovanie API tokenov a rovnaký verejný kľúč pre verifikáciu OBO tokenov, ale majú rôzne PO a OVM identity, kontaktujte nás.
Zoznam premenných prostredia a bezpečnostných súborov potrebných pre spustenie komponentu.
Premenná | Popis | Hodnota |
---|---|---|
RAILS_ENV |
Prostredie Rails aplikácie1 | development (predvolená), test , staging alebo production |
RAILS_CACHE_ID |
Identifikátor Rails Cache1 | jedinečný identifikátor (potrebná iba v prostredí kde beží viacero komponentov) |
LOG_LEVEL |
Úroveň logovania Rails aplikácie2 | debug (predvolená), info , warn , error alebo fatal |
SECRET_KEY_BASE |
Kľúč zabezpečenia Rails aplikácie5 | bezpečný reťazec |
TIME_ZONE |
Časové pásmo Rails aplikácie | Europe/Bratislava (predvolená) alebo UTC a pod. |
UPVS_ENV |
Prostredie ÚPVS2 | dev (predvolená), fix alebo prod |
UPVS_LOG_LEVEL |
Úroveň logovania ÚPVS komunikácie3 | trace , debug , info (predvolená), warn , error alebo off (predvolená ak RAILS_ENV=test alebo UPVS_ENV=prod ) |
UPVS_KS_SALT |
Soľ hesla k úložisku certifikátov6 | bezpečný reťazec (potrebná iba ak UPVS_ENV=prod ) |
UPVS_PK_SALT |
Soľ hesla k privátnemu kľúču v úložisku certifikátov6 | bezpečný reťazec (potrebná iba ak UPVS_ENV=prod ) |
EFORM_SYNC_SUBJECT |
Subjekt ukazujúci na STS certifikát pre automatickú synchronizáciu eForm formulárov7 | {sub} (potrebná iba pre eForm Sync) |
SSO_SP_SUBJECT |
Subjekt ukazujúci na SP certifikát pre podpisovanie pri autentifikácii cez ÚPVS SSO8 | {sub} (potrebná iba pre ÚPVS SSO) |
SSO_PROXY_SUBJECT |
Subjekt ukazujúci na STS certifikát pre OBO prístup pri autentifikácii cez ÚPVS SSO | {sub} (potrebná iba pre ÚPVS SSO) |
LOGIN_CALLBACK_URLS |
Základné URL oddelené čiarkou, na ktoré može byť používateľ presmerovaný po úspešnom prihlásení | bezpečná URL (potrebná iba pre ÚPVS SSO) |
LOGOUT_CALLBACK_URLS |
Základné URL oddelené čiarkou, na ktoré može byť používateľ presmerovaný po úspešnom odhlásení | bezpečná URL (potrebná iba pre ÚPVS SSO) |
STS_HEALTH_SUBJECT |
Subjekt ukazujúci na STS certifikát pre kontrolu spojenia s ÚPVS STS | {sub} (potrebná iba pre STS Health) |
1 Rails Environment Settings
2 Integračný manuál ÚPVS IAM, pozri časť 1.
3 Debugging Rails Applications
4 Logback Architecture
5 Reťazec vygenerovaný príkazom rails secret
6 Reťazec dlhý aspoň 40 znakov
7 Nastavenie premennej zapína automatickú synchronizáciu eForm formulárov
8 Nastavenie premennej zapína podporu pre autentifikáciu cez ÚPVS SSO
Súbor | Popis | Podpora ÚPVS SSO vypnutá |
---|---|---|
security/api_token_{RAILS_ENV}.public.pem |
Verejný kľúč pre verifikáciu API tokenov1 | |
security/obo_token_{RAILS_ENV}.private.pem |
Privátny a verejný kľúč pre generovanie a verifikáciu OBO tokenov2 | Nepotrebný |
security/sso/upvs_{UPVS_ENV}.metadata.xml |
Metadáta IDP3 | Nepotrebný |
security/sso/{SSO_SP_SUBJECT}_{UPVS_ENV}.metadata.xml |
Metadáta SP3 | Nepotrebný |
security/sso/{SSO_SP_SUBJECT}_{UPVS_ENV}.keystore |
Úložisko SP certifikátu pre podpisovanie5,6 | Nepotrebný |
security/sts/{SSO_PROXY_SUBJECT}_{UPVS_ENV}.keystore |
Úložisko STS certifikátu pre OBO prístup5,6 | Nepotrebný |
security/sts/{sub}_{UPVS_ENV}.keystore |
Úložisko STS certifikátu4,5,6 | |
security/tls/upvs_{UPVS_ENV}.truststore |
Úložisko TLS certifikátov7,8 |
1 Kľúč vygenerovaný príkazom openssl genrsa -out api_token_development.private.pem 2048
a openssl rsa -in api_token_development.private.pem -pubout -out api_token_development.public.pem
2 Kľúč vygenerovaný príkazom openssl genrsa -out obo_token_development.private.pem 2048
3 Metadáta IDP / SP musia byť zaregistrované v prostredí ÚPVS, pozri časť 6.
4 Hodnota SUB claim z API tokenu nahrádza výraz {sub}
v názve súboru
5 Certifikát v úložisku musí byť zaregistrovaný v prostredí ÚPVS, pozri časť 6.
6 Heslo k úložisku a heslo k privátnemu kľúču v prostredí ÚPVS DEV a FIX je password
. Pozor, tieto heslá v prostredí ÚPVS PROD sú SHA1 podľa vzorov {UPVS_KS_SALT}:{sub}
(pre heslo k úložisku) a {UPVS_PK_SALT}:{sub}
(pre heslo k privátnemu kľúču) v hexadecimálnom formáte
7 Certifikát v úložisku pre prostredie ÚPVS DEV sa dá získať napr. cez echo | openssl s_client -servername 'vyvoj.upvs.globaltel.sk' -connect 'vyvoj.upvs.globaltel.sk:443' | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > upvs_dev.crt
8 Heslo k úložisku v prostredí ÚPVS DEV, FIX a PROD je password
Na stránke NASES nájdete formulár na prístup k aktuálnej dokumentácii ÚPVS. Odporúčame si prístup zriadiť, kedže sa na partner framework portáli, okrem dokumentácie, nachádzajú aj informácie o plánovaných odstávkach a ďalšom rozvoji ÚPVS.
Je potrebné si zvoliť skratku projektu, ktorá sa bude používať pre účely komunikácie s NASES. Názov môže obsahovať len veľké písmená, bez diakritiky a medzier, a musí byť unikátny. My sme napríklad použili názov PODAAS, ten je už obsadený.
Stiahnite si šablónu dohody o integračnom zámere z partner framework portálu a upravte podľa potreby. Pozor, treba sa uistiť, že používate aktuálnu šablónu NASES, pretože tie sa v čase menia.
Tento dokument následne premenujte na DIZ_PO_{project}_v1.docx
, kde reťazec {project}
nahraďte skratkou Vášho projektu a priložte ako prílohu k emailu:
Adresát: [email protected], [email protected]
Predmet: {project} – DEV – DIZ – Požiadavka – Revízia dohody o integračnom zámere – TYP PO – v1
Dobrý deň,
týmto zasielam na revíziu DIZ nového projektu.
Prosím o potvrdenie, že žiadosť ste zaevidovali.
Ďakujem.
Po schválení DIZ je potrebné DIZ vytlačiť 4x, podpísať a zaslať poštou (alebo osobne doručiť) do NASES na adresu:
Národná agentúra pre sieťové a elektronické služby BC Omnipolis Trnavská cesta 100/II 821 01 Bratislava
TODO
Požiadajte o vytvorenie infraštruktúrneho prepojenia emailom:
Adresát: [email protected], [email protected]
Predmet: {project} - FIX/PROD - INFRA - Požiadavka - Pridelenie adresného rozsahu
Dobrý deň,
týmto žiadam o pridelenie adresného rozsahu pre tunel do FIX/PROD prostredia a zaslanie potrebného XLS pre špecifikáciu komunikácie.
Ďakujem.
NASES Vám zašle naspäť XLS dokument, ktorý bude treba doplniť nasledovne:
- V prvej záložke Základné údaje nájdete
Pridelený koordinovaný rozsah pre služby v tuneloch ES:
napríklad100.66.0.128/28
. Od tohto rozsahu sa odvíjajú nasledujúce nastavenia. - V prvej záložke vyplňte potrebné kontaktné údaje pre externý subjekt (to ste Vy)
- V tretej záložke Integračné a aplikačné endpointy vyplňte všetky riadky stĺpca
Rozhranie ES TunelIP
tak, že pre FIX prostredie uvediete piatu adresu rozsahu (t.j. pre rozsah100.66.0.128/28
to bude100.66.0.128 + 5
=100.66.0.133
) a pre PROD prostredie desiatu adresu rozsahu100.55.0.128 + 10
=100.66.0.138
. - V tretej záložke Integračné a aplikačné endpointy následne označte červeným pozadím riadky s rozhraním
IAM-WS - 1.7, 2.0
toto sa nepoužíva, ostatné riadky označte zeleným pozadím. Teda:schranka - EKR
,UIR (URP, URZ - BPM)
,USR (SB-Ext. Zbernica)
ajIAM-STS.
- V štvrtej záložke GUI Endpointy Test-Fix povoľte prístup z internetu cez GUI pre Portal 1.7, 2.0, Prihlasenie IAM, Formulare, eFormulare, schranka - eDesk 1.7, 2.0.
- V štvrtej záložke GUI Endpointy Test-Fix do
IP GW ES pre povolenie pristupu ku GUI rozhraniam:
uveďte verejnú IP adresu stroja, cez ktorý sa pristupovať k portálu pre účely testovania. - V piatej záložke DNS uveďte ako
IP ES Site
pre FIX tretiu adresu rozsahu (t.j. pre rozsah100.66.0.128/28
to bude100.66.0.128 + 3
=100.66.0.131
) a pre PROD štvrtú adresu rozsahu (t.j. pre rozsah100.66.0.128/28
to bude100.66.0.128 + 4
=100.66.0.132
) - V záložke IPsec LAN to LAN uveďte do
Remote VPN gateway IP address ( ES site )
verejnú IP adresu stroja, kde bude bežať tento komponent (resp. koniec IPsec tunela)
Doplnený XLS dokument priložte ako prílohu k emailu:
Adresát: [email protected], [email protected]
Predmet: {project} - FIX/PROD - INFRA - Požiadavka - Vytvorenie infraštruktúrneho prepojenia
Dobrý deň,
týmto žiadam o zriadenie tunela do FIX/PROD prostredia. Vyplnenú konfiguráciu posielam v prílohe.
Ďakujem.
TODO
Požiadajte o vytvorenie identít emailom:
Adresát: [email protected], [email protected]
Predmet: {project} - FIX - IAM - Žiadosť - Zriadenie identít a zastupovanie
Dobrý deň,
týmto žiadam zriadenie testovacích identít 4x FO, 2x PO a 2x OVM a zároveň nastavenie splnomocnenia, kde prvé dve FO budú zastupovať PO a druhé dve FO budú zastupovať OVM.
Ďakujem.
Pre vytvorené identity vygenerujte STS certifikáty. Reťazec {sub}
v názvoch súborov a aliasoch nahraďte vhodnou skratkou Vašej integrácie, podobne upravte hodnotu CN certifikátov, kde {cin}
je IČO a {suffix}
je identifikačné číslo organizácie v prípade ak ide o organizačnú zložku.
keytool -genkeypair -alias {sub} -keyalg RSA -keysize 2048 -sigalg sha512WithRSA -dname "CN=ico-{cin}_{suffix}" -validity 730 -keypass password -keystore {sub}_fix.keystore -storepass password
keytool -export -alias {sub} -keystore {sub}_fix.keystore -storepass password > {sub}_fix.crt
keytool -export -alias {sub} -keystore {sub}_fix.keystore -storepass password -rfc > {sub}_fix.pem
Vygenerované certifikáty je následne potrebné zaregistrovať vyplnením formuláru Zriadenie technického účtu a registrácia certifikátu v časti Môj profil – Technické účty a certifikáty, ktorý je dostupný po prihlásení testovacej identity (FO) na ÚPVS portál v zastúpení testovacej identity (PO alebo OVM), pre ktorú bude registrácia príslušného certifikátu vykonávaná, pozri Návod na využívanie služieb centrálneho registra autentifikačných certifikátov.
Ak potrebujete podporu pre podpisovanie podaní, požiadajte o pridelenie testovacieho KSC emailom:
Adresát: [email protected], [email protected]
Predmet: {project} - FIX - CEP - Žiadosť - Pridelenie testovacieho KSC
Dobrý deň,
týmto žiadam o pridelenie testovacieho KSC pre PO s IČO {cin}.
Ďakujem.
Ak potrebujete podporu pre autentifikáciu cez ÚPVS SSO, podobne vygenerujte SP certifikáty pre šifrovanie a podpisovanie, certifikát určený pre šifrovanie sa musí odlišovať od certifikátu určeného pre podpisovanie. Následne vytvorte {sub}_fix.metadata.xml
podľa súboru podaas_dev.metadata.xml, kde {sub}
bude hodnota SSO_SP_SUBJECT
, pričom treba nahradiť entityID
, verejné klúče pre šifrovanie a podpisovanie (skopírovaním z PEM súborov) a endpointy, kde bude testovacia verzia bežať.
Vygenerované metadáta je následne potrebné zaregistrovať vyplnením formuláru Registrácia poskytovateľa služieb v časti Môj profil – Technické účty a certifikáty, ktorý je dostupný po prihlásení testovacej identity (FO) na ÚPVS portál v zastúpení testovacej identity (PO alebo OVM), pre ktorú bude registrácia príslušných metadát vykonávaná, pozri Návod na využívanie služieb centrálneho registra SP metadát.
Stiahnite si šablónu akceptačného protokolu z partner framework portálu a upravte podľa potreby. Pozor, treba sa uistiť, že používate aktuálnu šablónu NASES, pretože tie sa v čase menia.
TODO
TODO
Ak potrebujete podporu pre autentifikáciu cez ÚPVS SSO, budete vyzvaní na vykonanie UAT aj v PROD prostredí.
TODO