Andmete edastamine majandustarkvarast
Alljärgnev on asjakohane autoriseerimist nõudvate REST teenuste kasutamisel. Näiteks:
POST /api/v1/ledger/submissions/
GET /api/v1/ledger/submissions/{submission_uuid}
OAuth2 Client Credentials Flow rakendatakse andmeid saatva juriidilise isiku põhiselt. Iga andmeid esitada sooviv juriidiline isik saab genereerida endale kaks tunnust (client_id ja client_secret). Neid tunnuseid kasutades on võimalik luua autoriseeritud ühendus andmesilla suunas andmete saatmiseks. Ühel juriidilisel isikul võib olla genereeritud üks kuni mitu komplekti ligipääsutunnuseid ja sõltuvalt liidestuvast tarkvarast võib need siduda ka konkreetse isikuga. Samuti on toetatud vajadusel ka OAuth2 Authorization Code Flow skeemi kasutamine keerulisemate protsesside puhul.
Enne andmesillas andmete vastuvõtmist kontrollitakse:
kas andmeid edastaval juriidilisel isikul on antud nõustutud hetkel kehtivate kasutustingimustega;
kas kasutatud ligipääsuvõti on kehtiv;
kas konkreetsel majandustarkvaral on kehtiv kokkulepe RIK-iga andmete saatmiseks.
Andmete saatmise protsess kasutades Client Credentials voogu
Majandustarkvara küsib enne andmete saatmist andmesilla teenusest /api/v1/auth/token juurdepääsu võtme
access_tokenkasutades saadudclient_idjaclient_secret
Näidispäring:
access_token võib saada kasutades Basic Authorization-it (kus andmeväljale username vastabclient_id ja andmeväljale password vastabclient_secret). Sel juhul jääb body tühjaks
POST /api/v1/auth/token HTTP/1.1
Host: demo-datahub.rik.ee
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Authorization: ••••••
või saates sõnumi sisuna pannes kaasa panna kolm muutujat client_id, client_secretja grant_type=client_credential.
POST /api/v1/auth/token HTTP/1.1
Host: demo-datahub.rik.ee
Content-Type: application/x-www-form-urlencoded
Accept: application/json
client_id=test_test_70020310_otQleo6pAlMBzjL7eXVVbkne&client_secret=zAAje02YXZNtwEnz1Rlb1jyfCaliiIDx&grant_type=client_credentialsJuhul kui
client_idjaclient_secretkehtivad tagastab teenus sõnumi sisus juurdepääsu võtmeaccess_token
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIsOiAiS...",
"expires_in": 300,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 0,
"scope": "email profile"Juhul kui saadetud tunnused ei kehti, tagastab teenus veakoodi 401 ja veateate:
{
"detail": "Invalid client_id or client_secret"
}Andmete saatmiseks tuleb kasutada saadud
access_token-it (kehtib 5 minutit) .
Bearer tüüpi tuvastamisega tuleb access_token kaasa panna sõnumi päisesse.
Sõnumi saatmise näited
POST /api/v1/ledger/submissions HTTP/1.1
Host: demo-datahub.rik.ee
represented-party: 70000310
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
Authorization: ••••••
Content-Length: 393
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="ledger_file"; filename="/C:/Users/Testuser/Desktop/testimise_failid/ANNUAL_ACCOUNTS_MICRO_example.json"
Content-Type: <Content-Type header here>
(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="report_code"
ANNUAL-ACCOUNTS-MICRO
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Andmefaili saatmise staatuse päringu näide
GET /api/v1/ledger/submissions/28ca271f58099c0cf9de2e91fd26d7d2eea4e214419acfod2c696e205340028399faf53a6ec16f808479bd5b8073054fe2732cc7351f29738de6f105637b5ccd HTTP/1.1
Host: demo-datahub.rik.ee
represented-party: 70000310
Accept: application/json
Authorization: ••••
OAuth2.0 autoriseerimisprotsessi kasutuselevõtmiseks on olemas erinevad tarkvarad ja teegid, mis autoriseerimisprotsessi automatiseerivad. Andmesilla teenus vastab OAuth2.0 Client Credentials Flow standardile, ehk kõik tarkvarad, mis toetavad integratsioonide tegemiseks OAuth 2.0 autentimist ja autoriseerimist, sobivad andmesilla API-ga liidestamiseks.