Javascript-API

Från FriBID
Hoppa till: navigering, sök

OBS: Dagens version av BankID använder inte längre Javascript-API:et, utan kör istället BankID-Cava

Officiell dokumentation[redigera]

För de bitar av Javascript-API:et som rör s.k. förlitande part finns den officiella dokumentation tillgänglig för allmänheten (troligen släpptes den i november 2010, i samband med "BankID-dagarna". I alla fall länkas den från en PDF därifrån). Detta gäller signering och hämtning av versionsnummer, men inte t.ex. hämtning av nya e-leg.

http://www.bankid.com/rp/info/

Informationen nedanför baseras på reverse engineering eftersom dokumentationen inte fanns tillgänglig när FriBID-projektet startades. Det verkar inte vara några större skillnader mot den officiella dokumentationen, men det återstår att kolla igenom alla detaljer.

Introduktion[redigera]

Javascript-API:et bygger på att man gör funktionsanrop på <object>-element med BankID- eller FriBID-pluginen. Elementen görs normalt osynliga eftersom all kommunikation med användaren sker från separata fönster. Här är en lista över alla objekt-typer som finns, vad de gör och om de stöds av FriBID.

Namn MIME-typ Beskrivning Stöds av FriBID
Authentication application/x-personal-authentication Används för att skapa XML-signaturer för inloggning Ja
Regutil application/x-personal-regutil Används för att hämta ut nya e-leg Ja, sedan v. 0.3.0
Signer2 application/x-personal-signer2 Används för att skapa XML-signaturer för underskrifter. Ja
Version application/x-personal-version Används för att få en sträng med versionsnummer, "bäst före"-datum, och märke på ev. kortläsare Ja
Webadmin application/x-personal-webadmin Verkar användas för att synkronisera "bäst före" datumet på klienten Finns, men gör inget alls. Gör att test.bankid.com fungerar. Finns i version 0.3.0
Logout application/x-personal-logout Verkar inte användas för BankID, men stöds av den officiella programvaran
Signer application/x-personal-signer Finns, men gör inget alls. Behöver finnas (men inte fungera) för att kunna logga in på vissa sidor.

HTML-koden för ett object-element kan t.ex. se ut så här:

 <object id="signerPlugin" type="application/x-personal-signer2" width="0" height="0"></object>

Sedan december 2010 / januari 2011 stödjer den officiella klienten bland annat signering av filer (t.ex. PDF) och har även uppdaterats med ett nytt värde: "UHI" (vilket troligen står för Unique Host Identifier). Detta används i både versionssträngen (kanske inte helt bra ur integritetssynpunkt...) och i signaturer (som nu även innehåller en "ticket" från uppdateringsservern). Detta stöds inte av FriBID än.

Version-objekt[redigera]

Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)

Authentication- och Signer2-objekt[redigera]

Se den gamla dokumentationen (detta ska flyttas över till Wiki:n)

Regutil-objekt[redigera]

Se filen tests/test-req.html för ett exempel på hur detta objekt används.

Webadmin-objekt[redigera]

Används på test.bankid.com.


GetLastError

Parametrar
Inga.
Returvärde
(Heltal) Senaste felkoden.


PerformAction

Parametrar
  1. namn (Sträng) Vilken åtgärd som ska utföras
Returvärde
(Heltal) Felkod.
Beskrivning
Används för att utföra någon av följande åtgärder (stora/små bokstäver i namnen har ingen påverkan). Felkoden returneras och kan även hämtas med GetLastError. Om en felaktig åtgärd anges blir felkoden InvalidAction.
Namn Beskrivning
RenewPollDates Skjuter fram "bäst före"-datumet med 30 dygn. Kan endast utföras från bankid.com. Annars blir felkoden DomainNotAllowed

Felkoder[redigera]

Namnen är specifika för FriBID. Dessa finns definierade i filen common/biderror.h i källkoden.

Namn (i FriBID) Kod Beskrivning
OK 0
InternalError 1 Specifik för FriBID. Används när ingen annan felkod passar in.
UserCancel 8002
InvalidParameter 8004
InvalidAction 8008
DomainNotAllowed 8011
InvalidPIN 8013
InvalidValue 8014
NotSSL 8015
MissingParameter 8016
ValueTooLong 8018
HostnameIsIP 8019
BlockedPIN 8102