Netvisorin rajapinnan tietoturva on varmistettu sekä ohjelmistorajapintatunnuksien että jokaisen pyynnön yksilöivän tunnisteen avulla.

Jotta tietoa saadaan siirrettyä Netvisorin rajapinnan yli, tarvitaan:

  • Käyttäjän ohjelmistorajapintatunnukset
  • Ohjelmistokumppanin rajapintatunnukset

Kun Netvisorin rajapintaan lähetetään pyyntöjä, tulee jokaisessa pyynnössä olla määrätyt http-otsikot, joista tarkempi listaus alla. Http-otsikot näkyvät myös alla olevassa kuvassa oikealla puolella:

Pyynnön oikeellisuus varmistetaan rajapinnassa SHA256-laskennalla muodostettavalla MAC-tunnisteella. Otsikossa X-Netvisor-Authentication-MAC annettava SHA256-arvo lasketaan käyttäen kaikkia kuvassa vasemmalla lueteltuja tietoja. Rajapintaan lähetettävien pyyntöjen otsakkeissa ei ole mukana ohjelmistokumppanin ja käyttäjän yksilöiviä avaimia, nämä tarvitaan kuitenkin SHA256-laskentaa varten. MAC-tunniste lasketaan erikseen jokaiselle rajapintaan lähetettävälle pyynnölle. Jos rajapintaan on lähetetty aiemmin pyyntö samalla transaktiotunnisteella, rajapinta antaa virheen.


Python esimerkki MAC-koodin ja HTTP-otsikoiden muodostukseen

MAC -laskenta, SHA256 laskentaa käyttäen tässä linkissä. 

Tunnistautumisen HTTP-otsikot selitteineen:

X-Netvisor-Authentication-Sender

Integraation vapaamuotoinen nimi. Mikäli kumppanilla on useampia järjestelmiä liitettynä Netvisoriin, jokainen integraatio tulee nimetä yksiselitteisesti. Tämä tieto helpottaa Netvisorin tukea ja tekniikkaa selvitystilanteissa.

X-Netvisor-Authentication-CustomerId

Asiakasyrityksen käyttäjän ohjelmistorajapintatunnukset. Tämä on käyttäjäkohtainen tunnus.

Testiympäristössä ohjelmistorajapintatunnuksen luo ohjelmistokumppanin työntekijä

Tuotannossa tunnuksen luo integraation käyttöönsä ottavan yrityksen Netvisor-käyttäjä. Hän toimittaa luodun rajapintatunnuksen ja integraatiokäyttäjän yksilöivän avaimen integraation toteuttajalle tai lisää itse tunnukset integraation asetuksiin.

Ohjeet ohjelmistorajapintatunnusten luomiseen tästä linkistä.

X-Netvisor-Authentication-PartnerId

Kumppanitunnus. Netvisorin tuki luo kumppanille tunnuksen ja avaimen integraatiokohtaisesti. Tunnukset toimitetaan kumppanille sähköpostitse. Mikäli kumppanilla on useampia järjestelmiä liitettynä Netvisoriin, jokaiselle integraatiolle luodaan omat kumppanitunnukset 

X-Netvisor-Authentication-Timestamp

Integraatiopyynnön aikaleima ansi-muodossa kellonajan kanssa, GMT+0. Esim. 2023-05-04 12:00:00.000 

X-Netvisor-Interface-Language

Kielitieto rajapinnalle. Vastaussanomien kielituki, joka vaikuttaa lähinnä virheviesteihin. Tiedon tulee olla ISO-3166 –muodossa. Mahdolliset kielet ovat FI/SE/EN.

X-Netvisor-Organisation-ID

Kohdeyrityksen y-tunnus. Y-tunnus määrää yrityksen, johon pyynnöt kirjautuvat tai jonka tietoja haetaan. Yrityksen Netvisor-käyttäjällä, jonka ohjelmistorajapintatunnuksia käytetään integraatiossa, tulee olla oikeus tähän yritykseen.

X-Netvisor-Authentication-TransactionId

Pyynnön yksilöivä tunniste. Arvon tulee olla jokaisessa pyynnössä eri. Mikäli kumppani on lähettänyt aikaisemmin aineistoa käyttäen tätä tunnistetta, pyyntö hylätään ja palautetaan REQUEST_NOT_UNIQUE –virhe. Tunniste tarkistetaan kumppanitunnustasolla eli samaa tunnistetta ei voi käyttää eri asiakkailla.

X-Netvisor-Authentication-MACHashCalculationAlgorithm

Jotta rajapinta ottaa vastaan SHA-256 tiivisteen, tulee tieto antaa otsikoissa. Arvoksi annetaan SHA256.

X-Netvisor-Authentication-UseHTTPResponseStatusCodes

X-Netvisor-Authentication-UseHTTPResponseStatusCodes. Suosittelemme kaikille kumppaneillemme lisäämään sen integraatiototeutuksen kaikkiin pyyntöihin jo nyt mikäli rajapintatoteutus sen sallii. Headerin voi aktivoida asettamalla arvon 1 headerille X-Netvisor-Authentication-UseHTTPResponseStatusCodes. Tämä mahdollistaa oikeiden statuskoodien, kuten 400, 401, 403, 500, ja 200, käytön rajapinnan vastauksissa:


200 = OK

400 = Virheellinen data

401 = Autentikointi epäonnistui

403 = Palvelun käyttövirhe

500 = Sisäinen palvelinvirhe


X-Netvisor-Authentication-MAC

MAC-koodilla tarkistetaan pyynnön lähettäjä. Koodin laskennassa käytetään kaikkia yllämainittuja HTTP-otsikoita sekä integraatiokumppanille toimitettua yksilöivää avainta ja käyttäjän ohjelmistorajapintatunnuksen yksilöivää avainta. Tunnusten avaimia ei kuitenkaan toimiteta HTTP-otsikoissa. Niitä käytetään pelkästään MAC-koodin laskentaan ja tarkastukseen. MAC-koodi muodostetaan yhdistämällä alla olevan taulukon tiedot yhdeksi merkkijonoksi, josta lasketaan SHA256-tarkistesumma. Tietoja yhdistettäessä tietojen välissä käytetään &-merkkiä; URI-osuus pitää olla sama minne pyyntö lähetetään mukaan lukien isot ja pienet kirjaimet.

Laskenta onnistuu yhdistämällä taulukon tiedot seuraavasti

Uri (jonne pyyntö lähetetään)

https://isvapi.netvisor.fi/accounting.nv

X-Netvisor-Authentication-Sender

ClientName

X-Netvisor-Authentication-CustomerId

Integraatiokayttajan tunnus

X-Netvisor-Authentication-Timestamp

2023-05-04 12:00:00.000

X-Netvisor-Interface-Language

FI

X-Netvisor-Organisation-ID

1967543-8

X-Netvisor-Authentication-TransactionId

123456

Integraatiokäyttäjän yksilöivä avain

7cd680e89e880553358bc07cd28b0ee2

Integraatiokumppanin yksilöivä avain

07f94228d149a96b2f25e3edad55096e

Tiedoista muodostettu merkkijono:

https://isvapi.netvisor.fi/accounting.nv&ClientName&Integraatiokayttajan tunnus&2023-05-04 12:00:00.000&FI&1967543-8&123456 &7cd680e89e880553358bc07cd28b0ee2&07f94228d149a96b2f25e3edad55096e

Laskemalla merkkijonosta SHA256-tarkistesumma, saadaan MAC-koodiksi:

67fec485ef881ee00ffe4b926f8d9aebaee973ba0c8f2cadec51528026827edb

HUOM! Jos käyttämäsi URI sisältää erikoisemerkkejä tai ääkkösiä, se tulee enkoodata ISO-8859-1 -merkistöllä, jotta MAC lasketaan oikein ja rajapinta tunnistaa sen.






Oliko tästä vastauksesta apua? Kyllä Ei

Send feedback
Pahoittelut, että emme voineet auttaa. Anna palautetta, jotta voimme parantaa tätä artikkelia.