Integracija↵
Integracija funkcionalnost ISIB AP JLS servisa u druge informacione sisteme postiže se upotrebom ISIB AP JLS REST servisa (RISIB AP JLS).
Napomena
U svrhu implementacije i lakšeg testiranja eksternih integrativnih servisa, podignuto je i stavljeno u funkciju javno testno okruženje KIBJLS REST servisa, dostupno na adresi
https://kibjlsrtest.trezor.gov.rs
. Servisi javnog testnog okruženja su funkcionalno identični produkcionim servisima (što ne uljučuje korisničke podatke) i potrebno ih je
koristiti u ranim fazama integracije, obzirom da je masovan unos testnih podataka na produkcione servise zabranjen.
Napomena
Ciljna grupa za informacije iz ovog dokumenta su IT profesionalci. Informacije nisu od značaja za ostale učesnike sistema.
Pristup↵
API funkcijama se pristupa preko adrese https://rkibjls.trezor.gov.rs
. Svaki poziv ima prefiks api
i opciono verziju u putanji vX.Y
:
/api/appropriations/load
Poziva poslednju verziju funkcije./api/v1.1/appropriations/load
Poziva verziju 1.1 funkcije.
Zaglavlje rezultata svakog poziva sadrži atribut api-supported-versions
koji lista sve raspoložive verzije funkcije. Poslednja verzija API-ja je dodatno označena sufiksom current
, npr. 1.1-current
.
Neaktuelne verzije API-ja zastarevaju (eng: deprecation) i biće uklonjene. Uklanjanje se neće vršiti ranije od 3 meseca od trenutka raspoloživosti nove verzije.
Primer validnog zahteva:
curl "https://rkibjls.trezor.gov.rs/api/login/ping" # CLI
Invoke-RestMethod "https://rkibjls.trezor.gov.rs/api/login/ping" # Powershell
PowerShell napomena
U Microsoft PowerShell (do verzije 5), curl
je alijas na Invoke-WebRequest
koji nema iste parametre kao i curl.exe
, native CLI aplikacija.
U ovom kontekstu potrebno je dodati ekstenziju prilikom poziva - curl.exe
.
API koristi JSON format za razmenu podatka i osim ako je drugačije napomenuto, ContentType za svaki request je application/json
. Većina funkcija vraća rezultat kao atribute payload
objekta.
Upozorenje
Postoji maksimalna frekvencija upotrebe svake konkretne funkcije RKIBJLS servisa (eng: Rate Limiter).
Na primer, neke funkcije je moguće koristiti maksimalno jednom u sekundi.
Navedeni primeri korišćenja zahtevaju minimalno PowerShell 3+ (provera lokalne verzije: $host.Version.Major -gt 3
) koji dolazi preinstaliran na Windows 10 operativnom sistemu a može se instalirati i na Unix-like sistemima.
Autentifikacija i autorizacija↵
Pristup sistemu zahteva autentikaciju. Pristup funkcionalnostima zahteva odgovarajuća aplikativna prava (autorizacija).
RKIBJLS koristi JWT[^jwt] standard za autentikaciju i autorizaciju. Pristup se ostvaruje preuzimanjem accessToken tokena pozivom /api/login
funkcije. Poziv svih drugih funkcija zahteva da u zaglavlju (eng: Headers) postoji Authorization atribut sa vrednošću Bearer <accessToken>
.
Poruke o greškama koje se javljaju kod pristupa API funkcijama usled neodgovarajuće autentikacije ili autorizacije su:
Code | Message | Opis |
---|---|---|
401 |
Unauthenticated |
Korisnik nije autentifikovan |
403 |
Unauthorized |
Korisnik nema odgovarajuće ovlašćenje za korišćenje funkcionalnosti |
/api/login↵
Preuzimanje pristupnog token koristeći korisnički nalog i lozinku.
- Metod
POST
- Atributi
-
login [string]
- Korisnički nalog
password [string]
- Korisnička lozinka
- Rezultat
{creationTime, accessToken, refreshToken}
Primer poziva u PowerShell-u
$params = @{ Method = 'Post' Uri = "https://rkibjls.trezor.gov.rs/api/login" ContentType = 'application/json' Body = @{ login = 'foo'; password = 'bar' } | ConvertTo-Json } Invoke-RestMethod @params
{ "creationTime": "2018-02-23T21:00:30.5262037+01:00", "accessToken": "eyJ1ba1A3jdeC0....", "refreshToken": "eyJ1bmlxdWVfbm...." }
Ograničenja
Ograničenje | Vrednost | Komentar |
---|---|---|
Maksimalni broj neuspelih prijava | 3 | Pristup korisniku se blokira na 1 minut |
Vreme trajanja accessToken-a u minutima | 20 |
API↵
Verzija: 1.0
Funcija | Opis |
---|---|
api/administration/paged-users | Pregled korisnika na sistemu sa paginacijom |
api/administration/user-information/{userId} | Pregled detalja o korisniku na sistemu sa identifikatorom userId |
/api/administration/paged-users↵
Grupni pregled korisnika na sistemu sa paginacijom. Ovaj metod omogućava i funkcionalnost filtriranja i sortiranja po svim atributima korisničkog naloga. Definisanje parametara filtera se obavlja upotrebom query sintakse.
Metod
GET
Query parametri
Naziv | Opis |
---|---|
login | Korisnički nalog |
loginAd | AD korisnički nalog |
name | Korisničko ime |
Email korisnika | |
status | Status korisnika |
organizationName | Naziv organizacije korisničkog naloga |
treasury | Šifra trezora |
perPage | Broj redova po strani paginacije, maksimalno 50 |
page | Redni broj strane na paginaciji |
Primer
api/administration/paged-users?filter[organizationName]=trezor&perPage=5&page=1
Vraća prvu
stranu sa pet
korisnika koji pripadaju organizaciji u čijem nazivu se nalazi pojam trezor
.
/api/administration/user-information/{userId}↵
Pregled detalja o korisniku na sistemu sa identifikatorom userId
Metod
GET
Primer
api/administration/user-information/23
Vrać sve detalje o korisniku sistema sa identifikatorom 23