FHIR Chat · Auktorisointi Sandbox2:ssa · finnish PHR

Stream: finnish PHR

Topic: Auktorisointi Sandbox2:ssa


view this post on Zulip Esko Niinimäki (Jan 29 2018 at 11:05):

Hei,

En ymärrä, miten sandbox2:n auktorisointi toimii. Saisinko apua?
Rekisteröin uuden käyttäjän osoitteessa https://fhirsandbox2-auth.kanta.fi/phr-authserver-sandbox/registeruser. Oppaan mukaan auktorisointi tehdään GET pyynnöllä (jonka jälkeen palvelu kysyy sotua ja nimeä), joten yritin selaimella mennä esimerkin https://fhirsandbox2.kanta.fi/openid-connect-kela/authorize?response_type=code&client_id=Client123&scope=openid+patient/Observation.read+offline_access&redirect_uri=https://app/after-auth&state=b5de575e-ac1b-4c00-b1f1-844d1b9bdb03 mukaiseen osoitteeseen, missä Client123 on korvattu saamallani client id:llä, redirect_uri omalla urlilla ja state-parametria hieman muutettu. Selaimen mukaan kuitenkin "Suojatun yhteyden muodostaminen epäonnistui". Rekisteröimäni clientin scope sisältää mm. openid:n patient/Observation.read:n ja offline_access:n.

view this post on Zulip Eeva Turkka (Jan 29 2018 at 13:44):

Oppaassa on vanha osoite, oikea osoite on sandboxin sivulla: "Authorization service in sandbox is located at https://fhirsandbox2-auth.kanta.fi/phr-authserver-sandbox/" eli palvelimen osoite on oikea, mutta sovelluksen nimi on muuttunut, (http://www.kanta.fi/en/web/ammattilaisille/tarkeaa-tietoa-kehittajille).

view this post on Zulip Esko Niinimäki (Jan 31 2018 at 12:10):

Kiitos Eeva! Oikealla urlillahan tuo toimi. Nyt minulla on kuitenkin ongelma tokenin saamisessa auktorisoinnin jälkeen. Palvelin palauttaa:
<Response [401]>

headers:
{'Access-Control-Allow-Origin': '*',
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate, no-store',
'Content-Language': 'en-US',
'Content-Type': 'application/json;charset=UTF-8',
'Date': 'Wed, 31 Jan 2018 11:48:37 GMT',
'Expires': '0',
'Pragma': 'no-cache, no-cache',
'Set-Cookie': 'BIGipServerfhirsandbox2-auth.kanta.fi_pool=521553162.30755.0000; '
'path=/; Httponly; Secure',
'Strict-Transport-Security': 'max-age=31536000 ; includeSubDomains',
'Transfer-Encoding': 'chunked',
'WWW-Authenticate': 'Bearer realm="openidconnect", error="unauthorized", '
'error_description="Full authentication is required"',
'X-Content-Type-Options': 'nosniff',
'X-FRAME-OPTIONS': 'DENY',
'X-Powered-By': 'Servlet/3.0',
'X-XSS-Protection': '1; mode=block'}

text:
{"error":"unauthorized","error_description":"Full authentication is required"}

Olen asettanut post-pyyntöön
urliksi https://fhirsandbox2-auth.kanta.fi/phr-authserver-sandbox/token
headeriksi 'Accept': 'application/json'
HTTP Basic Authenticationiksi clientid:ClientSecret, ja*
dataksi
{'grant_type':'authorization_code”',
'code':'auktorisointipalvelim antama koodi,
'redirect_uri':'clientin url'}
*Opas oli hieman epäselvä, yritin myös muotoa "Authorizarion clientid:ClientSecret"

Pystyttekö tuon perusteella kertomaan, mikä voisi olla vikana? Kuinka kauan auktorisointipalvelimen antama koodi on muuten voimassa? Kokeilin myös uudestaan auktorisointia ja sain uuden koodin, vanhensiko se aiemman?

view this post on Zulip Eeva Turkka (Feb 01 2018 at 08:20):

Koodi tosiaan vanhenee aika nopeasti (riippuu clientin asetuksista, mutta olikohan oletus suunnilleen 30 sekuntia) ja uuden koodin pyyntö vanhentaa edellisen.

view this post on Zulip Esko Niinimäki (Feb 05 2018 at 09:57):

Jos tarkoitat Default Max Agea Clientin asetuksissa, on se oletuksena 60000, joten olisiko se sitten millisekunneissa ja tarkoittaa 60 sekuntia?

Joka tapauksessa, käsipelin tuota yritin, joten 30 sekuntia kyllä silloin ylittyi. En sitä kuitenkaan vieläkään saa toimiaan, vaan serveri lähettää edelleen saman virheilmoituksen.

view this post on Zulip Eeva Turkka (Feb 07 2018 at 15:02):

Tuon Authorization-headerin pitäisi mennä muodossa:
Authorization: Basic Y2xpZW50OnNlY3JldA==

Eli siinä on client:secret B64 enkoodattuna. Datana olevat parametrit kannattaa lähettää querystring-muodossa, sen pitäisi toimia.

view this post on Zulip Esko Niinimäki (Feb 14 2018 at 10:58):

Lähettämäni pyyntö on nyt muodossa:

{
"args": {},
"data": "code=0PinZc&redirect_uri=https%3A%2F%2Fwww.jyu.fi%2Ffi&grant_type=authorization_code",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate",
"Authorization": "Basic NWQ4YjY5YjctYmM3Ni00NjM4LTgzMDctNDcwMGMyZmUzNDFmOkVKc...[katkaistu tähän viestiin]",
"Connection": "close",
"Content-Length": "84",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.9.1"
},
"json": null
}
Sandbox2 palauttaa kuitenkin edelleen saman virheilmoituksen (mm. datan vaihto formista ei vaikuttanut). Tietysti jos tuo code vanheneekin alle kymmenessä sekunnissa, niin tapani on liian hidas.

"args": {},
"data": "",
"files": {},
"form": {
"code": "2nTPU9",
"grant_type": "authorization_code",
"redirect_uri": "https://www.jyu.fi/fi"
}

Varmuuden vuoksi kertauksena siis palvelimen vastaus:
https://fhirsandbox2-auth.kanta.fi/phr-authserver-sandbox/token
<Response [401]>

{'Access-Control-Allow-Origin': '*',
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate, no-store',
'Content-Language': 'en-US',
'Content-Type': 'application/json;charset=UTF-8',
'Date': 'Wed, 14 Feb 2018 10:08:33 GMT',
'Expires': '0',
'Pragma': 'no-cache, no-cache',
'Set-Cookie': 'BIGipServerfhirsandbox2-auth.kanta.fi_pool=538330378.30755.0000; '
'path=/; Httponly; Secure',
'Strict-Transport-Security': 'max-age=31536000 ; includeSubDomains',
'Transfer-Encoding': 'chunked',
'WWW-Authenticate': 'Bearer realm="openidconnect", error="unauthorized", '
'error_description="Full authentication is required"',
'X-Content-Type-Options': 'nosniff',
'X-FRAME-OPTIONS': 'DENY',
'X-Powered-By': 'Servlet/3.0',
'X-XSS-Protection': '1; mode=block'}

{"error":"unauthorized","error_description":"Full authentication is required"}

view this post on Zulip Matti Uusitalo (Feb 15 2018 at 13:39):

Lähettämäni pyyntö on nyt muodossa:

{
"args": {},
"data": "code=0PinZc&redirect_uri=https%3A%2F%2Fwww.jyu.fi%2Ffi&grant_type=authorization_code",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate",
"Authorization": "Basic NWQ4YjY5YjctYmM3Ni00NjM4LTgzMDctNDcwMGMyZmUzNDFmOkVKc...[katkaistu tähän viestiin]",
"Connection": "close",
"Content-Length": "84",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.9.1"
},
"json": null
}

Voisitko kokeilla lisätä pyyntöön vielä client_id parametrin? Auktorisointioppaan mukaan se on pakollinen jos ei ole annettu client_assertion parametria.

view this post on Zulip Esko Niinimäki (Feb 15 2018 at 17:31):

Tarkoitatko siis näin:
{
"args": {},
"data": "client_id=5d8b69b7-bc76-4638-8307-4700c2fe341f&redirect_uri=https%3A%2F%2Fwww.jyu.fi%2Ffi&grant_type=authorization_code&code=nej8YX",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate",
"Authorization": "Basic NWQ4YjY5YjctYmM3Ni00NjM4LTgzMDctNDcwMGMyZmUzNDFmOkVKcWU3cmVZY2xIRXF6SllwWHR3TExPQV9oU0VCZEFCcFdGSUdXbWdCNFQtVWM3b1ZKZEswcXh4TXdmSEJvdnRSejFKczM0QmgwaVNPQTFlbV81VmRn",
"Connection": "close",
"Content-Length": "131",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.9.1"
},
"json": null
}

Yllä oleva ei toimi myöskään, vaan serveri palauttaa saman 401-vastauksen. Kanta-sivulta http://www.kanta.fi/en/web/ammattilaisille/tarkeaa-tietoa-kehittajille löytyvä auktorisointiopas ei mainitse client_id-, eikä client_assertion-parametrejä.


Last updated: Apr 12 2022 at 19:14 UTC