FHIDev / fhi.helseid

Fhi.HelseId component for accessing NHN HelseId
MIT License
6 stars 5 forks source link

add possibility to accept dpop-token #402

Closed yne-bv closed 2 weeks ago

yne-bv commented 2 weeks ago

Fixes #401.

Jeg og @martsve gikk over å la på kode for å akseptere DPoP {token}. Vi testet dette ut ved å bruke Martin's go-to teste-app PdfSkriver.

Det burde lages tester for å validere disse tingene. Det er en gjenganger at det mangles test dekning.

martsve commented 2 weeks ago

Ble referert til denne på ext-helseid:

https://datatracker.ietf.org/doc/html/rfc9449#section-7.2

Vi må altså alltid ANTA at serveren støtter DPOP (vist klienten har aktivert DPOP).

Vi må implementere retry-logikk på api-kall med helseid og clientcredentials. Om man får 401 uten DPoP scheme i WWW-Authenticate må vi sende med schema Bearer i stede for DPOP. Se f.ex. hvordan det ser ut i Grunndata her om man sender med DPoP scheme:

image

Vi burde kanskje implementere en mekanisme som husker hva slags scheme serveren støtter så lenge tokenet er valid.

runegri commented 2 weeks ago

Ble referert til denne på ext-helseid:

https://datatracker.ietf.org/doc/html/rfc9449#section-7.2

Vi må altså alltid ANTA at serveren støtter DPOP (vist klienten har aktivert DPOP).

Vi må implementere retry-logikk på api-kall med helseid og clientcredentials. Om man får 401 uten DPoP scheme i WWW-Authenticate må vi sende med schema Bearer i stede for DPOP. Se f.ex. hvordan det ser ut i Grunndata her om man sender med DPoP scheme:

image

Vi burde kanskje implementere en mekanisme som husker hva slags scheme serveren støtter så lenge tokenet er valid.

Vil anbefale at dere ikke gjør en retry. Klientene MÅ kjenne til API-ene de kaller og kravene disse stiller. Hvis dere ikke har kontroll på det så vil dere uansett møte på feilsituasjoner i framtiden. Siden klienten vet hva som er kravet så vil det være relativt lett for denne å tilpasse seg. API som krever DPoP må kalles med DPoP-scheme og dpop-headeren, mens andre api-er kalles som før med Bearer-scheme. Dere kan bruke samme token i begge tilfeller.

Det er noen api-er som tilbyr DPoP allerede og leverandørene har måttet tilpasse seg dette. Ingen har hatt problemer med dette, så jeg tror det skal være veldig overkommelig.