Suomi.fi-tuote – Kehittäjän ohje: WebApi-yhteys

Print Friendly, PDF & Email
 


Tämä ohjeistus on suunnattu asiointipalvelun tekniselle asiantuntijalle, joka on toteuttamassa WebAPI-rajapintaliitosta asiointipalvelun ja Suomi.fi-valtuuksien. Toteutuksen voi tehdä pelkästään rajapintakuvauksen perusteella, mutta tästä sivusta saattaa olla apua.

Rajapintaliitoksen tekninen käyttöönotto voidaan karkealla tasolla jakaa seuraaviin työvaiheisiin:

1. Rajapintakuvauksiin tutustuminen

2. Tietoliikenneyhteyksien tarkistaminen testiympäristössä

3. Rajapintojen kutsuminen esimerkkitoteutuksen avulla

4. Rajapintojen kutsuminen ohjelmakoodista

5. Toteutuksen verifiointi testiympäristössä

6. Tietoliikenneyhteyksien tarkistaminen tuotantoympäristössä

7. Toteutuksen verifiointi tuotantoympäristössä

Käsitteet

Asiakasorganisaatio on asiointipalvelun omistaja-organisaatio  eli Suomi.fi-valtuuksien hyödyntäjä.

Asiointipalvelu on loppukäyttäjälle tarkoitettu palvelukanava, joka hyödyntää Suomi.fi-valtuuksia, kun se tarkistaa toisen puolesta asioinnin valtuuksia.

Liityntäpalvelin-rajapinta on Valtuudet-palvelun rajapinta, jota asiointipalvelut kutsuvat Suomi.fi-palveluväylän liityntäpalvelimen kautta (kts. tekninen aineisto). Toinen vaihtoehtoinen tapa Suomi.fi-valtuuksiin liittymiseen on ns. WebAPI-rajapinta. Käytettävä liittymistapa määräytyy asiakasorganisaation käyttötapauksen perusteella.

WebAPI-rajapinta on Valtuudet-palvelun rajapinta, jota asiointipalvelut kutsuvat julkisen internetin yli (oauth-protokollalla). Toinen vaihtoehtoinen tapa palveluun liittymiseen on ns. liityntäpalvelin-rajapinta (ks. liityntäpalvelin-rajapinta). Käytettävä liittymistapa määräytyy asiakasorganisaation käyttötapauksen perusteella.

Esiehdot

  • VRK:n Valtuudet-palvelun käyttöönoton projektipäällikkö on toimittanut asiakasorganisaatiolle rajapinnan käyttöön tarvittavat kolme tunnistetietoa. Nämä ovat: WebAPI client ID, API key ja OAuth-salasana.
  • Asiakasorganisaatio on toimittanut VRK:n Valtuudet-palvelun käyttöönoton projektipäällikölle paluuosoitteen. Paluuosoite pitää olla https-protokollalla.
  • Teknisen toteutuksen tekijä on tutustunut rajapintakuvaukseen ja tekniseen dokumentaatioon.

Rajapinnan kuvaus

Web-API rajapinta tarjoaa valintakäyttöliittymän puolesta asioinnin kohteiden valintaan sekä REST-kyselyrajapinnat asiointioikeuskyselyiden tekemiseen. Rajapinnan kutsumisessa hyödynnetään REST / JSON -rajapintoja, jotka on suojattu joko OAuth2- +API key-suojauksella.

Testiympäristössä toimiminen

Tietoliikenneyhteyksien tarkistaminen testiympäristössä

Ennen asiakasorganisaation toteutuksen aloitusta on hyvä tarkistaa, että tietoliikenneyhteydet toimivat asiointipalvelun ja kutsuttavan Valtuudet-palvelun WebAPI-rajapinnan välillä.

Palvelun osoite asiakastestiympäristössä (toteutuksen aikainen testaus)

Yhteyspiste (rova_host): https://asiointivaltuustarkastus.test.suomi.fi/

Esim. HPA rekisteröintikutsu:
https://asiointivaltuustarkastus.test.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666

Palvelu edellyttää, että pyyntöihin on liitetty tarvittavat tunnistetiedot ja tarkistesumma header-osioon. Tietoliikenneyhteyden voi kuitenkin testata selaimella tai komentorivityökalulla esimerkiksi yllä näkyvillä osoitteella. Ilman asianmukaisia pyynnön header-tietoja, vastaukseksi tulee ”Http Error 403 Forbidden”.

Näin voit tarkistaa tietoliikenneyhteyden komentoriviltä testiympäristössä:

$ wget https://asiointivaltuustarkastus.test.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666
--2017-02-08 14:37:32-- https://asiointivaltuustarkastus.test.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666
Selvitetään osoitetta asiointivaltuustarkastus.test.suomi.fi (asiointivaltuustarkastus.qa.suomi.fi)... 131.207.22.80
Yhdistetään palvelimeen asiointivaltuustarkastus.test.suomi.fi (asiointivaltuustarkastus.qa.suomi.fi)|131.207.22.80|:443... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 403 Forbidden
2017-02-08 14:37:32 VIRHE 403: Forbidden.

Jos yhteys onnistuu, komentoriville tulostuu: 131.207.22.80|:443… yhdistetty

Paremman vastauksen saamiseksi on generoitava pyyntösanoma, jossa on mukana tunnistetiedot. Tarkistesumma on kuitenkin voimassa hyvin lyhyen ajan, joten se edellyttää uuden pyyntösanoman generoimista testaamisen jatkamiseksi.

Rajapintojen kutsuminen esimerkkitoteutuksen avulla

Esimerkkitoteutusten käyttäminen ei ole välttämätöntä, mutta saattaa helpottaa testailua ja toteutusta.

WebAPI-rajapinnan kutsumiseen on valmis lähdekoodi kahdella eri ohjelmointikielellä VRK:n Githubissa, ja sitä voi hyödyntää testailuun ja oman toteutuksen pohjaksi.

Node.js clientin käyttäminen testailuun

WebAPI Node Client sisältää kaikki tarvittavat toiminnallisuudet asiointipalvelun asiakaspään toteutukseksi, ja se on tarkoitettu palvelun testailuun, tutustumiseen ja toteutuksen tueksi. Sitä ei ole kuitenkaan suunniteltu tuotantokäyttöön, eikä sitä pidä missään tapauksessa sellaisenaan tuotannollistaa.

1. Asenna Node.js (versio 6.6.0).

2. Lataa Node Client -projekti Githubista.

3. Lisää projektihakemistoon varmenteet (Ks. alla esimerkki testivarmenteiden luonnista).

4. Lisää projektihakemistoon config.json -tiedosto ja sinne varmennetiedostojen tiedot ja Valtuudet-palvelun käyttöönoton projektipäälliköltä saamasi tunnistetiedot.

5. Aja komentorivillä `npm install` ja `node WebApiClient.js`

6. Mene selaimella osoitteeseen `/register/hpa/[HETU]`. Esim. HPA https://localhost:8904/register/hpa/010180-9026 tai YPA https://localhost:8904/register/ypa/031046-9982

7. Asiointioikeushaku käynnistyy ja ohjaa käyttäjän päämiehen valintaan Valtuudet-palveluun. Käyttäjä siirtyy takaisin ja selainikkunaan tulostuu haun lopputulos, esim:

Testivarmenteiden luomisen voi tehdä esimerkiksi näin:

openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem

Node.js clientin debuggaaminen

Jotta toimintalogiikka on helpompi ymmärtää, sattaa olla hyödyllistä debugata koodia. Tällöin on mahdollista hahmottaa paremmin funktioiden suoritusjärjestys ja muuttujien sisältö.

Käynnistäminen debug-tilaan onnistuu näin:

> node --inspect --debug-brk WebApiClient.js
Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/2746fa2b-704a-4a88-acdc-166f60e183d4
Debugger attached.

Kopioi tämän jälkeen Chrome-selaimen osoiteriville komentoriville tulostunut URL (alkaen chrome-devtools://..). Tämän jälkeen voit asettaa lähdekoodiin pysäytyspisteitä ja käynnistää asiointioikeushaun samoin kuin aiemmassa kappaleessa on kuvattu.

Rajapintojen kutsuminen ohjelmakoodista

Henkilön puolesta asiointi (HPA)

Alla on kuvattu asiointihakusekvenssin vaiheet henkilön puolesta asioinnissa (WebAPI HPA). Mallissa on listattu pyyntö- ja vastaussanomissa välitettävät muuttajat. Lisäksi pitää välittää joitakin asiointipalvelukohtaisia vakioita, jotka on kuvattu rajapintakuvauksessa.

1. (GET) Rekisteröi WebAPI sessio: {rova_host}/service/hpa/user/register/{client_id}/{hetu}?requestId={requestId}

  • headerissa: X-AsiointivaltuudetAuthorization (tarkistesumma)
  • poimi sessionId paluusanomasta
  • poimi userId paluusanomasta

2. (GET) Siirrä käyttäjä päämiesvalintaan Valtuudet-palveluun: {rova_host}/oauth/authorize?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&user={user}&lang={lang}

  • välitetään userId URLin muuttujan user-arvona
  • käyttäjä on ohjattu redirect urliin, jossa parametrina code
  • poimi vastauksesta authorization_code

3. (POST) Lähetä authorization_code: {rova_host}/oauth/token?grant_type=authorization_code&redirect_uri={redirect_uri}&code={code}

  • välitetään authorization_code URLin muuttujan code-arvona
  • välitetään HTTP Basic Authorization header
  • poimi vastauksesta access_token

4. (GET) Hae valittu päämies tai päämiehet: {rova_host}/service/hpa/api/delegate/{sessionId}?requestId={requestId}

  • lasketaan (ks. alla oleva kappale) ja välitetään tarkistesumma header-osiossa
  • headerissa: X-AsiointivaltuudetAuthorization (tarkistesumma)
  • välitetään access_token header-osiossa
  • välitetään sessionId URLissa
  • poimi vastauksesta hetu-lista

5. (GET) Lähetä asiointioikeuskysely: {rova_host}
/service/hpa/api/authorization/{sessionId}/{personId}?requestId={requestId}&issues={issues}

  • lasketaan ja välitetään tarkistesumma header-osiossa (ks. alla oleva kappale)
  • headerissa: X-AsiointivaltuudetAuthorization (tarkistesumma)
  • välitetään access_token header-osiossa
  • välitetään sessionId URLissa
  • välitetään issues -parametrin arvona URI, jos kysely halutaan kohdistaa koskemaan tiettyä kohdetta (asia). Tämä on valtuuskoodistossa asian yksilöivä URI.
  • poimi vastauksesta ALLOWED/DISALLOWED

Esimerkkivastaus:

[{"result":"ALLOWED","reasons":[],"principal":{"personId":"120508A950F","name":"Kumpulainen Anni Emilia"}}]

Asiointioikeushaun sekvenssi henkilön puolesta asioinnissa:

AuthorizationList

On mahdollista hakea kaikki valitun päämiehen myöntämät kerralla authorizationList-kyselyn avulla.

AuthorizationList-vastaus sisältää tiedon asiointirooleista, joihin asiamiehellä on valitun päämiehen puolesta asiointioikeus. Asiointioikeus ilmaistaan kentässä ”roles”, jonka arvona palautetaan joko ALL (rajoittamaton asiointioikeus) tai lista asioista (issue uri), joita asiointioikeus koskee. Mikäli lista on tyhjä, ei asiointioikeutta ole.

Kysely suoritetaan kohdistamalla asiointioikeuskyselyssä kysely osoitteeseen /service/hpa/api/authorizationlist/. Tavallisessa asiointioikeuskyselyssä kysely kohdistetaan osoitteeseen /service/hpa/api/authorization/

Esimerkkivastaus, kun henkilöllä 010132-998W on seuraavat valtuudet: adoptiotietojen tilaaminen, ajoneuvotietojen tilaaminen, sotalapsitietojen tilaaminen ja sukuselvityksen tilaaminen:

[{"reasons":[],"roles":

["http://valtuusrekisteri.suomi.fi/sotalapsitietojen_selvittaminen",

"http://valtuusrekisteri.suomi.fi/adoptiotietojen_selvittaminen",

"http://valtuusrekisteri.suomi.fi/sukuselvityksen_tilaaminen",

"http://valtuusrekisteri.suomi.fi/ajoneuvotietojen_selvittaminen"],

"principal":{"personId":"010132-998W","name":"Tuulispää Edelweiss"}}]

Esimerkkivastaus, kun toimitaan alaikäisen huollettavan puolesta:

[{"reasons":[],"roles":["ALL"],"principal":{"personId":"120508A950F","name":"Kumpulainen Anni Emilia"}}]

Yrityksen puolesta asiointi (YPA)

Yrityksen puolesta asioinnissa (YPA) ensimmäisen vaiheen rekisteröintikutsu suoritetaan eri osoitteeseen. Samoin varsinaiset asiointioikeuskyselyt 4 ja 5 poikkeavat.

Alla on kuvattu asiointihakusekvenssin vaiheet yrityksen puolesta asioinnissa (WebAPI YPA). Mallissa on listattu pyyntö- ja vastaussanomissa välitettävät muuttajat. Lisäksi pitää välittää joitakin asiointipalvelukohtaisia vakioita, jotka on kuvattu rajapintakuvauksessa.

1. (GET) Rekisteröi WebAPI sessio: {rova_host}/service/ypa/user/register/{service_id}/{hetu}?requestId={requestId}

  • headerissa: X-AsiointivaltuudetAuthorization (tarkistesumma)
  • poimi sessionId paluusanomasta
  • poimi userId paluusanomasta

2. (GET) Siirrä käyttäjä päämiesvalintaan Valtuudet-palveluun: {rova_host}/oauth/authorize&client_id=web-api-client&response_type=code&redirect_uri={redirect_uri}&user={user}&lang={lang}

  • välitetään userId URLin muuttujan user-arvona
  • käyttäjä on ohjattu redirect urliin, jossa parametrina code
  • poimi vastauksesta authorization_code

3. (POST) Lähetä authorization_code: {rova_host}/oauth/token?grant_type=authorization_code&redirect_uri={redirect_uri}&code={code}

  • välitetään authorization_code URLin muuttujan code arvona
  • välitetään HTTP Basic Authorization header
  • poimi vastauksesta access_token

4. (GET) Hae lista puolesta asioijan valitsemista kohdeorganisaatioista ja niihin liittyvistä rooleista: {rova_host}/service/ypa/api/organizationRoles/{sessionId}?requestId={requestId}

  • lasketaan (ks. alla oleva kappale) ja välitetään tarkistesumma header-osiossa
  • headerissa: X-AsiointivaltuudetAuthorization (tarkistesumma)
  • välitetään access_token header-osiossa
  • välitetään sessionId URLissa
  • poimi vastauksesta organizationList

Esimerkkivastaus:

[{"name":"Asunto Oy Tampereen Ratinanpuisto","identifier":"2305162-8","complete":true,"roles":["IS"]}]

Tarkistesumman laskeminen

Esimerkki Java-koodilla

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protected String getAuthorizationValue(String path) throws IOException {
    String timestamp = ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_DATE_TIME);
    return config.getClientId() + " " + timestamp + " " + hash(path + " " + timestamp, config.getApiKey());
}
private String hash(String data, String key) throws IOException {
    try {
        Mac mac = Mac.getInstance(HMAC_ALGORITHM);
        SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_ALGORITHM);
        mac.init(signingKey);
        byte[] rawHmac = mac.doFinal(data.getBytes());
        String result = new String(Base64.getEncoder().encode(rawHmac));
        return result;
    catch (NoSuchAlgorithmException | InvalidKeyException | IllegalStateException e) {
        throw new IOException("Cannot create hash", e);
    }
}

Koodiesimerkki kokonaisuudessaan:

https://github.com/vrk-kpa/roles-auths-client/blob/master/src/main/java/fi/vm/kapa/rova/client/webapi/impl/AbstractWebApiRiClient.java

Esimerkki Node.js-koodilla

1
2
3
4
5
6
7
 function xAuthorizationHeader(path) {
    var timestamp = moment().format();
    var checksum = crypto.createHmac('sha256', CLIENT_SECRET)
        .update(path + ' ' + timestamp)
        .digest('base64');
    return CLIENT_ID + ' ' + timestamp + ' ' + checksum;
}

(Tulossa) Koodiesimerkki kokonaisuudessaan:

https://github.com/vrk-kpa/roles-auths-web-api-node-client/blob/master/WebApiClient.js

Tarkistesumman verifiointi

Alla näkyvää esimerkkilaskentaa voi käyttää tarkistesumman laskemiseen toteutetun funktion verifioimiseen. Näillä syötteillä pitäisi tulla sama lopputulos.

Esimerkki tarkistesumman syötteistä ja lopputuloksesta:

Path = ”/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666”
ClientId = ”ed4b7ae7”
ApiKey = ”3ba56df8-88b8-4805-9b04-2f8e7a61”
TimeStamp = ”2017-02-09T10:29:42.09Z”
__________________
Lopputulos:
ed4b7ae7 2017-02-09T10:29:42.09Z z7X+xWtrvth1L7Ql6B/4xZ0iQ1VjToWX4TnHVLo8RGo=

Asiointioikeuskyselyn kohdistaminen valtuuskoodiin (HPA) – valtuus valtuusrekisterissä

Asiointioikeuskyselyn voi kohdistaa tiettyyn valtuuskoodiin tai valtuuskoodeihin lisäämällä authorization-kyselyyn yksinkertaisesti parametrin &issues={issues}.

Kohta 4.3. Authorization: https://esuomi.fi/palveluntarjoajille/valtuudet/tekninen-aineisto/web-api-rajapinta-ja-valintakayttoliittyma/

Parametriksi voi antaa useamman valtuuskoodin kerralla, mutta silloin vastauksesta ei käy ilmi, mihin valtuuskoodiin asiointioikeus on evätty. Jos halutaan tietää, mihin valtuuskoodiin asiointioikeus on evätty, jokaiseen valtuuskoodiin pitää tehdä erillinen kysely.

Yleinen käyttötapaus:

1 Henkilö A on myöntänyt valtuuden Henkilölle B toimia puolestaan valtuudessa (asiassa) C. Valtuus on tallennettu valtuusrekisteriin (tuotantoympäristö: https://valtuusrekisteri.suomi.fi/, testiympäristö: https://valtuusrekisteri.test.suomi.fi/).

2. Asiointipalvelulle D on perustettu palvelu E Väestörekisterikeskukselle.

3. Palvelulle E on konfiguroitu hallintakäyttöliittymälle käyttöön valtuus C.

4. Henkilö B kirjautuu asiointipalveluun D ja valitsee asioivansa asiassa C.

5. Henkilö B saa valittavakseen ja valitsee valintakäyttöliittymällä päämiehen henkilön A.

6. Järjestelmä lähettää asiointioikeuskyselyn (authorization), jossa tarkistetaan, onko henkilöllä B oikeus toimia henkilön A puolesta asiassa C.

YPA-rajapinnan vastausesimerkki, kun valtuusrekisterissä on valtuuksia:

Yritys y-tunnuksella 2036583-2 on luonut valtuuden ”Työperäinen maahanmuutto” henkilölle, jonka henkilötunnus on 010180-9026. Henkilö kirjautuu sisään ja valitsee valintakäyttöliittymältä yrityksen 2036583-2. Konfiguroitu palvelun X sääntömoottorissa päälle asetus ”Henkilölle löytyy valtuus valtuusrekisterissä http://valtuusrekisteri.suomi.fi/Tyoperainen_maahanmuutto

Vastaus

[{"name":"Maanrakennus Ari Eerola T:mi","identifier":"2036583-2","complete":true,"roles":["http://valtuusrekisteri.suomi.fi/tyoperainen_maahanmuutto"]}]

Toteutuksen aikainen testaus ja verifiointi

Asiakastestiympäristöön luotu palvelu on vapaasti käytettävissä toteutuksen aikaiseen testaukseen ja toteutuksen verifiointiin. Testipalvelu on käytettävissä myös tuotantovaiheeseen siirtymisen jälkeen mahdollisten toteutusmuutosten verifiointiin.

Palvelua voi testata oheisilla henkilötunnuksilla ja y-tunnuksilla:

HUOM! Henkilötunnukset ovat testiaineistoa! Suomi.fi-valtuuksien testiaineistoa

Tuotantoympäristössä toimiminen

Tietoliikenneyhteyksien tarkistaminen tuotantoympäristössä

Yhteyspiste (rova_host): https://asiointivaltuustarkastus.suomi.fi/

Esim. HPA rekisteröintikutsu:

https://asiointivaltuustarkastus.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666

Näin voit tarkistaa tietoliikenneyhteyden komentoriviltä tuotantoympäristössä:

$ wget https://asiointivaltuustarkastus.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666
--2017-02-08 13:49:47-- https://asiointivaltuustarkastus.suomi.fi/service/hpa/user/register/ed4b7ae7/080297-915A?requestId=02fd35dc-99e6-477b-b6e2-03f02cbf3666
Selvitetään osoitetta asiointivaltuustarkastus.suomi.fi (asiointivaltuustarkastus.suomi.fi)... 131.207.22.78
Yhdistetään palvelimeen asiointivaltuustarkastus.suomi.fi (asiointivaltuustarkastus.suomi.fi)|131.207.22.78|:443... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 403 Forbidden
2017-02-08 13:49:47 VIRHE 403: Forbidden

Jos yhteys onnistuu, komentoriville tulostuu: 131.207.22.78|:443… yhdistetty

Tuotantotestaus ja verifiointi

Tuotannossa ei voi suorittaa varsinaisesti testausta, mutta toteutuksen toimivuuden voi verifioida käyttämällä oikeita henkilötunnuksia hakuparametreina. Testihenkilötunnukset eivät toimi tuotannossa.

Ongelmatilanteet

Ota mahdollisissa ongelmatilanteissa yhteyttä Väestörekisterikeskuksen Valtuudet-palvelun käyttöönoton projektipäällikköön, joka välittää tukipyynnön tarvittaessa tekniselle tiimille selvitettäväksi. Lähtökohtaisesti asiointipalvelun toteuttajien on syytä varmistaa ensin itse, että ongelma ei johdu virheistä asiakasorganisaation toteutuksessa, konfiguraatioista tai tietoliikenneyhteyksistä.

Alle on koottu käyttöönotoissa ilmenneitä ongelmatilanteita ja ratkaisuja niihin.

WebAPI HPA: Prosessi pysähtyy 403 Forbidden -virheeseen sivulla https://asiointivaltuustarkastus.suomi.fi/oauth/authorize sen jälkeen, kun olen valinnut huollettava ”Valitse, kenen puolesta asioit” -sivulla ja painanut ”Jatka”-nappia

  • Tarkista, että toteutus käyttää käyttöönoton projektipäällikön toimittamia tunnistetietoja ja ne ovat nimenomaan käytettävään ympäristöön oikeat tunnistetiedot.
  • Tarkista, että sama toteutus toimii testiympäristössä.
  • Ratkaisu eräässä käyttöönotossa: Kutsuttavassa osoitteessa /oauth/authorize oli yksi kauttaviiva liikaa ja osoite oli virheellisesti https://asiointivaltuustarkastus.suomi.fi//oauth/authorize?client_id=….

WebAPI YPA: Rekisteröintikutsu palauttaa 403 Forbidden

  • Tarkista, että toteutus käyttää käyttöönoton projektipäällikön toimittamia tunnistetietoja ja ne ovat nimenomaan käytettävään ympäristöön oikeat tunnistetiedot
  • Ratkaisu eräässä käyttöönotossa: X-AsiointivaltuudetAuthorization-headerin nimessä oli ylimäärinen kaksoispiste merkkijonon perässä

WebAPI HPA: Rekisteröintikutusta tulee timeout tai selaimella testatessa ERR_CONNECTION_REFUSED

  • Tarkista tietoliikenneyhteydet esim. wget-työkalulla komentoriviltä (esimerkki tässä dokumentissa aiemmin)
  • Ratkaisu eräässä käyttöönotossa: VRK:n päässä oli virheellisesti estetty palomuurista tietoliikenne ulkoverkosta infrastruktuurimuutosten yhteydessä.

WebAPI HPA: Kutsut palauttaa HTTP 400 Bad Request

  • Tarkista tietoliikenneyhteydet
  • Ratkaisu eräässä käyttöönotossa: Asiakasorganisaation ympäristössä oli virheellisesti konfiguroitu proxy, mikä esti tietoliikenteen.

WebAPI YPA: Kutsut palauttaa HTTP 403 Forbidden

  • Ongelma johtuu lähes aina siitä, että pyynnön header-tiedot eivät ole kunnossa. Esim. X-AsiointivaltuudetAuthorization-header puuttuu kokonaan tai tarkistesumman laskenta tuottaa virheellisen tuloksen.
  • Tarkista, että toteutus käyttää käyttöönoton projektipäällikön toimittamia tunnistetietoja ja ne ovat nimenomaan käytettävään ympäristöön oikeat tunnistetiedot.
  • Tarkista, että pyyntö sisältää kaikki tarvittavat tiedot.
  • Tarkista, että tarkistesumman laskenta tuottaa oikean tuloksen.
  • Ratkaisu eräässä käyttöönotossa: Asiakasorganisaation C#-toteutuksessa käyttämä RestSharp.org -kirjasto ei lisännyt header-tietoa oikein. Ongelma ratkesi käyttämällä standardia WebRequest C# -kirjastoa.

WebAPI YPA: Rekisteröintikutsu palauttaa HTTP 403 Forbidden

  • Ongelma johtuu lähes aina siitä, että pyynnön header-tiedot ei ole kunnossa. Esim. X-AsiointivaltuudetAuthorization-header puuttuu kokonaan tai tarkistesumman laskenta tuottaa virheellisen tuloksen.
  • Tarkista, että toteutus käyttää käyttöönoton projektipäällikön toimittamia tunnistetietoja ja ne on nimenomaan käytettävään ympäristöön oikeat tunnistetiedot.
  • Tarkista, että pyyntö sisältää kaikki tarvittavat tiedot.
  • Tarkista, että tarkistesumman laskenta tuottaa oikean tuloksen.
  • Ratkaisu eräässä käyttöönotossa: Asiakasorganisaation palvelinympäristössä oli käytössä väärä aikavyöhyke, mikä sotki tarkistesumman laskemisen.

 


 Dokumentin tiedot

Versionro Mitä tehty Pvm/henkilö
 1.0 Sivu julkaistu eSuomessa 20.07.17 / NP
 1.1  Sivu päivitetty  28.11.17 / NP
 1.2  Sivua tarkistettu  11.1.18 / TR