Web API-gränssnittet och valgränssnittet
Web API-gränssnittet erbjuder ett valgränssnitt via vilket man väljer objekt för uträttande av ärenden för någon annan, dvs. de personer som fullmakterna gäller. Web API-gränssnittet erbjuder också REST-förfrågningsgränssnitt, via vilka man gör förfrågningar om rätt att uträtta ärenden, dvs. utreder om personen har rätt att uträtta ärenden för någon annans räkning.
Vid anrop till gränssnitt utnyttjas REST-/JSON-gränssnitt som är skyddade med antingen API Key- eller OAuth2 + API Key-skydd.
För anrop av tjänsten Fullmakter behöver ärendetjänsten följande uppgifter: Myndigheten för digitalisering och befolkningsdata skickar i samband med registreringen av ärendetjänsten Web API client ID-beteckningen, API Key och Oauth-lösenordet till kundorganisationen.
- Web API client ID: Alfanumerisk kod med 8 tecken
- API Key: teckensträng
- Oauth-lösenord: Oauth-lösenord
Om Web API-sessionen är föråldrad returnerar gränssnittet svaret HTTP 401.
Identifikationsuppgiften API Key som behövs för att anropa API Key-skyddade gränssnitt förmedlas via X-AsiointivaltuudetAuthorization-HTTP-headern. Som värde för headern anges Web API Client ID, tidsstämpel och kontrollbelopp med mellanslag. Närmare beskrivningar av dessa finns i tabellen nedan.
Fält | Beskrivning |
|---|---|
Web API Client ID | Kundidentifikation per ärendetjänst. |
tidsstämpel | Tidsstämpeln anges i formatet ISO 8601, till exempel 1997-07-16T19:20+01:00. Gränssnittet avslår anrop vars tidsstämpel avviker från NTP-synkroniserade klockslag ±5 minuter. |
kontrollbelopp | Kontrollbeloppet beräknas utifrån sökvägen för begäran och tidsstämpeln separerade med mellanslag. Från källmaterialet beräknas ett HMAC-SHA256-sammanfattning vars krypteringsnyckel är API Key. Resultatet av den binära sammanfattningen är Base64-kodad.
|
Verifiering av funktion för beräkning av kontrollbelopp
Med nedanstående inmatningar kan du säkerställa att funktionen för beräkning av kontrollbeloppet fungerar korrekt. När du ger funktionen nedanstående inmatningar ska slutresultatet vara detsamma som nedan.
Path = ”/service/hpa/user/register/ae6r5iu9/111111-1111?requestId=a1b2c3d4e5f6g7”
ClientId = ”ae6r5iu9”
ApiKey = ”5ki56df8-89b8-4815-9g04-2f8e7c90”
TimeStamp = ”2017-02-09T10:29:42.09Z”
__________________
Slutresultat:
ae6r5iu9 2017-02-09T10:29:42.09Z QPbl7lf1i6XJy5WgKwkPU6eJD164PqekipCx23yhtek=
För att anropa OAuth2-skyddade gränssnitt behövs client_id, dvs. kundens identifikation och client_secret, dvs. kundens lösenord (se tabell 3).
Uppgifter som behövs för att anropa OAuth2-gränssnittet:
- client_id: kundens identifikation
- client_secret: kundens lösenord
OAuth2-gränssnittet har två endpoints, dvs. slutpunkter, som definieras som URL-adresser, dvs. webbadresser. De beskrivs i tabellen nedan.
URL | Beskrivning |
|---|---|
{rova_host}/oauth/authorize&client_id=web-api-client&response_type=code | Det URL som användaren hänvisas till för att göra val.
Svar:
|
Exempelbegäran:
GET /oauth/authorize?client_id=42bbe569&response_type=code&requestId=requestId&user=5b329323-17a4-4a38-8758-2ee5686ad4e7&state=fbd24182-016c-45ea-ae9c-630a4b00188f&redirect_uri=http://localhost:8901/hpa_web_api.html&lang=fi HTTP/1.1
Host: localhost:18102
Exempelsvar:
Exempel på omdirigering:
http://localhost:8901/hpa_web_api.html?code=3lN85M&state=fbd24182-016c-45ea-ae9c-630a4b00188f
URL | Beskrivning |
|---|---|
POST {rova_host}/oauth/token?grant_type=authorization_code | Token URL, där code från valgränssnittet kan bytas till OAuth token.
Svar:
|
Exempelbegäran:
POST /oauth/token?code=pvGVSH&grant_type=authorization_code&redirect_uri=http://localhost:9999/callback/hpa HTTP/1.1
Authorization: Basic NDJiYmU1Njk6YmFkYi1hYmU0LWNhZmU=
Host: localhost:18102
Connection: close
Content-Length: 0
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:06:41 GMT
Connection: close
{”access_token”:”c77e38fe-ddb4-42c4-80bd-31ad83f3b618″,”token_type”:”bearer”,”refresh_token”:”e043c886-8048-4c54-b85b-a55a25a68891″,”expires_in”:599,”scope”:”read write trust”}
Begärande- och slutanvändarkoder
Begäran som skickas till Web API-gränssnittet ska ha en begärandekod (requestId). Begärandekoden är en identifikationskod som specificerar begäran och med vilken en enskild händelse kan identifieras i loggarna.
Inledande av Web API-sessionen, dvs. begäran om registrering
I tabellen beskrivs inledande av Web API-sessionen, dvs. serviceadresserna för REST-anrop vid registreringsbegäran samt exempelbegäran och -svar.
Uträttande av ärenden för en persons räkning (HPA)
GET URL: {rova_host}/service/hpa/user/register/{service_id}/{personId}?requestId={requestId}
Exempelbegäran:
GET /service/hpa/user/register/42bbe569/010180-9026?requestId=requestId HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:23:34.481Z +m5GW11Zxu7taZd0XEspavunQQhIGooCCuLztjlCXSQ=
Accept: application/json;charset=UTF-8
Host: localhost:18102
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Security-Policy: default-src ’self’; script-src ’self’ ’unsafe-inline’; style-src ’self’ ’unsafe-inline’;
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:23:34 GMT
{”sessionId”:”6539d4ae-3791-4f5c-946b-7aaeb58f7107″,”userId”:”6f920b7d-be67-4a32-b431-340e21bd9359″}
Uträttande av ärenden för ett företags räkning (YPA)
GET URL: {rova_host}/service/ypa/user/register/{service_id}/{personId}?requestId={requestId}
Exempelbegäran:
GET /service/ypa/user/register/42bbe569/010180-9026?requestId=requestId HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T12:39:26.964Z zCPlTjoRhaQUFaTAETEU6gzN7+MWH1CDM/3cKAwG3hQ=
Accept: application/json;charset=UTF-8
Host: localhost:18102
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Security-Policy: default-src ’self’; script-src ’self’ ’unsafe-inline’; style-src ’self’ ’unsafe-inline’;
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 12:39:27 GMT
{”sessionId”:”27652cd4-53c6-4f83-8ed4-ffda6a7c3d17″,”userId”:”cbaa6a42-d13a-4b12-80f9-7f488a8dbe68″}
Uträttande av ärenden för en persons räkning (HPA), överförd
GET URL: {rova_host}/service/hpa/user/register/transfer/{transfer_token}/{service_id}/{personId}?requestId={requestId}
Exempelbegäran:
GET /service/hpa/user/register/transfer/8UYQjnIY4vpU8DQVzviGDqH7Kxt9sW5W
/f5f0d662/010180-9026?requestId=requestId?requestId=requestId
HTTP/1.1
X-AsiointivaltuudetAuthorization: f5f0d662 2016-09-14T08:48:15.503Z Kt2vtNGi3FIDsTeEgAcJfqR17N+jYAOOW/XA48VEGf0=
Accept: application/json;charset=UTF-8
Host: localhost:18102
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=5C0B947E916DF07CBC929BBFD629EF2E; Path=/; HttpOnly
X-Application-Context: application:18102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 14 Sep 2016 08:48:15 GMT64
{”sessionId”:”9a980afa-1ea5-402e-a405-d52a08e36ef1″, ”userId”:”00b1c274-97a4-48de-a1a4-c634e2928cf2″}
0
Uträttande av ärenden för ett företags räkning (YPA), överförd
GET URL: {rova_host}/service/ypa/user/register/transfer/{transfer_token}/{service_id}/{personId}?requestId={requestId}
Exempelbegäran:
GET
/service/ypa/user/register/transfer/NnO6urpyH3Z1l2jbd7rrHewSGfcpxkKf
/f5f0d662/010180-9026?requestId=requestId HTTP/1.1
X-AsiointivaltuudetAuthorization: f5f0d662 2016-09-14T08:56:20.32Z gKmAJz9XpqhQFlvGcLLqTxxWaGrfbJOLdZtzgRiQRiY=
Accept: application/json;charset=UTF-8
Host: localhost:8102
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=A54DF5C396F59B587994A71A9FBE7003; Path=/; HttpOnly
X-Application-Context: application:18102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 14 Sep 2016 08:56:20 GMT64
{”sessionId”:”faa683f0-b56e-4667-bc85-51e65a8a1ce4″,”userId”:”c4f6900a-c1f0-4a37-880b-c1d2f3470593″}
0
Obs! De tillåtna gränssnitten fastställs i samband med ibruktagningen, så alla gränssnitt som erbjuds är inte nödvändigtvis tillgängliga för kundorganisationen.
Registreringsbegäran ska innehålla X-AsiointivaltuudetAuthorization-header.
Nedan beskrivs fälten för svaret på registreringsbegäran.
Svarsfält | Beskrivning |
|---|---|
SessionId | Sessionskod i UUID-format som används för fortsatta förfrågningar. |
UserId | Användarspecifik engångskod i UUID-format som förmedlas till valgränssnittet. Identifikationens giltighetstid är 10 minuter, under vilken användaren ska omdirigeras till valgränssnittet. |
Nedan beskrivs serviceadresserna för REST-anrop samt exempelbegäran och -svar vid uträttande av ärenden för en persons räkning. Tre gränssnitt används:
- Via Delegate-gränssnittet söker man alla huvudmän, dvs. de personer för vilkas räkning ombudet har rätt att uträtta ärenden, på basis av ombudets personbeteckning eller någon annan identifikation.
- Via Authorization-gränssnittet kontrollerar man om ombudet har rätt att sköta ett visst ärende för huvudmannens räkning.
- Via AuthorizationList-gränssnittet får man reda på i vilka ärenden ombudet har rätt att uträtta ärenden för huvudmannens räkning.
Access_token läses antingen i Authorization: Bearer-headern eller URL-parametern.
Delegate
GET URL: {rova_host}/service/hpa/api/delegate/{sessionId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET /service/hpa/api/delegate/6539d4ae-3791-4f5c-946b-7aaeb58f7107?requestId=requestId&access_token=5b8fa683-0270-44e1-bc08-14622da02c3d HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:27:48.512Z vRd7rhcKL8Pix8PurTiV5SvC8Ian2cQY+siajTjnilU=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:27:48 GMT
[{"personId":"310813A951F","name":"Kumpulainen Onni Matias"}]
Authorization
GET URL: {rova_host}/service/hpa/api/authorization/{sessionId}/{personId}?requestId={requestId}&issues={issues}&access_token={access_token}
Värdet på Issues-parametern är URI, för vilket man ansöker om fullmakt. Parametern är inte obligatorisk. Det kan finnas flera. URI som definieras i parametern kan innehålla specifikationer som definierats som query-parametrar. Om specifikationerna används i URI ska deras nycklar och värden finnas i URL-kodat format.
Exempelbegäran:
GET /service/hpa/api/authorization/7407df88-8fbe-4e16-94fd-05467963b49e/120508A950F?requestId=testClientRequestId&issues=http%3A%2F%2Fvaltuusrekisteri.suomi.fi%2Fpalkkatietojen_ilmoittaminen%3FprincipalId%3D120508A950F%26subOrganization%3D134567-1 HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:48:02.087Z vFxeTk/6oJlqHxhkE3YTyuTQh7X2SMrB/XhvAvemIuQ=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:48:02.087Z vFxeTk/6oJlqHxhkE3YTyuTQh7X2SMrB/XhvAvemIuQ=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:48:02 GMT
[{"reasons":[],"result":"ALLOWED","principal":{"personId":"010316A998C","name":"Pekkala Esko-Olli"}}]
AuthorizationList
GET URL: {rova_host}/service/hpa/api/authorizationlist/{sessionId}/{personId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET /service/hpa/api/authorizationlist/1bed4372-5706-4a3d-be1c-84a4c436636a/310813A951F?requestId=testClientRequestId&access_token=82e69cb5-b659-4dec-a12e-9fd9cf62db9f HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2017-10-25T05:22:03.873Z 1CngFqz1RPPSih0+4K8lsDa/e3rl79wywUP2hxkEJ6k=
Host: localhost:8102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
X-AsiointivaltuudetAuthorization: 42bbe569 2017-10-25T05:22:03.873Z 1CngFqz1RPPSih0+4K8lsDa/e3rl79wywUP2hxkEJ6k=
Host: localhost:8102
Accept: application/json;charset=UTF-8
Connection: keep-alive HTTP/1.1 200
Set-Cookie: JSESSIONID=98A7D5AE47A0B927496AFC382FD5F65D;path=/;
HttpOnly X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 25 Oct 2017 05:22:05 GMT
[{"reasons":[],"roles":["ALL"],"principal":{"personId":"010316A998C","name":"Pekkala Esko-Olli"}}]
Delegate
Via delegate-gränssnittet hämtas en lista över huvudmän, dvs. de personer för vilka ombudet har rätt att uträtta ärenden.
SessionID som erhållits som svar på registreringsbegäran förmedlas i REST-anropet.
I tabellen beskrivs elementen i Delegate-svarsmeddelandet.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
principals | array<Principal> | förteckning över huvudmännens basuppgifter | lista *[principal [personId,name]] eller tom lista |
I tabellen beskrivs elementet Principal som innehåller elementen personId och name.
Elementets namn | Typ | Beskrivning |
|---|---|---|
personId | string | personbeteckning eller UID |
name | string | namn |
Värdegrupp: Namnet består av personens efternamn och förnamn som enligt standard avskiljs från varandra genom mellanslag. Avskiljaren mellan efternamn och förnamn kan ändras separat för varje tjänst.
Avskiljaren ska vara högst två tecken lång och kan innehålla följande tecken: " ,\-.:;_".
Förnamnen avskiljs alltid från varandra genom mellanslag. Namnen presenteras om de är tillgängliga.
Authorization
Via Authorization-gränssnittet kontrollerar man om ombudet har rätt att sköta ett visst ärende för huvudmannens räkning.
I REST-anropet förmedlas sessionId som erhållits som svar på registreringsbegäran, personId för objektet för granskning av ärenderättigheter samt i vilket ärende fullmakten kontrolleras.
Authorization-svaret innehåller information om huruvida ombudet har rätt att uträtta ärenden för huvudmannens räkning. Rätten att uträtta ärenden anges i authorization-fältet, vars värde antingen är ett positivt beslut ALLOWED eller ett negativt beslut DISALLOWED. Om svaret är DISALLOWED och det är tillåtet att visa grunderna för avslag i tjänsten, returneras de i listans reason-fält.
I tabellen beskrivs svarsmeddelandet i en lyckad Authorization-förfrågan.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
result | string | Uppgift om huruvida ombudet har rätt att uträtta ärenden för huvudmannens räkning i ärendet i fråga. | ALLOWED eller DISALLOWED |
reasons | array<DecisionReason> | Värdet är obligatoriskt. Det kan finnas flera element, ett för varje grund för avslag. Användningen avtalas separat i serviceavtalet. | n* reason[rule, value] |
I tabellen beskrivs elementet DecisionReason som innehåller elementen reasonRule, reasonValue och valueType.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
reasonRule | string | kod för regeln i fråga | |
reasonValue | string | lokaliseringsnyckel för orsaken | |
valueType | string | DESCRIPTION, EXCEPTION |
AuthorizationList
Via AuthorizationList-gränssnittet kontrollerar man i vilka ärenden ombudet har rätt att uträtta ärenden för huvudmannens räkning.
I REST-inbjudan förmedlas sessionId som erhållits som svar på registreringsbegäran och personId för objektet för granskning av ärenderättigheter.
AuthorizationList-svaret innehåller information om ärenden där ombudet har rätt att uträtta ärenden för huvudmannens räkning. Rätten att uträtta ärenden anges i fältet roles vars värde antingen är ALL (obegränsad rättighet att uträtta ärenden), vårdnadsfördelning eller delgivningsrätt eller en lista på ärenden (issue URI) som rättigheten gäller. Svaret kan innehålla flera ärenderoller. En tom lista innebär att ingen rätt finns.
I tabellen beskrivs svarsmeddelandet i en lyckad AuthorizationList-förfrågan.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
roles | array<String> | Förteckning över ombudets rätt att uträtta ärenden för huvudmannens räkning. Om behörigheten har erhållits via en representationsfullmakt kan det representerade företagets företagsnummer kopplas till fullmaktsärendet i URI:s fragment, om så har fastställts i den tjänstespecifika konfigurationen. Om det i URI för fullmaktsärendet som ingår i svaret förekommer specifikationer, då visas deras nycklar och värden i URL-kodat format. Om behörigheten har erhållits i en situation med vårdnadsfördelning och inställningen ”032.001.4.2 Personen måste ha en vårdnadsfördelningskod” är aktiverad, används koden för vårdnadsfördelning eller delgivningsrätt som roll. En ärendehanteringsroll som baseras på intressebevakarens eller intressebevakningsfullmaktens behörighet returneras med regel 036.010.1.4. | String[n* ”issue URI”], String[”ALL”] Valbara koder för vårdnadsfördelning och delgivningsrätt:
Ärendehanteringsroll för intressebevakare eller intressebevakningsfullmakt:
|
reasons | array<DecisionReason> | Värdet är obligatoriskt. Det kan finnas flera element, ett för varje grund för avslag. Användningen avtalas separat i serviceavtalet. | n* reason[rule, value]. Attributet rule innehåller koden för regeln i fråga och attributet value lokaliseringsnyckel för orsaken. |
I tabellen beskrivs elementet DecisionReason som innehåller elementen reasonRule, reasonValue och valueType.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
reasonRule | string | kod för regeln i fråga | |
reasonValue | string | lokaliseringsnyckel för orsaken | |
valueType | string | DESCRIPTION, EXCEPTION |
Nedan beskrivs serviceadresserna för REST-anrop samt exempelbegäran och -svar vid uträttande av ärenden för ett företags räkning.
Via gränssnittet OrganizationalRoles kontrollerar man om en person har rätt att uträtta ärenden för ett företags räkning och i vilken roll personen är i förhållande till företaget.
Access_token läses antingen i Authorization: Bearer-headern eller URL-parametern.
OrganizationRoles (all selected)
GET URL: {rova_host}/service/ypa/api/organizationRoles/{sessionId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET /service/ypa/api/organizationRoles/450c59d4-0456-4ad5-b298-ac9c4b5c44e9?requestId=requestId&access_token=d8b67168-0354-4795-b7d9-fbdc4a4850ad HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:50:48.327Z ES9QTREbV0tL4N0NCr5pYs8Tfcvr9wz+1tIfLMAI+pY=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:50:47 GMT
[
{
"name": "Lumi Global Oy",
"identifier": "123456-1",
"complete": true,
"roles": [
"NIMKO",
"TJ",
"http://valtuusrekisteri.suomi.fi/palkkatietojen_katselu?principalId=6004971-1&subOrganization=1234",
"http://valtuusrekisteri.suomi.fi/palkkatietojen_katselu?principalId=6004971-1&subOrganization=a%26b"
]
}, {
"name": "Asunto Oy Testikatu 1",
"identifier": "7769189-0",
"complete": true,
"roles": ["PJ"]
}
]
OrganizationRoles (one)
GET URL: {rova_host}/service/ypa/api/organizationRoles/{sessionId}/{organizationId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET /service/ypa/api/organizationRoles/450c59d4-0456-4ad5-b298-ac9c4b5c44e9/123456-1?requestId=requestId&access_token=d8b67168-0354-4795-b7d9-fbdc4a4850ad HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:50:48.327Z ES9QTREbV0tL4N0NCr5pYs8Tfcvr9wz+1tIfLMAI+pY=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:50:47 GMT
[
{
"name": "Lumi Global Oy",
"identifier": "123456-1",
"complete": true,
"roles": [
"NIMKO",
"TJ",
"http://valtuusrekisteri.suomi.fi/palkkatietojen_katselu?principalId=6004971-1&subOrganization=1234",
"http://valtuusrekisteri.suomi.fi/palkkatietojen_katselu?principalId=6004971-1&subOrganization=a%26b"
]
}
]
OrganizationRoles-svaret innehåller en lista (organizationList) över företag med anknytning till ombudet och dennes roller i dem. Om en del av rollerna inte utreds till exempel på grund av time out-situationen i distansanropet, får complete-fältet i organization-elementet värdet false.
Elementets namn | Beskrivning | Värdegrupp |
|---|---|---|
organizationList | lista över företag | Lista n*[organization] eller tom. Kan innehålla flera element endast om flerval av objekt används i ärendetjänsten. |
Huvudelement: organization
Elementets namn | Beskrivning | Värdegrupp |
|---|---|---|
organizationIdentifier | företagets kod | företagsnummer (VAT eller nationellt företagsnummer) |
name | företagets namn | namn |
roles | förteckning över roller (används endast i förfrågningar med organisationskodsbegränsning, eller om användaren endast är kopplad till ett företag) | lista n*[role [”NIMKO”, ”TJ”, String]] |
complete | Om en del av rollerna inte utreds blir complete-fältets värde false. | true (standard), false |
Från den nuvarande Web API-sessionen kan man skapa en överföringskod (transfer_token) som förmedlas till följande ärendetjänst.
I tabellen beskrivs serviceadresserna för REST-anrop som används vid överföringen av Web API-sessionen samt exempelbegäran och -svar.
Uträttande av ärenden för en persons räkning (HPA)
GET URL: {rova_host}/service/hpa/user/transfer/token/{sessionId}
Exempelbegäran:
GET /service/hpa/user/transfer/token/26f6c8d7-151c-4ee5-8927-4bbe9b6a0cf4 HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-09-14T08:48:09.646Z +zk9r02Xhyjxw8gmdl9DRTeCfFtNcfAKtSihMGY5X70=
Host: localhost:8102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=BACEFB94488E58A5120327427B4A0090; Path=/; HttpOnly
X-Application-Context: application:18102
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Date: Wed, 14 Sep 2016 08:48:09 GMT
8UYQjnIY4vpU8DQVzviGDqH7Kxt9sW5W
Uträttande av ärenden för ett företag (YPA)
GET URL: {rova_host}/service/ypa/user/transfer/token/{sessionId}
Exempelbegäran:
GET /service/ypa/user/transfer/token/faa683f0-b56e-4667-bc85-51e65a8a1ce4 HTTP/1.1
X-AsiointivaltuudetAuthorization: f5f0d662 2016-09-14T09:14:37.313Z LRMvn3/TkDRQKE2XQj8Bqt/wzo50crEDs4pL29Js1ro=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=16B81306E6EE869153481D689CFBB130; Path=/; HttpOnly
X-Application-Context: application:18102
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Date: Wed, 14 Sep 2016 09:14:37 GMT
LWrF1SN4OE6ZaTrnolyfxf1JdFFcHT-R
Web API-sessionen och de val som användaren gör frigörs med funktionen unregister.
Nedan beskrivs serviceadresserna för REST-anrop som används vid avslutande av Web API-sessionen samt exempelbegäran och -svar.
Uträttande av ärenden för en persons räkning (HPA)
GET URL: {rova_host}/service/hpa/user/unregister/{sessionId}
Exempelbegäran:
GET /service/hpa/user/unregister/ef2977df-605a-49b3-9960-a9bc9b61b168 HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-14T13:41:19.103Z L/qxZb9R84KJeGJMAUNpOtlfvjDWL2mZEj+IpPUxv+I=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline';
style-src 'self' 'unsafe-inline';
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 14 Jun 2016 13:41:19 GMT
true
Uträttande av ärenden för ett företag (YPA)
GET URL: {rova_host}/service/ypa/user/unregister/{sessionId}
Exempelbegäran:
GET /service/ypa/user/unregister/ef2977df-605a-49b3-9960-a9bc9b61b168 HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-14T13:41:19.103Z L/qxZb9R84KJeGJMAUNpOtlfvjDWL2mZEj+IpPUxv+I=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 14 Jun 2016 13:41:19 GMT
true
Följande Web API-gränssnitt innehåller också versioner av JSON Web Token (JWT):
- Authorization
- AuthorizationList
- organizationRoles (all selected).
De returnerar svaret som JSON Web Token enligt RFC 7519-standard.
Det finns en version av OrganizationalRoles-gränssnittet som returnerar JWT. Den används för senare sökning av roller i stället för standardsvar. Detta gör det möjligt att återställa ämnet för flera fullmakter i svarsmeddelandet.
Token erbjuder extra säkerhet för dataöverföringen. De innehåller de allmänna uppgifterna i tabell 19 och uppgifter om ärendefullmakten i tabell 20 i svaren på den undertecknade ärendefullmakten.
Allmänna uppgifter för JWT-svar:
Nyckel | Värde/beskrivning |
|---|---|
iss (issuer) | 'Suomi.fi-fullmakter' |
aud (audience) | UUID för den använda tjänsten |
iat (issueTime) | tidpunkt för skapande |
jti (jwtID) | token UUID |
sub (subject) | 'Authorization' | 'AuthorizationList' | 'OrganizationalRoles' |
Uppgifter om ärendefullmakt för JWT-svar:
Nyckel | Värde/beskrivning |
|---|---|
principal | huvudmannens personbeteckning |
personbeteckning | slutanvändarens personbeteckning |
response | gränssnittsspecifikt svar |
issue | Ämnesbegränsning för Authorization-begäran |
Vid användning av JWT-versioner av gränssnitt behövs förutom de inställningar som krävs gör basgränssnitt även inställningar enligt tabell 21.
JWT-gränssnitten är på samma sätt som andra gränssnitt tillgängliga i exempelbiblioteket som roles-auths-client i tjänsten Fullmakter. JWT-kunden ska utöver standardvärdena även initieras med UUID och offentlig nyckel i den tjänst som används.
Inställning | Beskrivning |
|---|---|
serviceUUID | UUID för den tjänst som används |
publicKey | offentlig nyckel för att kontrollera signaturen i den tjänst som används |
Nedan presenteras de offentliga nycklar som används för att kontrollera JWT-signaturer i produktions-, QA- och testmiljön i tjänsten Fullmakter.
Produktionsmiljö
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAh5dSdhllRgZDvjdSayG+RUcUztSKtiPgFEmRHEW6LPesuafmKMaRQsoLgVKpJySqrkiz4dLXlm5lNJjS3GvsNLJpEVAtLjg/62+knfGxSTAuEOGw1cXgl9JXKUCF+6ROOQm4RzrgjyzJGY4shQdNnU7c7sUPEU1rWPaCwUsvxWxXq++mhrDIWaHArgqNz1vmu4exURgbmuVR4rLbrmuqlGBVKRXI9SY2SHMDlFhkpLwOP60rHw5x3atkwPvCslLGuc7c56gNhV7LxFTRzwSSCXiWC3+/nMeoJPPxlB4H6sXc3A2zfkg/AIxhjojEI1UDyCWRTYR2aAiNmfZiVVlUrGKNl8wEuW3HXTGz0/yxt9++MdLCl7a2/4QkPs3y4vgXBUC91HpFb7vO1nuJRwrcyPKtkfhvZZa8sQn/FqsJXUzcTm079xmt4vLhm5liSUik3uYDueteP3rKyUtrnXeX8VX0NoS2ROXQm7eAZskifH4cCTJU29k5/G1sgaISK/mWFEExdsI8Ua7toYOUmCh3zMc/SC0Pf+9XCPFQOpADpumb6ihoiulndDT9pyN0uXYzbblL6QC+jSZMVOEgFyhJ336BjAcd8Do86nuSTA6gtH6JsfzeKr0E+XO6QB4ayr+62guFpHxHdCV1h5B8V7x4ow2bvsHEpVRRErkNrFpkVckCAwEAAQ==Testmiljö
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6/U3FlrDvNZ0ygPK1WGBjDsn0fXFgsEgNgVlY5wlp9fskVZM8efZNqxbhBYHuKUp0sAZrV7Zjj8DDk9j6XXtRRma2CKVjur1G9bm2snKfmwIjfQmdJ8iPCLLhzhsuECsNKFm0kTsc8UUWG8/zv/nWciAfF+tDXTu4K6wxW8cQjOX2u54ZqfbCL5itL/5nZk6b+Qx6eQOD0liZkEQTVZhELm4hXPhsTgIApKsN/+tnFbT7gNBsJuD+JDZBYFapFLlEz5UEjwCF+Z7WlzWy3tHxkHt+MMyJRD/gMb2zjv1W8/hs3qWrJXszW6UX6KbtQenVvfJrAeBSI2UlsE0Yx2rJwIDAQABI tabellen beskrivs serviceadresserna för REST-anrop som stöder JWT-svar samt exempelbegäran och -svar.
Access_token läses antingen i Authorization: Bearer-headern eller URL-parametern.
Authorization
GET URL: /api/authorization/jwt/{sessionId}/{principalId}?requestId={requestId}&issues={issues}&access_token={access_token}
Exempelbegäran:
GET http://localhost:8102/service/hpa/api/authorization/jwt/ef6a5404-51b4-426e-9dc4-d4168b1ef43d/120508A950F?requestId=f4eb5a78-7db0-476a-81fd-19400b9861a5&access_token=5bc76cde-8166-4b88-b7e6-05e61645a236 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:14:28.431Z 2LAP79FYt/GQh9Xisc/00bobUbQWhG9Vuu0HtoXDXfs=
Värdet på Issues-parametern är URI, för vilket man ansöker om fullmakt. Parametern är inte obligatorisk. Det kan finnas flera. URI som definieras i parametern kan innehålla specifikationer som definierats som query-parametrar. Om specifikationerna används i URI ska deras nycklar och värden finnas i URL-kodat format.
Exempelsvar:
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 664
Content-Type: text/plain;charset=UTF-8
Date: Wed, 24 Jan 2018 07:14:29 GMT
Expires: 0
Pragma: no-cache
Set-Cookie: JSESSIONID=3D911FCD6AF0831817BF836B7A543A46;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIxMjA1MDhBOTUwRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb24iLCJyZXNwb25zZSI6IkFMTE9XRUQiLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgwNjksImp0aSI6ImM2YTllODBmLTI0YTgtNGQ5OS05MTBhLWI3YTdiNzk1M2FlMiIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.uq1vMkVFrBpqQi8JyJHJCvqguyKpgn9o4XGBUe8nMubqMsvt5pGItBbrGFHoqjZf1jNqvPlnGvsowcyHK69VvRm9JMSVx6ldQ0aCxp2J8HvpqRIURV0XeOWU-CCP22phoeAb3dfbWen0YYAHl61_j1AlHgvrlWl3mE_E9WbMBkqysYstfGgDhsim2cvFblje8uotTb1uetyF--8FA7z9oZahgS0SokuZWB-wqAFj_5YPMLvBBdQ_yatUi5XZQpCHtJOU6H2tSZIFgOGI1Oct7qnchwAY26A6330NJger9TRqIJhHeP50IC8ir6GQPeppuN3LM7C03SyMaxIP2bRFQg
AuthorizationList
GET URL: /api/authorizationlist/jwt/{sessionId}/{principalId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET http://localhost:8102/service/hpa/api/authorizationlist/jwt/62dce03d-8d32-4c41-b2ac-a700fc3f3064/310813A951F?requestId=728dce44-cb8e-449a-8b39-5dc6128e2b3f&access_token=1fcd01ac-ccb3-4d41-836f-2ec2d4bbc70c HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:16:46.666Z
Exempelsvar:
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 672
Content-Type: text/plain;charset=UTF-8
Date: Wed, 24 Jan 2018 07:16:46 GMT
Expires: 0
Pragma: no-cache
Set-Cookie: JSESSIONID=5331B72B3886AEF9F619B6890F9C586B;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIzMTA4MTNBOTUxRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb25MaXN0IiwicmVzcG9uc2UiOiJbXCJBTExcIl0iLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgyMDYsImp0aSI6IjYwYjFjZjJiLTdiMjctNGUxYS05MjNkLWUzM2FlNzhkNzBjYyIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.V9JROf9ZsCDtXVr4Mrs1Z2c9P2h4WcQ8kKvVRgWNhBpThcute8pZbHZNf4jeVt57-MEsuTVf9Hz-eYBGbdMeH8qwzF_vo4flp687b6Y7S_PwA-2M01i4rwqWKrVl9Ed37q-PdLuYY7KobDtvQuFa7NPRuQiAFqhsQXPBY7D6szKQSWP8wlga8CijwSQCVdoUFnr0wVM8mHNq2n60VHFGua1qmlohrsLz0ZDNVSe6xSyO1TEXWYkHAQJB5aWM68Z7Qk722uOaJiDRUCI14M79vrg4zb1lGz47ZhXjQPDtvrOkdmmDutz4TfeyOy-OpGcsQDU1927Ew1YExQ1UiKM4dw
organizationRoles (all selected)
GET URL: /api/organizationRoles/jwt/{sessionId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET http://localhost:8102/service/ypa/api/organizationRoles/jwt/2153985a-c294-4132-93a6-bffe7f76f9ef?requestId=66d05035-0805-4d40-b4af-34e5ffc5555c&access_token=4ed4d490-1c59-4888-91ea-51b545575588 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:21:24.13Z 7jKRE0evwaQBKhn7+DVZOv4OWEsxge4sQyZ9ffIqY6k=
Exempelsvar:
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 771
Content-Type: text/plain;charset=UTF-8
Date: Wed, 24 Jan 2018 07:21:24 GMT
Expires: 0
Pragma: no-cache
Set-Cookie: JSESSIONID=FFDD91375F5AE5EC4A5748286897C5FC;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwicmVzcG9uc2UiOiJbe1wibmFtZVwiOlwiTHVtaSBHbG9iYWwgT3lcIixcImlkZW50aWZpZXJcIjpcIjEyMzQ1NjctMVwiLFwiY29tcGxldGVcIjp0cnVlLFwicm9sZXNcIjpbXCJOSU1LT1wiLFwiVEpcIl19XSIsImlzcyI6IlN1b21pLmZpLVZhbHR1dWRldCIsImlhdCI6MTUxNjc3ODQ4NCwianRpIjoiNTU4YzE1MTgtMWJlMy00OGJhLWE5NDYtNTAxZTAzMDcxNDAyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.i7X37jLjbnSujrtQ3sZyu5XUcJOz7DFpXii9M5FHfeWj9cWUPcrOJwUKnO0tyXqkBltfKsghoMpKH1iu4K0tvA8gm_HSG4cn9r_3Y7zfWsu2ulYwJ57IvKadqB1HMhCoWhpE2wt0DHmMTu88sVlvWRcfl3bt2K92xwquz3IJnQTiTpTNOtkOcevag7UWS173fY0fex1YFbIkan3tXOn_mbKw4KghM8m614n_PIUfpaJlDT__lSdqOCYeV5mq05Ekbi0esZzlkJ-mdfqnQKUX2sZtXqnwExCtcBoN1ee2cKktZmVdmRkxO3D5IC5uE4acwFW-59K7CyqfrE3lAHgQ
organizationRoles (token-begäran för laddning av svar)
GET URL: /api/organizationRoles/session/jwt/{sessionId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET http://localhost:8102/service/ypa/api/organizationRoles/session/jwt/a093bd1b-02a3-4b6d-b7a8-3eb1d399d468?requestId=768cee20-f53a-4098-9230-68d2086a4b88&access_token=f6d45628-f22a-4b97-89c1-a17b0fc541b2 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:23:46.489Z 9yD371vWVjmpgGys35vDApwOfaHUfJE+4xD0G5lwJ8g=
Exempelsvar:
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 683
Content-Type: text/plain;charset=UTF-8
Date: Wed, 24 Jan 2018 07:23:46 GMT
Expires: 0
Pragma: no-cache
Set-Cookie: JSESSIONID=58AB381310F7EA6AFF46EF3124FE2EE3;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwiaXNzIjoiU3VvbWkuZmktVmFsdHV1ZGV0Iiwic2Vzc2lvbklkIjoiXCJhMDkzYmQxYi0wMmEzLTRiNmQtYjdhOC0zZWIxZDM5OWQ0NjhcIiIsImlhdCI6MTUxNjc3ODYyNiwianRpIjoiYTM4NmNmOTQtZWNkMS00NjMyLWI0NTYtYmZhYmI5ZGEzZmIyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.Nr3tVNxdoOa2Xnkv_W8LycR1Phz--wYeVoIalqxD4wpsMAjzvrPzHejT4IG8Hp02jomDwg1Q_LR-osJtwS2itgzoS3cT4mIXshkBH556t2INDHeSSGltkN5Biv-4pUyspOZsRDYXB9MnvldWFzGW2XEpuUZ2MjUQbQM4FETyfIJp5v1WIC97pK-V_OIISbC2lc0Kd3156x4t2NfOMbUWX3Wa9EgUjmRPe0B0Y8JLK57MR2UnQRWk1ckFkmeIUyUOPQwRvFshDhpQOdjWAv58qCSoM-LJx6r-GaI8zhuKW5djb0fS2YcaWzdZtzxIZs_2NI4jXAtvBV9CqjkN6D6ENg
organizationRoles (alla roller med token)
Exempelbegäran:
GET http://localhost:8102/service/ypa/jwt/api/organizationRoles/
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwiaXNzIjoiU3VvbWkuZmktVmFsdHV1ZGV0Iiwic2Vzc2lvbklkIjoiXCJhMDkzYmQxYi0wMmEzLTRiNmQtYjdhOC0zZWIxZDM5OWQ0NjhcIiIsImlhdCI6MTUxNjc3ODYyNiwianRpIjoiYTM4NmNmOTQtZWNkMS00NjMyLWI0NTYtYmZhYmI5ZGEzZmIyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.Nr3tVNxdoOa2Xnkv_W8LycR1Phz--wYeVoIalqxD4wpsMAjzvrPzHejT4IG8Hp02jomDwg1Q_LR-osJtwS2itgzoS3cT4mIXshkBH556t2INDHeSSGltkN5Biv-4pUyspOZsRDYXB9MnvldWFzGW2XEpuUZ2MjUQbQM4FETyfIJp5v1WIC97pK-V_OIISbC2lc0Kd3156x4t2NfOMbUWX3Wa9EgUjmRPe0B0Y8JLK57MR2UnQRWk1ckFkmeIUyUOPQwRvFshDhpQOdjWAv58qCSoM-LJx6r-GaI8zhuKW5djb0fS2YcaWzdZtzxIZs_2NI4jXAtvBV9CqjkN6D6ENg/?requestId=768cee20-f53a-4098-9230-68d2086a4b88&access_token=f6d45628-f22a-4b97-89c1-a17b0fc541b2 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:23:46.521Z U6Ghn/KKKk0ZGdLRVdDyjVb42j4OwFxn3a13vSnOxbs=
Innehållet i exempelsvaren
Authorization
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIxMjA1MDhBOTUwRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb24iLCJyZXNwb25zZSI6IkFMTE9XRUQiLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgwNjksImp0aSI6ImM2YTllODBmLTI0YTgtNGQ5OS05MTBhLWI3YTdiNzk1M2FlMiIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.uq1vMkVFrBpqQi8JyJHJCvqguyKpgn9o4XGBUe8nMubqMsvt5pGItBbrGFHoqjZf1jNqvPlnGvsowcyHK69VvRm9JMSVx6ldQ0aCxp2J8HvpqRIURV0XeOWU-CCP22phoeAb3dfbWen0YYAHl61_j1AlHgvrlWl3mE_E9WbMBkqysYstfGgDhsim2cvFblje8uotTb1uetyF--8FA7z9oZahgS0SokuZWB-wqAFj_5YPMLvBBdQ_yatUi5XZQpCHtJOU6H2tSZIFgOGI1Oct7qnchwAY26A6330NJger9TRqIJhHeP50IC8ir6GQPeppuN3LM7C03SyMaxIP2bRFQgÖppnade svarsinnehåll:
{
"principal": "120508A950F",
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "Authorization",
"response": "ALLOWED",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778069,
"jti": "c6a9e80f-24a8-4d99-910a-b7a7b7953ae2",
"hetu": "120978-9038"
AuthorizationList
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIzMTA4MTNBOTUxRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb25MaXN0IiwicmVzcG9uc2UiOiJbXCJBTExcIl0iLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgyMDYsImp0aSI6IjYwYjFjZjJiLTdiMjctNGUxYS05MjNkLWUzM2FlNzhkNzBjYyIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.V9JROf9ZsCDtXVr4Mrs1Z2c9P2h4WcQ8kKvVRgWNhBpThcute8pZbHZNf4jeVt57-MEsuTVf9Hz-eYBGbdMeH8qwzF_vo4flp687b6Y7S_PwA-2M01i4rwqWKrVl9Ed37q-PdLuYY7KobDtvQuFa7NPRuQiAFqhsQXPBY7D6szKQSWP8wlga8CijwSQCVdoUFnr0wVM8mHNq2n60VHFGua1qmlohrsLz0ZDNVSe6xSyO1TEXWYkHAQJB5aWM68Z7Qk722uOaJiDRUCI14M79vrg4zb1lGz47ZhXjQPDtvrOkdmmDutz4TfeyOy-OpGcsQDU1927Ew1YExQ1UiKM4dwÖppnade svarsinnehåll:
{
"principal": "310813A951F",
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "AuthorizationList",
"response": "[\"ALL\"]",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778206,
"jti": "60b1cf2b-7b27-4e1a-923d-e33ae78d70cc",
"hetu": "120978-9038"
}
organizationRoles (all selected)
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwicmVzcG9uc2UiOiJbe1wibmFtZVwiOlwiTHVtaSBHbG9iYWwgT3lcIixcImlkZW50aWZpZXJcIjpcIjEyMzQ1NjctMVwiLFwiY29tcGxldGVcIjp0cnVlLFwicm9sZXNcIjpbXCJOSU1LT1wiLFwiVEpcIl19XSIsImlzcyI6IlN1b21pLmZpLVZhbHR1dWRldCIsImlhdCI6MTUxNjc3ODQ4NCwianRpIjoiNTU4YzE1MTgtMWJlMy00OGJhLWE5NDYtNTAxZTAzMDcxNDAyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.i7X37jLjbnSujrtQ3sZyu5XUcJOz7DFpXii9M5FHfeWj9cWUPcrOJwUKnO0tyXqkBltfKsghoMpKH1iu4K0tvA8gm_HSG4cn9r_3Y7zfWsu2ulYwJ57IvKadqB1HMhCo-nWhpE2wt0DHmMTu88sVlvWRcfl3bt2K92xwquz3IJnQTiTpTNOtkOcevag7UWS173fY0fex1YFbIkan3tXOn_mbKw4KghM8m614n_PIUfpaJlDT__lSdqOCYeV5mq05Ekbi0esZzlkJ-mdfqnQKUX2sZtXqnwExCtcBoN1ee2cKktZmVdmRkxO3D5IC5uE4acwFW-59K7CyqfrE3lAHgQÖppnade svarsinnehåll:
{
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "OrganizationalRoles",
"response":
"[{\"name\":\"Lumi Global Oy\",\"identifier\":\"1234567-1\"
,\"complete\":true,\"roles\":[\"NIMKO\",\"TJ\"]}]",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778484,
"jti": "558c1518-1be3-48ba-a946-501e03071402",
"hetu": "010180-9026"
}
organizationRoles (token-begäran för laddning av svar)
GET URL: /api/organizationRoles/session/jwt/{sessionId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET http://localhost:8102/service/ypa/api/organizationRoles/session/jwt/a093bd1b-02a3-4b6d-b7a8-3eb1d399d468?requestId=768cee20-f53a-4098-9230-68d2086a4b88&access_token=f6d45628-f22a-4b97-89c1-a17b0fc541b2 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:23:46.489Z 9yD371vWVjmpgGys35vDApwOfaHUfJE+4xD0G5lwJ8g=
Exempelsvar:
HTTP/1.1 200
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 683
Content-Type: text/plain;charset=UTF-8
Date: Wed, 24 Jan 2018 07:23:46 GMT
Expires: 0
Pragma: no-cache
Set-Cookie: JSESSIONID=58AB381310F7EA6AFF46EF3124FE2EE3;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwiaXNzIjoiU3VvbWkuZmktVmFsdHV1ZGV0Iiwic2Vzc2lvbklkIjoiXCJhMDkzYmQxYi0wMmEzLTRiNmQtYjdhOC0zZWIxZDM5OWQ0NjhcIiIsImlhdCI6MTUxNjc3ODYyNiwianRpIjoiYTM4NmNmOTQtZWNkMS00NjMyLWI0NTYtYmZhYmI5ZGEzZmIyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.Nr3tVNxdoOa2Xnkv_W8LycR1Phz--wYeVoIalqxD4wpsMAjzvrPzHejT4IG8Hp02jomDwg1Q_LR-osJtwS2itgzoS3cT4mIXshkBH556t2INDHeSSGltkN5Biv-4pUyspOZsRDYXB9MnvldWFzGW2XEpuUZ2MjUQbQM4FETyfIJp5v1WIC97pK-V_OIISbC2lc0Kd3156x4t2NfOMbUWX3Wa9EgUjmRPe0B0Y8JLK57MR2UnQRWk1ckFkmeIUyUOPQwRvFshDhpQOdjWAv58qCSoM-LJx6r-GaI8zhuKW5djb0fS2YcaWzdZtzxIZs_2NI4jXAtvBV9CqjkN6D6ENg
organizationRoles (alla roller med token)
Exempelbegäran:
GET http://localhost:8102/service/ypa/jwt/api/organizationRoles/
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwiaXNzIjoiU3VvbWkuZmktVmFsdHV1ZGV0Iiwic2Vzc2lvbklkIjoiXCJhMDkzYmQxYi0wMmEzLTRiNmQtYjdhOC0zZWIxZDM5OWQ0NjhcIiIsImlhdCI6MTUxNjc3ODYyNiwianRpIjoiYTM4NmNmOTQtZWNkMS00NjMyLWI0NTYtYmZhYmI5ZGEzZmIyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.Nr3tVNxdoOa2Xnkv_W8LycR1Phz--wYeVoIalqxD4wpsMAjzvrPzHejT4IG8Hp02jomDwg1Q_LR-osJtwS2itgzoS3cT4mIXshkBH556t2INDHeSSGltkN5Biv-4pUyspOZsRDYXB9MnvldWFzGW2XEpuUZ2MjUQbQM4FETyfIJp5v1WIC97pK-V_OIISbC2lc0Kd3156x4t2NfOMbUWX3Wa9EgUjmRPe0B0Y8JLK57MR2UnQRWk1ckFkmeIUyUOPQwRvFshDhpQOdjWAv58qCSoM-LJx6r-GaI8zhuKW5djb0fS2YcaWzdZtzxIZs_2NI4jXAtvBV9CqjkN6D6ENg/?requestId=768cee20-f53a-4098-9230-68d2086a4b88&access_token=f6d45628-f22a-4b97-89c1-a17b0fc541b2 HTTP/1.1
Accept: application/json;charset=UTF-8
Connection: keep-alive
Host: localhost:8102
X-AsiointivaltuudetAuthorization: 42bbe569 2018-01-24T07:23:46.521Z U6Ghn/KKKk0ZGdLRVdDyjVb42j4OwFxn3a13vSnOxbs=
Innehållet i exempelsvaren
Authorization
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIxMjA1MDhBOTUwRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb24iLCJyZXNwb25zZSI6IkFMTE9XRUQiLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgwNjksImp0aSI6ImM2YTllODBmLTI0YTgtNGQ5OS05MTBhLWI3YTdiNzk1M2FlMiIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.uq1vMkVFrBpqQi8JyJHJCvqguyKpgn9o4XGBUe8nMubqMsvt5pGItBbrGFHoqjZf1jNqvPlnGvsowcyHK69VvRm9JMSVx6ldQ0aCxp2J8HvpqRIURV0XeOWU-CCP22phoeAb3dfbWen0YYAHl61_j1AlHgvrlWl3mE_E9WbMBkqysYstfGgDhsim2cvFblje8uotTb1uetyF--8FA7z9oZahgS0SokuZWB-wqAFj_5YPMLvBBdQ_yatUi5XZQpCHtJOU6H2tSZIFgOGI1Oct7qnchwAY26A6330NJger9TRqIJhHeP50IC8ir6GQPeppuN3LM7C03SyMaxIP2bRFQgÖppnade svarsinnehåll:
{
"principal": "120508A950F",
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "Authorization",
"response": "ALLOWED",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778069,
"jti": "c6a9e80f-24a8-4d99-910a-b7a7b7953ae2",
"hetu": "120978-9038"
AuthorizationList
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJwcmluY2lwYWwiOiIzMTA4MTNBOTUxRiIsImF1ZCI6ImQ0M2NmZWI0LTZiMDctNGIzNi05OGVlLWNjMWE4ZjI5YjhhNCIsInN1YiI6IkF1dGhvcml6YXRpb25MaXN0IiwicmVzcG9uc2UiOiJbXCJBTExcIl0iLCJpc3MiOiJTdW9taS5maS1WYWx0dXVkZXQiLCJpYXQiOjE1MTY3NzgyMDYsImp0aSI6IjYwYjFjZjJiLTdiMjctNGUxYS05MjNkLWUzM2FlNzhkNzBjYyIsImhldHUiOiIxMjA5NzgtOTAzOCJ9.V9JROf9ZsCDtXVr4Mrs1Z2c9P2h4WcQ8kKvVRgWNhBpThcute8pZbHZNf4jeVt57-MEsuTVf9Hz-eYBGbdMeH8qwzF_vo4flp687b6Y7S_PwA-2M01i4rwqWKrVl9Ed37q-PdLuYY7KobDtvQuFa7NPRuQiAFqhsQXPBY7D6szKQSWP8wlga8CijwSQCVdoUFnr0wVM8mHNq2n60VHFGua1qmlohrsLz0ZDNVSe6xSyO1TEXWYkHAQJB5aWM68Z7Qk722uOaJiDRUCI14M79vrg4zb1lGz47ZhXjQPDtvrOkdmmDutz4TfeyOy-OpGcsQDU1927Ew1YExQ1UiKM4dwÖppnade svarsinnehåll:
{
"principal": "310813A951F",
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "AuthorizationList",
"response": "[\"ALL\"]",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778206,
"jti": "60b1cf2b-7b27-4e1a-923d-e33ae78d70cc",
"hetu": "120978-9038"
}
organizationRoles (all selected)
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwicmVzcG9uc2UiOiJbe1wibmFtZVwiOlwiTHVtaSBHbG9iYWwgT3lcIixcImlkZW50aWZpZXJcIjpcIjEyMzQ1NjctMVwiLFwiY29tcGxldGVcIjp0cnVlLFwicm9sZXNcIjpbXCJOSU1LT1wiLFwiVEpcIl19XSIsImlzcyI6IlN1b21pLmZpLVZhbHR1dWRldCIsImlhdCI6MTUxNjc3ODQ4NCwianRpIjoiNTU4YzE1MTgtMWJlMy00OGJhLWE5NDYtNTAxZTAzMDcxNDAyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.i7X37jLjbnSujrtQ3sZyu5XUcJOz7DFpXii9M5FHfeWj9cWUPcrOJwUKnO0tyXqkBltfKsghoMpKH1iu4K0tvA8gm_HSG4cn9r_3Y7zfWsu2ulYwJ57IvKadqB1HMhCo-nWhpE2wt0DHmMTu88sVlvWRcfl3bt2K92xwquz3IJnQTiTpTNOtkOcevag7UWS173fY0fex1YFbIkan3tXOn_mbKw4KghM8m614n_PIUfpaJlDT__lSdqOCYeV5mq05Ekbi0esZzlkJ-mdfqnQKUX2sZtXqnwExCtcBoN1ee2cKktZmVdmRkxO3D5IC5uE4acwFW-59K7CyqfrE3lAHgQÖppnade svarsinnehåll:
{
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "OrganizationalRoles",
"response":
"[{\"name\":\"Lumi Global Oy\",\"identifier\":\"1234567-1\"
,\"complete\":true,\"roles\":[\"NIMKO\",\"TJ\"]}]",
"iss": "Suomi.fi-Valtuudet",
"iat": 1516778484,
"jti": "558c1518-1be3-48ba-a946-501e03071402",
"hetu": "010180-9026"
}
organizationRoles (token-begäran för laddning av svar)
JWT-svar:
eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJkNDNjZmViNC02YjA3LTRiMzYtOThlZS1jYzFhOGYyOWI4YTQiLCJzdWIiOiJPcmdhbml6YXRpb25hbFJvbGVzIiwiaXNzIjoiU3VvbWkuZmktVmFsdHV1ZGV0Iiwic2Vzc2lvbklkIjoiXCJhMDkzYmQxYi0wMmEzLTRiNmQtYjdhOC0zZWIxZDM5OWQ0NjhcIiIsImlhdCI6MTUxNjc3ODYyNiwianRpIjoiYTM4NmNmOTQtZWNkMS00NjMyLWI0NTYtYmZhYmI5ZGEzZmIyIiwiaGV0dSI6IjAxMDE4MC05MDI2In0.Nr3tVNxdoOa2Xnkv_W8LycR1Phz--wYeVoIalqxD4wpsMAjzvrPzHejT4IG8Hp02jomDwg1Q_LR-osJtwS2itgzoS3cT4mIXshkBH556t2INDHeSSGltkN5Biv-4pUyspOZsRDYXB9MnvldWFzGW2XEpuUZ2MjUQbQM4FETyfIJp5v1WIC97pK-V_OIISbC2lc0Kd3156x4t2NfOMbUWX3Wa9EgUjmRPe0B0Y8JLK57MR2UnQRWk1ckFkmeIUyUOPQwRvFshDhpQOdjWAv58qCSoM-LJx6r-GaI8zhuKW5djb0fS2YcaWzdZtzxIZs_2NI4jXAtvBV9CqjkN6D6ENgÖppnade svarsinnehåll:
{
"aud": "d43cfeb4-6b07-4b36-98ee-cc1a8f29b8a4",
"sub": "OrganizationalRoles",
"iss": "Suomi.fi-Valtuudet",
"sessionId": "\"a093bd1b-02a3-4b6d-b7a8-3eb1d399d468\"",
"iat": 1516778626,
"jti": "a386cf94-ecd1-4632-b456-bfabb9da3fb2",
"hetu": "010180-9026"
I REST-anropet förmedlas clientId samt ombudets och huvudmannens identifikationer. Dessutom kan man i samband med begäran ge ett fullmaktsärende som fastställer vad ärendet gäller. URI för ett fullmaktsärende som definieras i parametern kan innehålla specifikationer som definierats som query-parametrar. Om specifikationerna används i URI ska deras nycklar och värden finnas i URL-kodat format.
Authorization-svaret innehåller information om huruvida ombudet har rätt att uträtta ärenden för huvudmannens räkning. Rätten att uträtta ärenden anges i authorization-fältet, vars värde antingen är ett positivt beslut ALLOWED eller ett negativt beslut DISALLOWED. Om svaret är DISALLOWED och det är tillåtet att visa grunderna för avslag i tjänsten, returneras de i listans reason-fält.
Identifikationskoden för en identifierad slutanvändare förmedlas i X-userId-HTTP-header.
I tabellen beskrivs svarsmeddelandet i en lyckad Authorization REST-förfrågan.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
result | string | Uppgift om huruvida ombudet har rätt att uträtta ärenden för huvudmannens räkning i ärendet i fråga. | ALLOWED eller DISALLOWED |
reasons | array<DecisionReason> | Värdet är obligatoriskt. Det kan finnas flera element, ett för varje grund för avslag. Användningen avtalas separat i serviceavtalet. | n* reason[rule, value] |
I tabellen beskrivs elementet DecisionReason som innehåller elementen reasonRule, reasonValue och valueType.
Elementets namn | Typ | Beskrivning | Värdegrupp |
|---|---|---|---|
reasonRule | string | kod för regeln i fråga | |
reasonValue | string | lokaliseringsnyckel för orsaken | |
valueType | string | DESCRIPTION, EXCEPTION |
Tabellen visar de uppgifter som behövs för att anropa gränssnittet Authorization REST.
Parameter | Typ | Värde/beskrivning |
|---|---|---|
service | vägparameter | kod för den tjänst som används (Web API Client ID) |
delegateId | vägparameter | ombudets/fullmaktstagarens personbeteckning |
principalId | vägparameter | huvudmannens/fullmaktsgivarens personbeteckning |
requestId | begäransparameter | identifikationskod för begäran |
issue | begäransparameter | ämnesbegränsning (URI för fullmaktsärendet); valfri, kan vara flera |
Authorization REST
GET URL: {rova_host}/service/rest/hpa/authorization/{service}/{delegateId}/{principalId}?requestId={requestId}&issue={issue_uri}
Exempelbegäran:
GET /service/rest/hpa/authorization/42bbe569/010180-9026/310813A951F?requestId=testClientRequestId HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2018-06-04T13:29:34.404Z ULETcXn2xNTb4m7CNeSH++GEgjbKqdaCKF2QFA265DU=
X-userId: rova-demo-user
Host: localhost:8102
Connection: Keep-Alive
Accept: application/json;charset=UTF-8
Accept-Encoding: gzip,deflate
Exempelsvar:
HTTP/1.1 200
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=F443FAB19C3D112017BC543A705F91C0; Path=/; HttpOnly
Content-Security-Policy: default-src 'self'; style-src 'self' 'unsafe-inline';
X-Application-Context: roles-auths-web-api:dev:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 04 Jun 2018 13:29:38 GMT
21
{"reasons":[],"result":"ALLOWED"}
0
Felmeddelanden
Om det är fel i begäran returneras som svar den HTTP-status som motsvarar felet och ett eventuellt felmeddelande samt ReqId-koden, som är tjänsten Fullmakters interna kod för begäran. Nedan presenteras ett exempelsvar i en felsituation.
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Pragma: no-cache
Expires: 0
Cache-control: no-cache, no-store, max-age=0, must-revalidate
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 15 Jun 2016 10:32:20 GMT
Connection: close
{"errorMessage":"HTTP 500 Internal Server Error","errorCode": "OTHER_EXCEPTION","ReqID":"0STUQMODABLJ5ZW"}
Specifikationerna begränsar behörigheten för fullmakter, till exempel för en underorganisation eller enhet. Som standard har fullmaktsärendena ingen specifikation, men en sådan kan fastställas för dem vid behov.
Specifikationernas typer och namn har definierats i fullmaktskodsystemet. Om avgränsningsspecifikationer har definierats för fullmaktskoden har de lagts till som nyckelvärdepar efter fullmaktskodens identifikation i svaret.
Authorization
GET URL: {rova_host}/service/hpa/api/authorization/{sessionId}/{personId}?requestId={requestId}&issues={issues}&access_token={access_token}
Värdet på Issues-parametern är URI, för vilket man ansöker om fullmakt. Parametern är inte obligatorisk. Det kan finnas flera. URI som definieras i parametern kan innehålla specifikationer som definierats som query-parametrar. Om specifikationerna används i URI ska deras nycklar och värden finnas i URL-kodat format.
Exempelbegäran:
GET /service/hpa/api/authorization/7407df88-8fbe-4e16-94fd-05467963b49e/120508A950F?requestId=testClientRequestId&issues=http%3A%2F%2Fvaltuusrekisteri.suomi.fi%2Fpalkkatietojen_ilmoittaminen%3FprincipalId%3D120508A950F%26subOrganization%3D1234567-1 HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2016-06-13T11:48:02.087Z vFxeTk/6oJlqHxhkE3YTyuTQh7X2SMrB/XhvAvemIuQ=
Host: localhost:18102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:8102
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 13 Jun 2016 11:48:02 GMT
[{"reasons":[],"result":"ALLOWED","principal":{"personId":"010316A998C","name":"Pekkala Esko-Olli"}}]
AuthorizationList
GET URL: {rova_host}/service/hpa/api/authorizationlist/{sessionId}/{personId}?requestId={requestId}&access_token={access_token}
Exempelbegäran:
GET /service/hpa/api/authorizationlist/1bed4372-5706-4a3d-be1c-84a4c436636a/310813A951F?requestId=testClientRequestId&access_token=82e69cb5-b659-4dec-a12e-9fd9cf62db9f HTTP/1.1
X-AsiointivaltuudetAuthorization: 42bbe569 2017-10-25T05:22:03.873Z 1CngFqz1RPPSih0+4K8lsDa/e3rl79wywUP2hxkEJ6k=
Host: localhost:8102
Accept: application/json;charset=UTF-8
Connection: keep-alive
Exempelsvar:
HTTP/1.1 200
Set-Cookie: JSESSIONID=98A7D5AE47A0B927496AFC382FD5F65D;path=/;HttpOnly
X-Application-Context: roles-auths-web-api:8102
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 25 Oct 2017 05:22:05 GMT
[{"reasons":[],"roles":["ALL"],"principal":{"personId":"010316A998C","name":"Pekkala Esko-Olli"}}]
Tjänsten Fullmakter använder OAuth 2.0-protokollet för datasäker hantering av fullmaktsprocesser. Rätt användning av OAuth ställer krav på den ärendetjänst som använder tjänsten Fullmakter.
Allmän information om datasäkerheten i OAuth 2.0-protokollet finns på Specifikationsdokument för OAuthÖppnas i ett nytt fönster..
Ärendetjänsten ska vara skyddad mot CSRF-attacker
När slutanvändaren är inloggad i ärendetjänsten är hen mottaglig för CSRF-attacker. Vid en CSRF-attack länkas ärendetjänstens funktioner från en annan tjänst utan att slutanvändaren märker det. Ärendetjänsten måste innehålla ett CSRF-skydd så att funktionerna inte kan anropas utanför ärendetjänsten.
Läs mer om CSRF-attacker.Öppnas i ett nytt fönster.
OAuth state-parametern ska skapas och verifieras i ärendetjänsten
När ärendetjänsten inleder en OAuth-fullmakt ska den skapa en unik identifierare och bifoga den som OAuth state-parameter till begäran. Alternativ som rekommenderas är till exempel en helt slumpmässig kod som sparats i användarsessionen eller en sammanfattning av användarsessionens kod och ärendetjänstens egen kryptering.
Tjänsten Fullmakter returnerar tillsammans med OAuth-svaret en state-parameter med vilken ärendetjänsten måste bekräfta att svaret som behandlas härstammar från den identifikation som ärendetjänsten inlett. Detta krav uppfylls genom att använda roles-auths-client-biblioteket.
Returadressen för fullmakten ska vara registrerad som tillåten omstyrningsadress
När e-tjänsten inleder en OAuth-fullmaktsprocess förmedlar den en ny omdirigeringsadress till tjänsten Fullmakter, dit användarens webbläsare styrs i slutet av befullmäktigandet. För att OAuth-nyckeln som förmedlas tillsammans med returbegäran inte ska hamna i fel händer begränsar tjänsten Fullmakter omdirigeringen endast till de adresser som fastställts för den på förhand. E-tjänsten ska i samband med anslutningsprocessen lämna uppgifter om exakta adresser för omdirigering till tjänsten Fullmakter.
Läs mer om omdirigeringen av OAuth 2.0-protokollet.Öppnas i ett nytt fönster.
Ärendetjänsten ska avsluta sessionen i tjänsten Fullmakter efter att fullmakterna har kontrollerats
När en ärendetjänst som använder Web API-gränssnittet har gjort nödvändiga fullmaktsförfrågningar ska den stänga sessionen med funktionen unregister. I annat fall ligger ansvaret för att stänga sessionen på tidsbegränsningen.
Ärendetjänsten får inte visa felmeddelanden till slutanvändaren som tjänsten Fullmakter returnerar
För att underlätta utredningen av problemsituationer kan tjänsten Fullmakter som en del av ett felmeddelande returnera information om funktionen av de interna komponenterna eller koder. De är endast avsedda för användning mellan ärendetjänsten och tjänsten Fullmakter. Ärendetjänsten får inte visa felmeddelanden som sådana för slutanvändaren.
Stödda TLS-protokoll och krypteringsalgoritmer
TLS-protokoll och krypteringsalgoritmer som stöds i serviceadressen för Web API-gränssnittets REST-gränssnitt från och med 4 mars 2025:
TLS-protokoll
- TLS 1.2
- TLS 1.3
TLS 1.3 krypteringsalgoritmer
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
TLS 1.2 krypteringsalgoritmer
- ECDHE-ECDSA-AES128-GCM-SHA256
- ECDHE-RSA-AES128-GCM-SHA256
- ECDHE-ECDSA-AES256-GCM-SHA384
- ECDHE-RSA-AES256-GCM-SHA384
Installera ett servercertifikat som betrott
Servercertifikatet kan ändras vid oanmälda tidpunkter. Därför rekommenderar vi att ställa in AWS-rotcertifikat som betrodda i stället för exakta servercertifikat. AWS-rotcertifikat är vanligtvis betrodda som standard i systemet. Vid behov kan man ladda ner rotcertifikaten på adressen https://www.amazontrust.com/repository/Öppnas i ett nytt fönster..