3.3. Autentikacija i autorizacija krajnjeg korisnika
Usluge CEZIH sustava koje zahtjevaju autentikaciju i autorizaciju krajnjeg korisnika koriste sigurnosne mehanizme temeljene na Open ID Connect Authorization Code Flow specifikaciji.
Pod krajnjim korisnikom se smatra krajnji korisnik Gx aplikacije/informacijskog sustava koji je inicirao pozivanje određene usluge CEZIH sustava. Na primjer pretragu kliničkih dokumenata ili spremanje kliničkog dokumenta u registar i repozitorij CEZIH sustava.
Sukladno standardnim mehanizmima sigurnosti CEZIH sustava za autentikaciju i autorizaciju krajnjeg korisnika potrebno je koristiti osobni digitalni certifikat zdravstvenog djelatnika koji se nalazi na pametnoj kartici ili dvofaktorsku autentikaciju korištenjem servisa Certilia mobile.ID.
3.3.1. Autentikacija korištenjem certifikata na pametnoj kartici
Na slijedećem dijagramu je opisan slijed akcija prilikom autentikacije i autorizacije korisnika korištenjem OpenID Connect Authorization Code Flow standarda i osobnog certifikata krajnjeg korisnika pohranjenog na pametnoj kartici.
|
|
| Slika 1 - Autorizacija krajnjeg korisnika korištenjem OIDC Autorization Code Flow standarda i certifikata na pametnoj kartici |
Kako je opisano na gornjoj slici. Krajnji korisnik otvara Gx aplikaciju/sustav i u njoj odabire akciju koja zahtjeva poziv određene usluge na CEZIH sustavu. Gx aplikacija/sustav kreira zahtjev za tu uslugu i šalje ga na CEZIH. OpenID Agent je proxy poslužitelj kojemu je svrha autentikacija zahtjeva za određenom uslugom CEZIH sustava. OpenID Agent provjerava da li su u zahtjevu poslani podatci o sesiji i da li je ta sesija valjana. Ukoliko nije generira zahtjev za preusmjeravanje Gx sustava na SSO (Single Sign On) komponentu CEZIH sustava kojoj je svrha autentikacija krajnjeg korisnika i potvrđivanje njegovog identiteta.
Gx aplikaciji se vraća HTTP redirect odgovor sa URLom SSO komponente CEZIH sustava. Gx aplikacija/sustav uspostavlja TLS konekciju prema tom URLu. Kako bi se korisnik autenticirao korištenjem digitalnog certifikata, SSO komponenta CEZIH sustava zahtjeva prilikom uspostave TLS konekcije slanje korisničkog certifikat. Gx aplikacija omogućava korisniku odabir certifikata nakon čega se od korisnika zahtjeva unos PINa za otključavanje pametne kartice i nakon toga se uspostavlja TLS veza između Gx aplikacije/sustava i CEZIH sustava. Korištenjem certifikata krajnjeg korisnika koji je korišten za uspostavu TLS konekcije, komponenta za autentikaciju i potvrđivanje identiteta (User Identity Provider) autenticira korisnika i kreira sesiju, te vraća Gx aplikacji /sustavu tu sesiju i zahtjev za preusmjeravanje na inicijalni URL usluge koju je Gx aplikacija/sustav zatražio.Na osnovu zahtjeva za preusmjeravanje Gx aplikacija/sustav ponovno poziva tu uslugu CEZIH sustava i uključuje u zahtjev podatke o sesiji u HTTP zaglavlje
mod_auth_openid_session
OpenID Agent (Proxy server) provjerava podatke o sesiji i budući da su sada ti podatci ispravni generira JWT token u kojemu se nalaze svi podatci o krajnjem korisniku potrebni za autorizaciju zahtjeva (identifikator korisnika, role korisnika, …). Poziv se preusmjerava prema zatraženoj usluzi CEZIH sustava koja autorizira zahtjev i ako je zahtjev autoriziran obrađuje zahtjev i Gx aplikaciji/sustavu vraća odgovor.
3.3.2. Autentikacija korištenjem dvofaktorske autentikacije (Certilija mobile.ID)
Na slijedećem dijagramu je opisan slijed akcija prilikom autentikacije i autorizacije korisnika korištenjem OpenID Connect Authorization Code Flow standarda i dvofaktorske autentikacije putem servisa Certilija mobile.ID.
|
|
| Slika 2 - Autorizacija krajnjeg korisnika korištenjem OIDC Autorization Code Flow standarda i dvofaktorske autentikacije putem servisa Certilia mobile.ID |
Kako je opisano na gornjoj slici. Krajnji korisnik otvara Gx aplikaciju/sustav i u njoj odabire akciju koja zahtjeva poziv određene usluge na CEZIH sustavu. Gx aplikacija/sustav kreira zahtjev za tu uslugu i šalje ga na CEZIH. OpenID Agent je proxy poslužitelj kojemu je svrha autentikacija zahtjeva za određenom uslugom CEZIH sustava. OpenID Agent provjerava da li su u zahtjevu poslani podatci o sesiji i da li je ta sesija valjana. Ukoliko nije generira zahtjev za preusmjeravanje Gx sustava na SSO (Single Sign On) komponentu CEZIH sustava kojoj je svrha autentikacija krajnjeg korisnika i potvrđivanje njegovog identiteta.
Gx aplikaciji se vraća HTTP redirect odgovor sa URLom SSO komponente CEZIH sustava. Gx aplikacija/sustav uspostavlja TLS konekciju prema tom URLu. Kako bi se korisniku omogučila autentikacija korištenjem dvofaktorske autentikacije putem Certilija mobile.ID servisa prilikom uspostave TLS konekcije sa SSO komponentom CEZIH sustava Gx aplikacija/sustav ne šalje korisnički certifikat. Nakon toga SSO komponenta CEZIH sustava preusmjerava korisnika na stranicu servisa Certilia mobile.ID. Gx aplikacija/sustav prikazuje korisniku formu za prijavu Certilija mobile.ID servisa. Korisnik upisuje svoje podatke za prijavu nakon čega servis Certilija mobile.ID šalje push poruku na registrirani mobilni uređaj korisnika na kojemu korisnik potvrđuje prijavu.
Nakon potvrđene prijave Certilia mobile.ID servisšalje autorizacijski kod i tzv callback URL SSO servisa Gx aplikaciji/sustavu. Gx aplikacija/sustav autorizira korisnika na SSO komponenti CEZIH sustava korištenjem autorizacijskog koda dobivenog od Certilia mobile.ID servisa. SSO komponenta CEZIH servisa validira autorizacijski kod potvrđuje autentikaciju korisnika i Gx aplikaciji/sustavu vrača podatke o sesiji i zahtjev za preusmjeravanje na inicijalni URL usluge koju je Gx aplikacija/sustav zatražio.Na osnovu zahtjeva za preusmjeravanje Gx aplikacija/sustav ponovno poziva tu uslugu CEZIH sustava i uključuje u zahtjev podatke o sesiji u HTTP zaglavlje
mod_auth_openid_session
OpenID Agent (Proxy server) provjerava podatke o sesiji i budući da su sada ti podatci ispravni generira JWT token u kojemu se nalaze svi podatci o krajnjem korisniku potrebni za autorizaciju zahtjeva (identifikator korisnika, role korisnika, …). Poziv se preusmjerava prema zatraženoj usluzi CEZIH sustava koja autorizira zahtjev i ako je zahtjev autoriziran obrađuje zahtjev i Gx aplikaciji/sustavu vraća odgovor.