BankID

BankID är Sveriges ledande e-legitimation med över 8 miljoner användare. TIC Identity hanterar hela integrationen åt dig.

Översikt

BankID används för säker identifiering och digital signering. TIC Identity abstraherar komplexiteten i BankID:s API och ger dig ett enkelt REST-gränssnitt.

Funktion Stöd
Autentisering
Digital signering
QR-kod (annan enhet)
Autostart (samma enhet)
Animerad QR-kod
simpleMarkdownV1

Så fungerar det

QR-kod flöde (rekommenderat)

  1. Du startar en session via API:t
  2. Du visar en animerad QR-kod för användaren
  3. Användaren skannar QR-koden med BankID-appen
  4. Användaren identifierar sig med fingeravtryck/kod
  5. Du pollar för status och får resultat

Autostart flöde (samma enhet)

  1. Du startar en session via API:t
  2. Du redirectar till bankid:///?autostarttoken={token}&redirect={url}
  3. BankID-appen öppnas automatiskt
  4. Användaren identifierar sig
  5. Användaren redirectas tillbaka till din app

Animerad QR-kod

BankID:s QR-koder uppdateras varje sekund för att förhindra replay-attacker. QR-koden beräknas med HMAC-SHA256.

Format

bankid.{qrStartToken}.{time}.{qrAuthCode}

Beräkning

const crypto = require('crypto');

function generateQrCode(qrStartToken, qrStartSecret, secondsElapsed) {
  const hmac = crypto.createHmac('sha256', qrStartSecret);
  hmac.update(secondsElapsed.toString());
  const qrAuthCode = hmac.digest('hex');

  return `bankid.${qrStartToken}.${secondsElapsed}.${qrAuthCode}`;
}

// Uppdatera varje sekund
let elapsed = 0;
setInterval(() => {
  const qrData = generateQrCode(token, secret, elapsed++);
  renderQrCode(qrData);
}, 1000);
Eller använd vårt API
Du kan också hämta färdig QR-data via GET /api/v1/auth/{sessionId}/qr istället för att beräkna den själv.

Användarmeddelanden (RFA)

BankID definierar standardmeddelanden (RFA - Recommended for Action) som ska visas för användaren baserat på status. TIC Identity returnerar dessa automatiskt i API-svaren.

hintCode Svenska English
outstandingTransaction Starta BankID-appen. Start your BankID app.
started Söker efter BankID... Searching for BankID...
userSign Skriv in din säkerhetskod i BankID-appen... Enter your security code in the BankID app...
userCancel Åtgärden avbröts. The action was cancelled.
expiredTransaction BankID-appen svarar inte... The BankID app is not responding...
certificateErr Ditt BankID är för gammalt eller spärrat... Your BankID is blocked or too old...
startFailed Misslyckades att läsa av QR-koden... Failed to scan the QR code...

Hämta alla meddelanden via GET /api/v1/messages?language=sv

Sessionslivscykel

Tidsgränser

Parameter Värde Beskrivning
Session 5 minuter Total tid för autentisering (WCAG 2.1)
BankID-order 30 sekunder Varje QR-kod är giltig i 30 sekunder
Polling-intervall 2 sekunder Rekommenderat intervall för status-polling

Order-regenerering

TIC Identity regenererar automatiskt BankID-ordern var 25:e sekund (innan 30-sekundersutgången). Nya qrStartToken och qrStartSecret returneras i poll-svaret.

Förlängning (WCAG)

För tillgänglighet kan sessionen förlängas en gång via POST /api/v1/auth/{sessionId}/extend, vilket ger ytterligare 5 minuter.

Säkerhet

  • TLS 1.3: All kommunikation krypteras
  • Klientcertifikat: TIC Identity autentiserar sig mot BankID med certifikat
  • IP-validering: Slutanvändarens IP loggas och kan valideras av BankID
  • Animerad QR: Förhindrar replay-attacker
  • Personnummer: Kan begränsas till specifik användare
Skicka korrekt IP-adress
Skicka alltid slutanvändarens verkliga IP-adress i endUserIp. Felaktig IP kan leda till blockerade sessioner och är ett brott mot BankID:s avtal.

Testmiljö

TIC Identity är konfigurerat mot BankID:s testmiljö i utvecklingsläge. Använd BankID:s testapp för att testa.

Test-personnummer

Skapa test-BankID på demo.bankid.com med valfritt personnummer (t.ex. 199001011234).

Testapp

Ladda ner BankID-testappen från BankID:s utvecklarportal.