Andmete edastamine majandustarkvarast

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

  1. Majandustarkvara küsib enne andmete saatmist andmesilla teenusest /api/v1/auth/token juurdepääsu võtme access_token kasutades saadud client_id ja client_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_credentials
  1. Juhul kui client_id ja client_secret kehtivad tagastab teenus sõnumi sisus juurdepääsu võtme access_token

{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIsOiAiS...", "expires_in": 300, "refresh_expires_in": 0, "token_type": "Bearer", "not-before-policy": 0, "scope": "email profile"
  1. Juhul kui saadetud tunnused ei kehti, tagastab teenus veakoodi 401 ja veateate:

{ "detail": "Invalid client_id or client_secret" }
  1. 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.