Tekniskt beskrivning GRP2+

Ändringshistorik

Datum Version Kommentar
2021-10-04 1.0 Publicerad
2022-08-05 1.1 Tillägg av GRP2.1
2022-08-10 1.2 Säker start
2024-01-12 1.3 Avsikt

GRP2+

Introduktion

Detta dokument beskriver i korthet hur autentisering och signering går till med GRP-protokollet och vad som skiljer de olika legitimationerna åt.

GRP-protokollet är ett asynkront protokoll för att genomföra autentiseringar och signeringar med e-legitimationer som har en API-baserad valideringstjänst. API:et består i grunden av tre anrop för att starta en autentisering, starta en signering och kontrollera status på befintlig transaktion.

Säker start

BankID kommer att kräva att man använder säker start från och med 1 maj 2024. Med säker start menas att BankID-appen anropas med antingen via AutostartToken eller med Rörlig QR-kod. Andra sätt såsom att skicka med personnummer eller generera en statisk QR-kod kommer att sluta fungera.

Avsikt

Nu kan företag och myndigheter skriva in en text som förklarar avsikten med en identifiering. På så sätt ser du tydligt vad du gör och kan lättare upptäcka om något inte stämmer.

Läs mer: https://www.bankid.com/om-oss/nyheter/text-om-avsikt-hoejer-saekerheten-vid-identifiering

Testanvändare

I våra testmiljöer används testlegitimationer. Det innebär att test-legitimationer från resp. e-legitimationsutfärdare kan behövas för att testa. Se mer information under utfärdare.

Testcertifikat/displayname

För tester av BankID kan dessa displayname användas: "Test av BankID" och "Funktionstjänster Test".

Flöde

Nedanstående flödesschema beskriver hur en autentisering ser ut. Samma flöde gäller även signering då endast anropen ser annorlunda ut.

sequenceDiagram participant A as Klient participant B as Applikation participant C as eID-Tjänst (GRP) A->>B: Logga in BankID samma enhet B->>C: AuthenticateRequest C->>B: OrderResponse B->>A: Startar BankID Säkerhetsprogram (AutoStartToken) loop Pollar i en loop B->>C: CollectRequest B->>A: Visa progress C->>B: CollectResponse end Note over B,C: USER_SIGN/COMPLETE/OUTSTANDING_TRANSACTION

Olika e-legitimationer

BankID

Autostart

För att starta BankID-appen på en dator eller mobil enhet behövs en URI för att initiera anropet. Denna ser ut som följer:

bankid:///?autostart=<autostartToken>&return=<url>

Start av BankID-appen kan initieras av att användaren klickar på en knapp/länk eller via javaskript. Observera att automatiskt starta via javascript inte fungerar korrekt i vissa lägen för ex. Chrome.

Personnummer

Fyll i personnummer med 12 tecken i rpDisplayName-fältet i requesten så ska BankID-appen initieras på aktuell enhet. Detta sätt att anropa BankID-appen kommer upphöra i och med kravet på säker start från BankID.

Avsikt

För att nyttja avsikt i autentiseringsflödet så används parametern userVisibleData på samma sätt som för underskrifter/signering.

QR

Den statiska QR-koden genereras genom att skapa en QR-kod från autostartlänken. Detta kommer även att upphöra i och med säker start.

Rörlig QR

För att kunna skapa den rörliga QR-koden krävs att man har gått över till version 2.1 av GRP-api:et då ytterligare parametrar returneras i svaret på ett Authenticate- eller Sign-anrop.

Beskrivning rörlig QR

Den rörliga QR-koden för BankID genereras enligt mallen "bankid.qrStartToken.time.qrAuthCode". Där parametrarna är som följer:

Exempel: bankid.67df3917-fa0d-44e5-b327-edcc928297f8.0.dc69358e712458a66a7525beef148ae8526b1c71610eff2c16cdffb4cdac9bf8

Telefoni

För att täcka upp för autentisering och signering där QR-kod ej kan presenteras har BankID infört ytterligare anrop. En av dessa avvikelser är autentisering och signering över telefonsamtal. Stöd för telefoni finns i GRP version 2.1+.

I GRP version 2.1 till 2.3 har implementationen genomförts utan att påverka tidigare WSDL-definitioner.

Beskrivning telefoni

Aktiveringen av telefonistödet sker på serviceID/policy. Det innebär att det är en konfigurationsinställning i tjänsten som avgör om det är ett telefonianrop som ska användas.

OBS! Om ServiceID behöver användas för vanlig autentisering så kommer det att krävas minst ytterligare ett serviceID för att aktivera telefoni beroende på hur anslutningen intitieras.

Test

I testmiljön är följande serviceID:n konfigurerade för telefoniflödet.

Freja eID

Autostart

För att starta Freja eID-appen på en mobil enhet behövs en URI för att initiera anropet. Denna ser ut som följer:

frejaeid://bindUserToTransaction?transactionReference=<autostartToken>&originAppScheme=<url>

Start av Freja eID-appen kan initieras av att användaren klickar på en knapp/länk eller via javaskript. Observera att automatiskt starta via javascript inte fungerar korrekt i vissa lägen för ex. Chrome.

QR

QR-koden för Freja eID skapas genom att skapa en QR-kod från autostartlänken.

NetID Access

Lämnas på efterfrågan