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.
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:
-
bankid - statisk text
-
qrStartToken - är qrStartToken från första svaret
-
time – tiden i sekunder sen första anropet, börjar på 0
-
qrAuthCode – HMAC SHA256 av strängvärdet för tiden och qrStartSecret som nyckel
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.
- Användaren blir uppringd av tjänsten = Ett extra ServiceID
- Användaren ringt upp tjänsten = Ett extra ServiceID
- Om användaren kan bli både uppringd och själv ringa upp tjänsten = Två extra ServiceID
Test
I testmiljön är följande serviceID:n konfigurerade för telefoniflödet.
- logtest097 - Telefoni, där användaren blivit uppringd av tjänsten
- logtest098 - Telefoni, där användaren ringt upp tjänsten
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