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
Izlaz
{
    "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 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