Riktlinjer för Mobilt BankID till förlitande part

Finansiell ID-Teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 1(29)
Datum:2013-06-03
Riktlinjer för Mobilt BankID
till förlitande part
Version 1.0.7
2013-06-03
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 2(29)
Datum:2013-06-03
Innehållsförteckning
1
Dokumenthistorik ............................................................................................................... 4
2
Inledning ............................................................................................................................. 5
2.1
Plattformsstöd .................................................................................................................. 5
3
Referenser ........................................................................................................................... 5
4
Översikt Mobilt BankID ..................................................................................................... 6
4.1
5
Exempelanvändning........................................................................................................ 7
Webbtjänst ........................................................................................................................... 8
5.1
Flöde ................................................................................................................................ 8
5.2
Alternativflöden ............................................................................................................... 8
6
Mobil webbtjänst ................................................................................................................. 9
6.1
Flöde .............................................................................................................................. 10
6.2
Alternativflöden ............................................................................................................. 10
7
App..................................................................................................................................... 12
7.1
Flöde .............................................................................................................................. 12
7.2
Alternativflöden ............................................................................................................. 12
7.3
Programmatisk start av BankID säkerhetsapp ............................................................ 13
7.4
Återstart av FP-app i iOS .............................................................................................. 13
7.1
Återstart av FP-app i Android....................................................................................... 14
7.2
Återstart av FP-app i Windows Phone 8 ...................................................................... 14
8
RP Interface ...................................................................................................................... 15
8.1
Flöde och riktlinjer........................................................................................................ 16
8.2
Krav på teknisk lösning ................................................................................................. 18
8.3
Riktlinjer för meddelanden ........................................................................................... 19
8.1
Speciella noteringar om Webbservicen ........................................................................ 20
9
Anslutningsinformation ................................................................................................... 21
10
Testmiljö......................................................................................................................... 22
11
Support ........................................................................................................................... 24
12
BankID säkerhetsapp RP Interface Description .......................................................... 25
12.1
Introduction ................................................................................................................ 25
12.2
Version ........................................................................................................................ 25
12.3
URL............................................................................................................................. 25
12.4
References .................................................................................................................. 25
12.5
Authenticate ............................................................................................................... 25
12.6
Sign ............................................................................................................................. 26
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 3(29)
Datum:2013-06-03
12.7
Collect ......................................................................................................................... 27
12.8
EndUserInfo Type ...................................................................................................... 28
12.9
Fault ........................................................................................................................... 28
13
Rekommenderade termer .............................................................................................. 29
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
1
Version 1.0.7
Sida 4(29)
Datum:2013-06-03
Dokumenthistorik
Version Datum
Beskrivning
1.0
2011-05-17
Första versionen av riktlinjer för Mobilt BankID.
1.0.1
2011-06-13
Kompletterat avsnittet Felkoder med meddelande för
SIGN_VALIDATION_FAILED.
Kompletterat avsnittet Krav på teknisk lösning med nytt
börkrav RFT10.
Uppdaterat avsnittet Riktlinjer för meddelanden med nytt
meddelande RFA3.
Uppdaterat avsnittet Testmiljö.
1.0.2
2011-10-26
Uppdaterat avsnittet Mobil webbtjänst med avseende på
begränsningar i JavaME-stödet samt ett designförtydligande.
Ändrat BankID-URL:en för iOS i avsnittet Programmatisk
start av BankID säkerhetsapp
1.0.3
2012-01-24
Uppdaterat RFA3 och RFA4
Uppdaterat instruktionerna i avsnittet Mobil webbtjänst.
1.0.4
2012-04-24
Ny version av det tekniska gränssnittet RP Interface, se avsnitt
RP Interface och BankID säkerhetsapp RP Interface
Description.
Uppdaterat avsnittet Underskrift med avseende på
formateringsmöjligheter.
Tagit bort instruktionerna till FP om att på Android registrera
ett eget Intent-filter, då detta inte behövs längre.
Inkluderat brandväggsinformation i avsnitten
Anslutningsinformation och Testmiljö.
1.0.5
2013-04-03
Uppdaterade testinstruktioner för iOS i avsnittet Testmiljö.
Uppdaterade brandväggsinstruktioner i avsnitten
Anslutningsinformation och Testmiljö.
Uppdaterat RFT6 och RFT7.
Maxgränsen för userVisibleData-parametern sänkt från 100k
till 40k.
Java ME avvecklat
1.0.6
2013-03-05
Noteringar om webbservicen (versioner, testmiljön och
soapAction).
1.0.7
2013-06-03
Stöd för Windows Phone 8.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
2
Version 1.0.7
Sida 5(29)
Datum:2013-06-03
Inledning
Det här dokumentet beskriver hur en förlitande part (FP) kan använda Mobilt
BankID för inloggning (legitimering) och underskrift (signering) i egna tjänster och
integrera mot Mobilt BankID.
Mobilt BankID har tre huvudanvändningsfall.
1)
2)
3)
Webbtjänst - Legitimering/underskrift med förlitande parts tjänst på annan
enhet, t.ex. webbläsare i en PC.
Mobil webbtjänst - Legitimering/ underskrift med förlitande parts tjänst i
mobil webbläsare.
App - Legitimering/underskrift med förlitande parts mobilapp.
Det här dokumentet beskriver hur FP integrerar mot Mobilt BankID i de olika fallen
och på de olika mobilplattformarna.
2.1 Plattformsstöd
Mobilt BankID finns idag för mobiltelefoner och surfplattor baserade på Android och
iOS samt mobiltelefoner baserade på Windows Phone 8. Aktuell information om
vilken hårdvara som stöds finns på http://support.bankid.com/mobil.
3
Referenser
[1] BankID-app RP Interface Description, kapitel 12
[2] Rekommenderade termer, kapitel 13
Aktuell version av detta dokument finns tillgängligt via
http://www.bankid.com/rp/info.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
4
Version 1.0.7
Sida 6(29)
Datum:2013-06-03
Översikt Mobilt BankID
För att inloggning eller underskrift med Mobilt BankID ska vara möjlig måste
användaren först ha installerat BankID säkerhetsapp i sin telefon och hämtat ett
BankID. Detta gör användaren med hjälp av funktioner i sin bank.
En FP som vill låta sina användare logga in eller skriva under information med
Mobilt BankID gör webbserviceanrop till en tjänst som BankID tillhandahåller. Det
finns speciella funktioner för att begära legitimering och underskrift samt för att
kontrollera resultatet. Kommunikationen är asynkron i betydelsen att FP först begär
att funktionen ska utföras och därefter regelbundet kontrollerar om det finns något
resultat. Det tekniska gränssnittet beskrivs i [1].
BankIDs webbservice kan endast nås av FP som har ett giltigt SSL klientcertifikat
(ett ”FP-certifikat”). FP-certifikat erhålls från den bank som FP har tecknat avtal om
BankID med.
Om BankID säkerhetsapp är installerad på samma mobiltelefon som den användaren
använder för att nå tjänsten (till exempel genom att surfa med webbläsare i telefonen
eller en app i telefonen), så kan BankID säkerhetsapp i de flesta fall startas
automatiskt. Om användaren når tjänsten på annat sätt (till exempel genom att surfa
till den med en webbläsare i en dator) så måste användaren själv starta BankID
säkerhetsapp.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 7(29)
Datum:2013-06-03
Notera att användande av Mobilt BankID inte ger något skydd av data och
information som presenteras i tjänsten. Det är helt och hållet förlitande parts ansvar
att skydda denna, exempelvis genom användande av SSL och stabil sessionshantering
4.1 Exempelanvändning
Legitimering
Underskrift
Legitimeringen visas med FP:s namn
(”BankID – Demo”). Användaren kan
välja att avbryta eller att skriva in sin
säkerhetskod och slutföra legitimeringen.
Underskriften visas med FP:s namn
(”BankID – Demo”) och texten som ska
undertecknas. Användaren kan välja att
avbryta eller att skriva in sin
säkerhetskod och slutföra underskriften.
Tangentbordet visas när användaren
trycker på inmatningsfältet för
Säkerhetskod.
FP:s namn visas så som det är angett i FP-certifikatet.
Innan ett BankID kan användas måste användaren hämta ett BankID från sin
internetbank.
Via en meny i BankID säkerhetsapp når man funktioner för att:
1. Hämta ett BankID från användarens internetbank
2. Byta säkerhetskod
3. Byta språk
4. Få information om namn och giltighetstid m.m.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
5
Version 1.0.7
Sida 8(29)
Datum:2013-06-03
Webbtjänst
FP har en tjänst som vill använda BankID säkerhetsapp legitimering/underskrift. FPtjänsten används inte på samma enhet som BankID säkerhetsapp. Ett typiskt exempel
är en tjänst i webbläsare i en dator men det kan också vara en app eller webbläsare i
en annan mobil enhet, t.ex. läsplatta. I det här fallet måste FP-tjänsten be användaren
att själv starta BankID säkerhetsapp när FP-tjänsten vill legitimera/skriva under. FPtjänsten behöver inte återstartas eftersom den hela tiden är igång på en annan enhet.
5.1 Flöde
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Användaren fyller i sitt personnummer i FP-tjänsten (om det inte är
sparat sedan tidigare) och vid underskrift även de uppgifter som ska
användas för signaturen.
FP-tjänsten visar rörlig väntesymbol.
FP skickar legitimerings-/underskriftsbegäran till BankID med hjälp av
[1].
FP-tjänsten ber användaren att starta BankID säkerhetsapp med
meddelandet MEDDELANDE_STARTA_BANKID_APP.
FP frågar BankID med hjälp av [1] efter svar (görs periodiskt till
slutligt svar erhålls).
FP erhåller tillfälligt svar och uppdaterar kontinuerligt informationen
till användaren enligt Gemensam fortsättning för legitimering/underskrift.
BankID skickar legitimerings-/underskriftsbegäran till BankID
säkerhetsapp.
BankID säkerhetsapp visar namnet på FP (så som det är angett i FPcertifikatet) och information om att legitimering/underskrift efterfrågas,
användaren matar in säkerhetskod eller väljer att avbryta.
FP erhåller slutligt svar.
FP-tjänsten slutar visa rörlig väntesymbol.
I detta användningsfall finns inget automatiskt sätt att kontrollera om BankID
säkerhetsapp är installerad eller inte. Andra tekniska fel som kan uppstå beskrivs i
avsnittet RP Interface.
5.2 Alternativflöden
1. Legitimerings/underskriftsbegäran i 3 misslyckas. Flödet avbryts och FP ska
inte be användaren starta BankID säkerhetsapp.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
6
Version 1.0.7
Sida 9(29)
Datum:2013-06-03
Mobil webbtjänst
FP har en webbapplikation (FP-mobilwebb) som kan användas i webbläsaren på en
enhet med Android, iOS, eller Windows Phone 8 och vill använda BankID
säkerhetsapp legitimering/underskrift i samma enhet som webbläsaren. Med hjälp av
mobilplattformen/operativsystemet kan FP-mobilwebb starta BankID säkerhetsapp
på enheten och via sin serverkomponent starta legitimering/underskrift med hjälp av
[1] (detaljerad beskrivning i avsnittet RP Interface).
BankID säkerhetsapp startas genom att i webbapplikation öppna följande länk:
bankid://redirect=[RETURNURL]
Länken fungerar i iOS,Android och Windows Phone 8 när den inbygga webbläsaren
används.
BankID säkerhetsapp använder URL-parametern redirect för att starta FP-mobilwebb
efter utförd legitimering/underskrift. Redirect måste vara URL UTF-8-kodad och
RETURNURL bör innehålla den URL som användaren befinner sig på i FP
mobilwebb. Användandet av exakt samma URL ökar sannolikheten att sidan öppnas i
samma webbläsarflik som användes innan BankID säkerhetsapp startades.
Om användaren har flera webbläsare installerade i sin Android-telefon måste
användaren ibland välja vilken webbläsare som skall användas då tillbakaväxling
sker från BankID säkerhetsapp till FP mobilwebb. På Android-enheter kan den
speciella URL:en bankid://redirect=null användas för undvika detta val.
Om redirect=null används kommer BankID säkerhetsapp istället avsluta sig
själv och FP mobilwebb kommer att visas utan att frågor ställs. Observera att
beteendet är unikt för Android, redirect=null resulterar på iOS i att ingen
tillbakaväxling till FP mobilwebb sker.
FP mobilwebb bör konstrueras så att flödet automatiskt återupptas efter
tillbakaväxlingen från BankID säkerhetsapp till FP mobilwebb. T.ex. genom att
automatiskt ladda om sidan.
Exempel på redirect före URL UTF8-kodning:
https://www.bank_x.com/path?p1=v1&p2=v2
Samma redirect URL UTF-8-kodad:
https%3A%2F%2Fwww.bank_x.com%2Fpath%3Fp1%3Dv1%26p2%3Dv2
Exempel på fullständig länk:
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 10(29)
Datum:2013-06-03
bankid://redirect=
https%3A%2F%2Fwww.bank_x.com%2Fpath%3Fp1%3Dv1%26p2%3Dv2
OBS: URL:en får inte innehålla ett värdnamn (host),
endast schemat (bankid) och parametern (redirect).
6.1 Flöde
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Användaren fyller i sitt personnummer i FP-mobilwebb (om det inte är sparat
sedan tidigare) och vid underskrift även de uppgifter som ska användas för
signaturen.
FP förvissar sig om att användaren använder en mobil webbläsare. Om inte
fortsätter flödet i Webbtjänst punkt 2.
FP ber användaren bekräfta1 om BankID säkerhetsapp finns installerad i
samma enhet som webbläsaren. Om inte fortsätter flödet i Webbtjänst punkt 2.
Följande formuleringar bör användas
a. ” Jag vill logga in med BankID säkerhetsapp i den här mobiltelefonen”
b. ” Jag vill logga in med BankID säkerhetsapp i en annan mobiltelefon”.
FP skickar legitimerings-/underskriftsbegäran till BankID med hjälp av [1] när
användaren väljer legitimering eller underskrift.
Om en felkod returneras avbryts flödet här och FP ska då inte starta
BankID säkerhetsapp.
FP-mobilwebb startar BankID säkerhetsapp.
BankID skickar legitimerings-/underskriftsbegäran till BankID säkerhetsapp.
BankID säkerhetsapp visar namnet på FP (så som det är angett i FPcertifikatet) och information om att legitimering/underskrift efterfrågas,
användaren fyller i sin säkerhetskod eller väljer att avbryta.
BankID säkerhetsapp använder URL-parametern redirect och startar
webbläsaren (observera specialfallet redirect=null ovan).
FP frågar BankID med hjälp av [1] efter svar.
6.2 Alternativflöden
1.
2.
3.
4.
1
FP upptäcker i 2 att användaren inte använder en mobil webbläsare. Flödet
fortsätter i Webbtjänst punkt 2.
Användaren svarar i 3 att han eller hon vill använda BankID säkehetsapp i en
annan mobiltelefon eller surfplatta. Flödet fortsätter i Webbtjänst punkt 2.
Legitimerings/underskriftsbegäran i 4 misslyckas. Flödet avbryts och FP ska
inte starta BankID säkerhetsapp.
BankID säkerhetsapp är inte installerad i enheten. Webbläsaren i Android och
iOS informerar i 5 användaren om att den inte kan öppna länken (se exempel
nedan).
Bekräftelse från användaren krävs därför att det är möjligt att användaren vill använda Mobilt
BankID i en annan mobiltelefon eller surfplatta. Det är inte heller tekniskt möjligt att från FPmobilwebb känna av om BankID säkerhetsapp är installerad.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
5.
Version 1.0.7
Sida 11(29)
Datum:2013-06-03
FP-mobilwebb kan i 5 inte starta BankID säkerhetsapp. Flödet fortsätter i
Webbtjänst punkt 2.
Andra tekniska fel som kan uppstå beskrivs i avsnittet RP Interface.
Exempel på felmeddelande i mobil webbläsare när BankID säkerhetsapp inte kan
startas eller inte är installerad:
iOS
Android
En ”pop-up” öppnas och användaren är
kvar i FP-mobilwebb efter OK
En ny sida öppnas och användaren måste
välja ”tillbaka” för att komma tillbaka till
FP-mobilwebb
I Windows Phone får användaren en fråga om att öppna Windows Phone Store om
BankID säkerhetsapp inte är installerad.
Ett sätt att bättre hantera telefoner som inte genererar någon användbar
felinformation är att göra anropet till BankID appen i en egen iFrame i webbsidan.
iFramen kan döljas helt. Efter att webservices anropet har gått bra och anropet att
starta appen gjorts startas också en funktion som visar texten ”Om inte din BankID
säkerhetsapp startas automatiskt så behöver du själv starta den i din mobil/surfplatta”
efter 5 sekunder och döljs igen efter 30 sekunder. Om appen inte startas så kommer
användaren att få se texten med information om att starta appen och om den startas så
kommer användaren att inte att se den då BankID säkerhetsapp har fokus.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
7
Version 1.0.7
Sida 12(29)
Datum:2013-06-03
App
FP har en mobilapp (FP-app) för Android, iOS eller Windows Phone 8 och vill
använda BankID säkerhetsapp för legitimering/underskrift i samma enhet som FPapp är installerad i. FP-appen kan starta BankID säkerhetsapp på enheten och via sin
serverkomponent starta legitimering/underskrift med hjälp av [1] (detaljerad
beskrivning i avsnittet RP Interface).
7.1 Flöde
1.
2.
3.
4.
5.
6.
7.
8.
9.
Användaren fyller i sitt personnummer i FP-appen (om det inte är sparat sedan
tidigare) och vid underskrift de uppgifter som ska användas för signaturen.
FP skickar legitimerings-/underskriftsbegäran till BankID med hjälp av [1].
Om en felkod returneras avbryts flödet här och FP ska då inte starta
BankID säkerhetsapp.
FP-appen startar BankID säkerhetsapp programmatiskt (beskrivs i avsnittet
Programmatisk start av BankID säkerhetsapp).
BankID skickar legitimerings/underskrifts-begäran till BankID säkerhetsapp.
BankID säkerhetsapp visar namnet på FP (så som det är angett i FPcertifikatet) och information om att legitimering/underskrift efterfrågas,
användaren skriver sin säkerhetskod eller väljer att avbryta.
BankID säkerhetsapp startar FP-appen. I iOS används URL-parametern
redirect som skickades av FP-appen och BankID säkerhetsapp startar FPapp på samma sätt som FP-app tidigare startade BankID säkerhetsapp. I
Android
anropas onActivityResult() i FP-appen när BankID säkerhetsapp är
klar med aktiviteten som FP-appen startade. Om FP-appen ej har stöd för
bakgrundskörning måste FP implementera funktionalitet för att spara sitt
tillstånd då BankID säkerhetsapp startas och sedan kunna återskapa sessionen
eftersom FP-appen kan komma att avslutas då BankID säkerhetsapp startas.
Det exakta beteendet beror på plattform och implementation av FP-app.
FP frågar BankID med hjälp av [1] efter svar.
7.2 Alternativflöden
1.
2.
3.
BankID säkerhetsapp är inte installerad i enheten. Anropet i 3 returnerar i så
fall en felkod (NO i iOS och
android.content.ActivityNotFoundException i Android) och
flödet avbryts av FP-appen. Följande meddelande ska då visas för användaren
MEDDELANDE_DEVICESW_SAKNAS.
Användaren avslutar sin BankID säkerhetsapp innan BankID säkerhetsapp har
återstartat FP-app. Användaren måste då själv återstarta FP-app.
Legitimerings/underskriftsbegäran i 2 misslyckas. Flödet avbryts och FP ska
inte starta BankID säkerhetsapp.
Andra tekniska fel som kan uppstår beskrivs i avsnittet RP Interface.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 13(29)
Datum:2013-06-03
7.3 Programmatisk start av BankID säkerhetsapp
7.3.1
iOS
openURL:[NSURL URLWithString: @”bankid://
redirect=fp_app_x://bank_x”]
7.3.2
Android
Intent intent = new Intent();
intent.setPackage("com.bankid.bus");
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE); //optional
intent.addCategory(Intent.CATEGORY_DEFAULT); //optional
intent.setType("bankid");
intent.setData(Uri.parse("bankid://www.bankid.com?redirect=null"))
;
startActivityForResult(intent, 0);
7.3.1
Windows Phone 8
Om inte Mobilt BankID finns installerat när URL anropas kommer användaren att få
en fråga att ansluta till Windows Store för att hämta ner den.
// Create the URI string
var uriToLaunch = @"bankid://www.bankid.com/redirect=" +
Uri.EscapeDataString("fp-app-x://bank_x");
// Create the URI to launch from a string.
var uri = new Uri(uriToLaunch);
// Launch the URI.
bool success = await Windows.System.Launcher.LaunchUriAsync(uri);
7.4 Återstart av FP-app i iOS
För att BankID säkerhetsapp i iOS ska kunna återstarta FP-app efter
legitimering/underskrift måste FP:
1. registrera ett unikt URL-schema i FP-app, samt
2. hantera fallet då FP-app startas med URL-schema-förfarandet.
I exemplen används URL-schemat fp_app_x. FP ska ändra fp_app_x till det URLschema FP vill använda.
7.4.1 Registrera schema
I Xcode:
1. Öpnna Info.plist.
2. Högerklicka, välj ”Add Row” och ”URL Types”.
3. Öppna ”Item 0” och ange ”URL Identifier”, praxis är omvänt domännamn t.ex.
se.företag.appnamn.
4. Högerklicka på ”Item 0”, välj ”Add Row” och ”URL Schemes”.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 14(29)
Datum:2013-06-03
5. Ge nyckeln URL Schemes / Item 1 värdet fp_app_x.
Exempel:
7.4.2 Hantera anrop
I UIApplicationDelegate: implementera funktionen
BOOL(application):(UIApplication *)application
handleOpenURL:(NSUrl *)url.
7.1 Återstart av FP-app i Android
I Android krävs ingen hantering motsvarande registrering av URL-schema i iOS.
Efter utförd eller avbruten legitimering/underskrift avslutas BankID säkerhetsapp och
FP App kommer åter att hamna i förgrunden och onResume() anropas i FP App.
7.2 Återstart av FP-app i Windows Phone 8
För att BankID säkerhetsapp i iOS ska kunna återstarta FP-app efter
legitimering/underskrift måste FP:
3. registrera ett unikt URL-schema i FP-app, samt
4. hantera fallet då FP-app startas med URL-schema-förfarandet.
I exemplen används URL-schemat fp_app_x. FP ska ändra fp_app_x till det URLschema FP vill använda.
7.2.1 Registrera schema
Öppna
App anifest.xml med en text-editor
Lägg till ett "Tokens lägger du till följande:
Hantera anrop / återstart
I VisualStudio:
Lägg till klassen AssociationUri apper enligt följande:
<Extensions>
<Protocol Name="fp-app-x"
NavUriFragment="encodedLaunchUri=%s"
TaskID="_default" />
</Extensions>
7.2.2 Hantera anrop
I VisualStudio:
Lägg till klassen AssociationUri apper enligt följande:
<Extensions>
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 15(29)
Datum:2013-06-03
<Protocol Name="fp-app-x"
NavUriFragment="encodedLaunchUri=%s"
TaskID="_default" />
</Extensions>
/// <summary>
/// The association uri mapper.
/// </summary>
internal class AssociationUriMapper : UriMapperBase
{
/// <summary>
/// When overridden in a derived class, converts a
requested uniform
resource identifier (URI) to a new URI.
/// </summary>
/// <returns>
/// A URI to use for the request instead of the value in
the <paramref
name="uri"/> parameter.
/// </returns>
/// <param name="uri">The original URI value to be mapped
to a new
URI.</param>
public override Uri MapUri(Uri uri)
{
var tempUri =
System.Net.HttpUtility.UrlDecode(uri.ToString());
// URI association launch.
don't
if (tempUri.StartsWith("/Protocol"))
{
// Here we can redirect to the correct page, but for now
we
return new Uri("/MainPage.xaml", UriKind.Relative);
}
}
// Otherwise perform normal launch.
return uri;
}
1. I App.xaml.cs, lägg till AssociationUri apper som Uri apper genom att i
metoden Initiali e honeApplication lägga till följande rad:
// Assign the URI-mapper class to the application frame.
RootFrame.UriMapper = new AssociationUriMapper();
8
RP Interface
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Sida 16(29)
Datum:2013-06-03
Version 1.0.7
8.1 Flöde och riktlinjer
Här beskrivs rekommenderad användning för de olika användningsfallen. Fullständig
beskrivning av RP Interface finns i avsnittet BankID säkerhetsapp RP Interface
Description.
8.1.1 Legitimering
1.
2.
Anropa BankID med funktionen Authenticate.
SOAP-ramverket indikerar om anropet gick bra, legitimeringen behandlas nu
av BankID-systemet.
8.1.2 Underskrift
1.
2.
Anropa BankID med funktionen Sign. Texten i parametern userVisibleData
kommer att visas för användaren vid underskriftstillfället. För att formatera
texten kan CR, LF och CRLF användas och alla resulterar i en (1) radbrytning.
Inga andra formateringsmöjligheter finns.
SOAP-ramverket indikerar om anropet gick bra, underskriften behandlas nu av
BankID-systemet.
8.1.3 Gemensam fortsättning för legitimering/underskrift
3.
4.
5.
Anropa BankID med funktionen Collect för att få slutlig status på
legitimering/underskrift. Anropet görs upprepade gånger tills statuskoden
COMPLETE returneras, i avsnittet
Statuskoder beskrivs samtliga statuskoder i detalj. Om Collect returnerar en
felkod avbryts legitimeringen/underskriften och FP ska inte fortsätta att anropa
Collect, i avsnittet Felkoder beskrivs samtliga felkoder i detalj.
Collect returnerar med statusvärdet COMPLETE och
legitimeringen/underskriften är klar. Personuppgifter returneras i parametern
userInfo och kan användas för vidare bearbetning av FP.
I ett typiskt flöde returneras först OUTSTANDING_TRANSACTION (användaren
har inte startat BankID säkerhetsapp), sedan USER_SIGN (legitimeringen eller
underskriften visas i telefonen) och till sist COMPLETE om användaren skrev in
säkerhetskoden eller felkoden USER_CANCEL om användaren valde att avbryta.
8.1.4 Statuskoder
I tabellen nedan beskrivs samtliga statuskoder i detalj.
Statuskod
Var har hänt?
OUTSTANDIN
G_TRANSACT
ION
USER_SIGN
BankID säkerhetsapp är inte
startad.
Meddelande
som FP bör
använda
RFA1
BankID säkerhetsapp har tagit emot RFA9
ordern.
Visas i BankID
säkerhetsapp
Legitimeringen
eller underskriften.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
COMPLETE
Sida 17(29)
Datum:2013-06-03
Version 1.0.7
Användaren har skrivit in sin
säkerhetskod och slutfört
legitimeringen eller underskriften.
Om BankID
säkerhetsapp
startades av FP
avslutas nu BankID
säkerhetsapp och
FP återstartas.
8.1.5 Felkoder
I tabellen nedan beskrivs samtliga felkoder i detalj. FP ska inte fortsätta att anropa
Collect efter att ha mottagit en felkod.
Felkod
Var har hänt?
Felaktigt anrop. FP ska inte försöka
igen med samma anrop. Det här är
ett internt fel hos FP och ska inte
kommuniceras till användaren som
ett BankID-fel.
ACCESS_DENI FP är inte behörig. FP ska inte
ED_RP
försöka igen. Det här är ett internt
tekniskt fel hos FP och ska inte
kommuniceras till användaren som
ett BankID-fel.
SIGN_VALIDA Internt tekniskt fel. FP bör inte
TION_FAILED försöka automatiskt igen. Ska inte
kommuniceras till användaren som
ett BankID-fel.
RETRY
Tillfälligt tekniskt fel i systemet.
INTERNAL_ER Internt tekniskt fel i systemet. FP
ROR
bör inte försöka automatiskt igen.
UNKNOWN_U 1) Användaren finns inte i systemet
SER
eller användaren har inget giltigt
BankID. FP ska inte försöka igen
utan att först ha försäkrat sig om att
användaren har hämtat ett BankID.
Meddelande
som FP bör
använda
INVALID_PAR
AMETERS
2) Användaren har skrivit in fel
säkerhetskod upprepade gånger och
har fått sin säkerhetskod permanent
låst. När det inträffar kan
användaren inte använda sitt
BankID.
3) Användarens BankID är spärrat.
4) Användarens BankID är ogiltigt.
Visas i BankID
säkerhetsapp
Inget
Inget
RFA5
Inget
RFA5
RFA5
Inget
Inget
RFA4
1) Inget
2) ”Din
säkerhetskod är
låst, du måste
hämta ett nytt
BankID hos din
internetbank”
3) ”Ditt BankID är
spärrat, du måste
hämta ett nytt hos
din internetbank”
4) Giltighetstiden
på ditt BankID har
gått ut, du måste
hämta ett nytt hos
din internetbank”
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Felkod
Sida 18(29)
Datum:2013-06-03
Version 1.0.7
Var har hänt?
FP har fortsatt att anropa Collect
efter att COMPLETE har
returnerats. Internt tekniskt fel hos
FP som inte ska försöka igen. Ska
inte kommuniceras till användaren
som ett BankID-fel.
EXPIRED_TRA Legitimeringen har passerat bästNSACTION
före-datum. Det kan bero på att
användaren inte startade BankID
säkerhetsapp eller att användaren
besvarade
legitimeringen/underskriften men
FP väntade för länge mellan
Collect-anropen.
INVALID_DEV Fel på BankID säkerhetsapp,
ICESW
äkthetsverifieringen misslyckades.
ALREADY_IN Användaren har redan en pågående
_PROGRESS
legitimering eller underskrift. FP
ska inte automatiskt försöka igen.
USER_CANCE Användaren har valt att avbryta
L
legitimeringen eller underskriften i
BankID säkerhetsapp.
Meddelande
som FP bör
använda
ALREADY_CO
LLECTED
TIME_BLOCK
ED
CANCELLED
Användarens säkerhetskod är
tillfälligt låst p.g.a. användaren har
skrivit in fel säkerhetskod
upprepade gånger.
OBS: I produktion är systemet
konfigurerat så att
TIME_BLOCKED inte kan
inträffa, istället kommer
säkerhetskoden bli permanent låst
efter 5 på varandra felaktig försök.
Vid permanent låst säkerhetskod
kommer felkoden
UNKNOWN_USER att returneras.
En ny begäran om legitimering
eller underskrift har inkommit för
samma användare.
8.2 Krav på teknisk lösning
Riktlinjer
Visas i BankID
säkerhetsapp
Inget
RFA8
”Legitimeringen
avbruten p.g.a.
inaktivitet”
RFA12
”Icke-godkänd
användare”
Inget
RFA3
RFA6
RFA11
RFA6
Om BankID
säkerhetsapp
startades av FP
avslutas nu BankID
säkerhetsapp och
FP återstartas.
”Din säkerhetskod
är tillfälligt låst”
”Åtgärden
avbruten”
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 19(29)
Datum:2013-06-03
RFT1
När BankID säkerhetsapp anropas med hjälp av en URL skall query-delen av
URL:en vara kodad med URL UTF-8-formatet.
RFT2 BankID säkerhetsapp anropas med hjälp av en URL skall request-parametern
redirect inte vara längre än 2048 tecken.
RFT3 När BankID säkerhetsapp anropas med hjälp av en URL bör redirect innehålla
schemat https (dvs använda SSL).
RFT4 Personnummer i RP-interface ska anges med 12 siffror (ååååmmddxxxx)
RFT5 Text-to-be-signed i RP-interface kan formateras genom att inkludera tecknet \n som
kommer att visas som radbrytning
RFT6 När Collect returnerar COMPLETE ska parametrarna signature, userInfo och
ocspResonse läsas ut och arkiveras av FP. FP behöver inte verifiera signaturen då
detta görs av BankID.
RFT7 FP kontaktar BankID RP Interface på följande adress:
https://appapi.bankid.com/RpServiceEjb/RpService/v2/RpService
RFT8 FP ska autentisera sig med klient-SSL mot BankID och skall för detta använda sitt
FP-certifikat.
RFT9 Collect bör anropas en gång varannan sekund och ska inte anropas oftare än en
gång per sekund.
RFT10 FP bör i sin webbtjänst visa en rörlig väntesymbol i väntan på slutligt svar från
Collect.
8.3 Riktlinjer för meddelanden
RFA1
RFA2
RFA3
RFA4
RFA5
RFA6
RFA7
RFA8
RFA9
MEDDELANDE_STARTA_BANKID_APP: Starta din BankID säkerhetsapp.
MEDDELANDE_DEVICESW_SAKNAS: Du har inte BankID säkerhetsapp
installerad. Kontakta din bank för att installera BankID säkerhetsapp och för att
hämta BankID.
MEDDELANDE_PÅGÅENDE_OPERATION: En inloggning eller underskrift för
det här personnumret är redan påbörjad, tryck avbryt i BankID säkerhetsapp och
försök igen.
MEDDELANDE_USER_DENIED: Det angivna personnumret saknar ett
fungerande Mobilt BankID. Ange ett annat personnummer eller kontakta din bank
för att beställa ett Mobilt BankID.
MEDDELANDE_PERMANENT_FEL: Det har inträffat ett internt tekniskt fel i
systemet. Försök igen.
MEDDELANDE_USER_CANCEL: Åtgärden avbruten.
Avsiktligt tom, används ej längre.
MEDDELANDE_USER_TIMEOUT: Inget svar från mobiltelefonen eller
surfplattan. Kontrollera att du har startat din BankID säkerhetsapp och att du har
täckning. Följ instruktionerna i mobiltelefonen och försök igen.
MEDDELANDE_GODKÄNN_ELLER_AVBRYT: Skriv in säkerhetskoden till ditt
BankID i din mobiltelefon eller surfplatta och välj Legitimera / Skriv under eller välj att
avbryta.
RFA10 Avsiktligt tom, används ej längre.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 20(29)
Datum:2013-06-03
RFA11 MEDDELANDE_TIME_BLOCKED: Du har skrivit in fel säkerhetskod upprepade
gånger och din säkerhetskod är tillfälligt låst. Försök igen senare.
RFA12 MEDDELANDE_INVALID_DEVICE_SW: Det har inträffat ett internt tekniskt
fel. Uppdatera din BankID säkerhetsapp och försök igen.
8.1 Speciella noteringar om Webbservicen
8.1.1 Versioner
Om webbservicen ändras på så sätt att nya parametrar kan användas eller returneras, att befintliga
parametrar försvinner, att nya svarskoder returneras, nya metoder tillkommer eller befintliga
försvinner kommer detta att betraktas som en ny version som publiceras på en ny url, till exempel
publiceras version 2 av tjänsten på https://appapi.bankid.com/RpServiceEjb/RpService/v2/RpService.
Förlitande part skall alltid använda den senaste versionen av webbservicen.
Vi förbehåller oss rätten att stänga av äldre versioner av tjänsten när vi vill men kommer först att, i den
mån det är möjligt och korrekta kontaktuppgifter finns tillgängliga, informera förlitande parter i god
tid innan så att de hinner ändra i sina tjänster.
8.1.2 Testmiljön
Nya versioner och releaser körs i testmiljön innan de produktionssätts. Därför kan innehåll och
funktionalitet i testmiljön tillfälligt skilja sig från innehållet i produktionsmiljön.
8.1.3 Ingen soapAction
Tjänsten använder url för att specificera vilken action som ska tas. soapAction i headern skall vara ””
eller utelämnas helt.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
9
Version 1.0.7
Sida 21(29)
Datum:2013-06-03
Anslutningsinformation
Beskrivning
SSL-certifikat (FPcertifikat)
URL till webbservices
Specifikation av
webbservice
Servercert
Plats/Information/Värde
Erhålls från den bank som ni tecknat avtal om BankID med.
https://appapi.bankid.com/RpServiceEjb/RpService/v2/RpServi
ce
https://appapi.bankid.com/RpServiceEjb/RpService/v2/RpServi
ce?wsdl
Servercertifikatet är utgivet av följande CA:
CN = BankID SSL Root Certification Authority
OU = Infrastructure CA
O = Finansiell ID-Teknik BID AB
Cert:
-----BEGIN CERTIFICATE----MIID6jCCAtKgAwIBAgIQSvZNAy61UF6qO2zWqvN/3zANBgkqhkiG9w0BAQUFADB0
MSQwIgYDVQQKDBtGaW5hbnNpZWxsIElELVRla25payBCSUQgQUIxGjAYBgNVBAsM
EUluZnJhc3RydWN0dXJlIENBMTAwLgYDVQQDDCdCYW5rSUQgU1NMIFJvb3QgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgxMjE5MDg1OTAxWhcNMTkwNjAxMjE0
NTAwWjB0MSQwIgYDVQQKDBtGaW5hbnNpZWxsIElELVRla25payBCSUQgQUIxGjAY
BgNVBAsMEUluZnJhc3RydWN0dXJlIENBMTAwLgYDVQQDDCdCYW5rSUQgU1NMIFJv
b3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCzqv7Rn43VFyTGicb+qjSGNeJga6GWQkMEXn9NvqCfknpaz4kf
RbNHoQvtmw7CsiL83hMNU5y0EI6wC45Whn8ZXJ5/eqj1zBSu7QqKctEbMjWf6sf2
VUyE7lns6FxRFAgbhM2RS5LnWCfRsSgjKLXbJk7S2O/qVWdlxU1fAYfjbja1xhQm
jArtvCYv9D2f8MBgH9sOsabVdLEKtiXj9NpBiXIi+c9DUpzvY1qnY02dsSudVwm3
IwJlEljLfjcBQDtJlm/7TbKsnqvW8s+NT6JBputUZT8Mqsv63meEbhxcq6vNcNKZ
SgeHZDmr9lY2hmmVK9TcgfWHHkymUAWTGRQzAgMBAAGjeDB2MA8GA1UdEwEB/wQF
MAMBAf8wEwYDVR0gBAwwCjAIBgYqhXBOAQQwDgYDVR0PAQH/BAQDAgEGMB0GA1Ud
DgQWBBS2GCMB5GeakO2/WOqKJJXGAop6tTAfBgNVHSMEGDAWgBS2GCMB5GeakO2/
WOqKJJXGAop6tTANBgkqhkiG9w0BAQUFAAOCAQEAe4vukBbEjzsYC8Mv1xLcUQVD
gYTgnqvP8Lr8yABfNfhh+iIoFK7QvVD3Z+bIBnGEGutB5K78UTadKINittSKA4T4
3Uy/p/blqew8Sqhv0I5MVlW71++HiPth4xwHAoxfe4oyTQaJRgls1CCsCBnuT9IF
6nGUNziC46RqIlhiY7zDzROtBWjqJzq+QvO07s73m+GPk8kZVwQrtyFT2IuYMH23
od/sRe2W5GClo2d62SBrzywYJZAaBNY9yl6weMdqWRqJz0mYZHrvLCQ1xrq4nvpL
bMDfs1wD3vctSXLBFfBU9qw+CYTBN4UJ7BHQw1r2KGeAjm5grkL7Z7lQzTWSqw==
-----END CERTIFICATE-----
Brandväggsinformation
BankID säkerhetsapp för produktion kontaktar BankID-servern
på adressen 194.242.109.204 och portarna TCP / 4711, 4710,
443, 80.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 22(29)
Datum:2013-06-03
10 Testmiljö
BankID tillhandahåller en testmiljö så att FP kan utveckla och testa mot ett system
med riktiga gränssnitt. För att använda testmiljön behöver FP:
1. ett SSL-certifikat (FP-certifikat) för att identifiera sig för BankID:s
webbservice.
2. URL till BankID:s webservice för inloggning och signering.
3. Konfigurera utgivare av servercertifikat som skyddar webbservicen som
”trusted” i sin applikationsserver från vilken anrop till BankID görs
4. Testversion av BankID Säkerhetsapp installerat i en telefon.
5. Ett testbankid utgivet till aktuell telefon.
Beskrivning
SSL-certifikat (FPcertifikat) för test
Pinkod för ovanstående
certifikat
URL till webbservices
Specifikation av
webbservice
Utgivare av servercert
Plats/Information/Värde
http://bankid.com/RP/Info
qwerty123
https://appapi.test.bankid.com/RpServiceEjb/RpService/v2/RpS
ervice
https://appapi.test.bankid.com/RpServiceEjb/RpService/v2/RpS
ervice?wsdl
CN = BankID SSL Root Certification Authority TEST
OU = Infrastructure CA
O = Finansiell ID-Teknik BID AB
Certifikat:
-----BEGIN CERTIFICATE----MIID8zCCAtugAwIBAgIRAODr4WfulmxifqSx8UEMbyIwDQYJKoZIhvcNAQEFBQAw
eTEkMCIGA1UECgwbRmluYW5zaWVsbCBJRC1UZWtuaWsgQklEIEFCMRowGAYDVQQL
DBFJbmZyYXN0cnVjdHVyZSBDQTE1MDMGA1UEAwwsQmFua0lEIFNTTCBSb290IENl
cnRpZmljYXRpb24gQXV0aG9yaXR5IFRFU1QwHhcNMDgxMjA0MTMyNTU1WhcNMTkw
NjAxMTIxODAwWjB5MSQwIgYDVQQKDBtGaW5hbnNpZWxsIElELVRla25payBCSUQg
QUIxGjAYBgNVBAsMEUluZnJhc3RydWN0dXJlIENBMTUwMwYDVQQDDCxCYW5rSUQg
U1NMIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgVEVTVDCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAOZh4Y7AkqrGb4LL/HCnqx0AmCdaHXKmJqbt
NyIE3ppEnWYR6hGrZcSKRAYkU8ShS0Sf647Bj4tXiVQYg1msIvYgZ8h4QJqkqMYY
2nwJC2cDbtc3TL6ppXQVmIiS6wZewV1GL2xKUEPbKgDPiSgFyh3W1d/QihUwnwoa
CGQ/crivftaNTnp4ZqQod9k35WfBy8xdB7cLHFeznfHoP1ZLOHza9bprT0F8YzEa
u5CoCMxWPe0sY9aQC8oO3gKyohJrxnxTlDY2cMLXTCiUWIYh+ubybZ3Hqw1YFEmE
4IyiGyT9+LUChFhM0p53eR3GRUU7laxFVbVLuVdbIV0ZRL+0Eb8CAwEAAaN2MHQw
DwYDVR0TAQH/BAUwAwEB/zARBgNVHSAECjAIMAYGBCoDBAUwDgYDVR0PAQH/BAQD
AgEGMB0GA1UdDgQWBBSlaUGnPvmNu9R9LsDgulauQCwrvTAfBgNVHSMEGDAWgBSl
aUGnPvmNu9R9LsDgulauQCwrvTANBgkqhkiG9w0BAQUFAAOCAQEAY1zWz1oV3ZMC
78uhGYA+j6Zktps9IXzIw3v1T3wtYclUoJI594w7vmTMqFY9z2mnms+gKTxCO/70
MpCNMgKSLj2bGsrMWHCvnDWpmYY5ZkDP2GWB6aqy+ehRmlYjUbPhjD44Xfjh/Stq
1yXCUfesLUHZDcBxpDspOwldWl7rhkE7QPj5hdSP85l04oIcnYiMyOPTt+4LNYN+
ncb0a/ZkJcUL7Q9NGJfmEhAmHcCpK8j1coSh36D8JMeSblVTBEWpnBMP5zXKAkzf
OzZLGyy9RnV51NhRMRnQtDOFCZ9vQuuyCE/TZeOp4IgZctEvt2Aab23fx5jWBbzC
EtEmq/VqaQ==
-----END CERTIFICATE-----
Testversion BankID
säkerhetsapp för Android
Installationsinstruktion
http://bankid.com/RP/Info
http://bankid.com/RP/Info
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Testversion BankID
Säkerhetsapp för iOS
Version 1.0.7
Sida 23(29)
Datum:2013-06-03
Installera BankID säkerhetsapp från App Store. Gå in i
Inställningar  BankID  Utvecklare  Server. Skriv in
businternal.test.bankid.com. Denna inställning innebär att
BankID säkerhetsapp kommer att kommunicera med ett
testsystem istället för produktionssystemet. Notera: För att
återställa denna inställning måste appen avinstalleras och
installeras igen.
Testversion BankID
Installera BankID säkerhetsapp från Windows Phone Store.
Säkerhetsapp för Windows Starta BankID säkerhetsapp, gå in i inställningar 
Phone 8
Utvecklare Server. Skriv in businternal.test.bankid.com.
Spara, stäng BankID säkerhetsapp och starta appen igen. Denna
inställning innebär att BankID säkerhetsapp kommer att
kommunicera med ett testsystem istället för
produktionssystemet. Notera: För att återställa denna
inställning måste appen avinstalleras och installeras igen
Mobilt BankID för test
Gör steg 1-4 först och bekräfta att du kan göra de tekniska
anropen till BankID-Servern.
Rutin för att erhålla Mobilt BankID för test: Tills vidare görs
detta med en manuell rutin. Skicka ett mail till
[email protected] och beskriv var du arbetar, syftet
med din utveckling och telefonnummer. Rutinen går i korthet
sedan till så att vi kontaktar er och manuellt initierar utgivning
av ett testbankid, ni matar in uppgifter i BankID Säkerhetsapp
och vi verifierar att det nyligen utgivna BankID:t fungerar.
Brandväggsinformation
BankID säkerhetsapp för test kontaktar BankID-servern på
adressen 194.242.109.185 och portarna TCP / 4711, 4710, 443,
80.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 24(29)
Datum:2013-06-03
11 Support
För tekniska frågor ska ni i första hand vända er till
mailto:[email protected]. I övriga frågor hänvisas till den bank som ni har
avtal med om användandet av BankID.
Riktlinjer
RFS1
Förlitande part bör informera användare vad användaren skall göra när
han/hon glömt sin säkerhetskod (d.v.s. kontakta utfärdare).
RFS2
Förlitande part ska ge användare support för sin egen tjänst.
RFS3
Vid användarproblem ska förlitande part uppmana användaren att testa
BankID säkerhetsapp på BankIDs testplats (test.bankid.com) för felsökning.
1. Om test inte kan genomföras med godkänt resultat på BankIDs
testplats ska förlitande part
a. hänvisa användaren till utfärdarens support om användaren har problem
med BankID.
b. hänvisa användare till mobiloperatör om användare har
telekommunikationsorienterat problem.
2. Om användare inte har problem att legitimera sig och underteckna på
BankIDs testplats ska användare hänvisas till support hos förlitande
part.
RFS4
Förlitande part bör ha en egen FAQ. Underlag finns i referens [5].
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 25(29)
Datum:2013-06-03
12 BankID säkerhetsapp RP Interface Description
12.1 Introduction
This document describes the RP Web Service interface for the BUS Server. The interface is used by a
Relying Party, RP to request authentication and signature from a mobile device client. The resulting
XML signature is validated before it is returned to the RP.
The web service contains the methods described below and is defined by the WSDL 0 and XSD 0 for
the latest version 2. There is also an older version defined by the WSDL 0 and XSD 0 that will
eventually be deprecated.
SSL/TLS is used to secure the transport towards the web service. Client authentication is required with
SSL/TLS client certificates. The client certificate is issued by BankID RP CA (“köparcertifikat”).
12.2 Version
As the RP Web Service interface evolve over time new parameters and methods will be added. The
changes will be in a new version of the interface leaving the existing version unchanged for a while
but the old version will eventually be deprecated and removed. As new functionality is introduced to
the system then the behaviour of an existing version of the interface may change, e.g. existing faults
may also be used in new situations. New RPs should use version 2 and existing RPs should upgrade to
version 2.
This document is written for the latest version 2 of the interface and details of the older version are
found in an older version of this document.
The first version was released during 2011 with the formal version 1.0.0. This version will be
deprecated in the future and RPs should start using version 2.
Version 2 with formal version 2.0.0 adds some new types and parameters to existing methods. There is
also a new fault to handle the new RP cancel functionality.
12.3 URL
Each version of the interface has a unique URL.
Version 2: https://server:port/RpServiceEjb/RpService/v2/RpService
Version 1: https://server:port/RpServiceEjb/RpService/RpService
12.4 References
Reference
[1]
Document title
RpService.wsdl
Version
1.0.0
[2]
RpService.xsd
1.0.0
[3]
RpService_v2.wsdl
2.0.0
[4]
RpService_v2.xsd
2.0.0
[5]
Signature Profile for BankID
1.5
[6]
OCSP, RFC 2560, http://www.ietf.org/rfc/rfc2560.txt
12.5 Authenticate
Request an authentication order. This is an asynchronous operation and the output is used later in the
Collect method to query the status of the order and to get the final XML signature.
New from version 2 is that if an Authenticate or Sign order is already in progress for a
personalNumber when Authenticate is issued then the attempt fails as before but now the existing
order is also cancelled. No order is in progress for personalNumber after that.
12.5.1 Input
A new optional parameter endUserInfo was introduced in version 2. The input parameters are also
wrapped in the new element AuthenticateRequest, which includes the single parameter in version 1.
The input parameters to Authenticate are the following:
Parameter
personalNumber
Description
The Personal Number
(i.e “personnummer”) of the End User to enroll.
Required
Yes
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 26(29)
Datum:2013-06-03
Format is 12 digits.
endUserInfo
Additional information about the end user that is known by the RP.
This is a list of elements of type EndUserInfoType,. The number of
items in the list is in the range 0 to 20. There can be no duplicates for
the type element in .EndUserInfoType.
This is a new parameter from version 2.
No
12.5.2 Output
Output parameter from Authenticate is the following:
Parameter
orderRef
Description
An identifier that uniquely identifies the order. Used later in the Collect method to
collect the Authenticate response and to query status.
The operation succeeds as long as there are at least one valid BankID else the fault
UNKNOWN_USER is thrown.
12.5.3 Fault
If the operation fails a fault will be returned. This fault will contain a code (an XML enumeration) and
a detailed description, see Fault chapter.
12.6 Sign
Request a signature order. This is an asynchronous operation and the output is used later in the Collect
method to query the status of the order and to get the final XML signature.
New from version 2 is that if an Authenticate or Sign order is already in progress for a
personalNumber when Sign is issued then the attempt fails as before but now the existing order is also
cancelled. No order is in progress for personalNumber after that.
12.6.1 Input
A new optional parameter endUserInfo was introduced in version 2. The input to Sign is wrapped in
the element SignRequest, which contains the following sub-elements:
Parameter
personalNumber
Description
The Personal Number
(i.e “personnummer”) of the end user to enroll.
Format is 12 digits.
Required
Yes
userVisibleData
The text to be displayed and signed. Must be UTF-8 encoded. The
value should be base 64-encoded. Max 40KB (after base 64-encoding).
Yes
userNonVisibleData
Data that is not displayed to the user at time of signature computation.
The value should be base 64-encoded. Max 5MB (after base 64encoding).
No
endUserInfo
Additional information about the end user that is known by the RP.
This is a list of elements of type EndUserInfoType. The number of
items in the list is in the range 0 to 20. There can be no duplicates for
the type element in .EndUserInfoType.
This is a new parameter from version 2.
No
12.6.2 Output
Output parameter from Sign is the following:
Parameter
orderRef
Description
An identifier that uniquely identifies the order. Used later in the Collect method to
collect the Sign response and to query status.
The operation succeeds as long as there are at least one valid BankID else the fault
UNKNOWN_USER is thrown.
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Version 1.0.7
Sida 27(29)
Datum:2013-06-03
12.6.3 Fault
If the operation fails a fault will be returned. This fault will contain a code (an XML enumeration) and
a detailed description, see Fault chapter.
12.7 Collect
This method is used to query the status of an Authenticate or a Sign order. The return value is only
progress status until the end user is finished and the order is complete. Once the order is complete the
return values are also the resulting XML signature, the OCSP response when validating the end user
BankID and some information about the end user. Some new elements for information about the end
user was introduced in version 2.
12.7.1 Input
The input parameter to Collect is the following:
Parameter
orderRef
Description
An identifier that uniquely identifies an order. Returned by
Authenticate or Sign method.
Required
Yes
12.7.2 Output
Output parameters from Collect are the following:
Parameter
progressStatus
Description
An enumeration describing at what stage the processing of the
Authenticate or Sign order, see 12.7.5 below
Required
Yes
signature
A validated Signature encoded as base 64.
The XML format is according to 0.
This is only present if progressStatus is COMPLETE.
No
userInfo
An element of type UserInfoType with information about the end
user, see 12.7.4.
This is only present if progressStatus is COMPLETE.
No
ocspResponse
Status of the BankID certificate when the signature was validated,
OCSP response encoded as base 64, see 12.7.3.
This is only present if progressStatus is COMPLETE.
No
12.7.3 OCSP Response
The OCSP 0 response is signed by a certificate that has the same issuer as the certificate being verified
(i.e. the BankId).
The OSCP response has an extension for Nonce. The nonce is calculated as:

SHA-1 hash over the base 64 XML signature encoded as UTF-8. This is the value in the signature
element in Collect output.

12 random bytes is added after the hash
The nonce is 32 bytes (20 + 12).
12.7.4 UserInfo type
UserInfoType holds information about the end user that is returned to the RP. It has been updated for
version 2 with two new elements.
Parameter
name
Description
Name of the end user.
Required
Yes
personalNumber
Yes
notBefore
The Personal Number (i.e “personnummer”) of the end user.
Format is 12 digits.
Validity time for the BankId.
notAfter
Validity time for the BankId.
Yes
givenName
Given name of the end user.
This is a new element from version 2.
Yes
Yes
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
surname
Version 1.0.7
Surname of the end user.
This is a new element from version 2.
Sida 28(29)
Datum:2013-06-03
Yes
12.7.5 Status
The progressStatus element in the Collect response message is of the type ProgressStatusType that is
an enumeration with the following elements:
Status
COMPLETE
Description
The signature is complete and is included in the response.
USER_SIGN
The request has been delivered to the End User (mobile client).
OUSTANDING_TRANSACTION
The request has not yet been sent to the End User.
12.8 EndUserInfo Type
The type EndUserInfoType was introduced in version 2 and holds information about the end user that
is known by the RP. It is a parameter in the Authenticate and Sign method.
Parameter
type
Description
Required
The type of information about the end user. There are two allowed
Yes
types (string, 1 - 20 characters):
IP_ADDR_WEB - End user web IP address. This should be the remote
address and not a HTTP header value.
IP_ADDR_APP – End user App IP address. This should be the remote
address and not a HTTP header value.
More types may be added in the future. This will not affect the RP
Web Service interface version.
value
The value for the type, string 1 - 1024 characters.
Yes
12.9 Fault
All Services methods return RpFault if an error occurs. It has the following sub-elements:
Parameter
faultStatus
Description
A fault status enumeration of type FaultStatusType described below, see 12.9.1.
detailedDescription
Additional information describing the error.
12.9.1 Fault status
All faults are of the FaultStatusType enumeration type. One new fault was introduced in version 2.
One existing fault in version 1 is also used in a new situation. It has the following elements:
Status
INVALID_PARAMETERS
Description
Input parameters are missing or invalid.
ACCESS_DENIED_RP
The security configuration of the RP does not allow the requested
operation. This can be if the RP is not configured at all, that the RP is not
enabled or that the RP does not have access to the order (i.e. the order
belongs to another RP)
SIGN_VALIDATION_FAILED
The PKI validation of the signature for Authentication or Sign failed.
Could be caused by the mobile client not encrypting correctly.
RETRY
Some kind of temporary problems. This is if the OCSP server has
temporary problems that prevent the verification of the End User for
signatures. Retry at a later time.
INTERNAL_ERROR
Internal error in RpService. This is some kind of unexpected error in the
system, e.g. problems with network or database. Also of the OCSP server
can’t be contacted.
UNKNOWN_USER
The End User is unknown or not valid. The reason for this can be that the
End user is never enrolled or that the BankID is expired, revoked or
Finansiell ID teknik BID AB
Riktlinjer för Mobilt BankID till förlitande part
Sida 29(29)
Datum:2013-06-03
Version 1.0.7
blocked. This fault is also returned if the End User is not valid when
verifying a signature.
ALREADY_COLLECTED
The signature has already been collected; it can only be collected once.
EXPIRED_TRANSACTION
The queried transaction has expired. The check for expired transaction is
done first, before starting to handle the collect request. This fault will only
be returned when the order becomes expired, repeated calls will return
INVALID_PARAMETERS
TIMEOUT
Not used
INVALID_DEVICESW
The mobile client is invalid. This is due to not following the protocol
correctly in the Genuine Software Verification.
ALREADY_IN_PROGRESS
The End User already has a request to process. There can only be one
request for an End User at a time. Cancel the order in the mobile client or
retry later when the order has expired.
USER_CANCEL
The mobile client reported that the End User cancelled the Authenticate or
Sign request.
This fault also has a new behaviour for version 1. RPs using version 1 of
the interface will get this fault for the new RP cancel order handling. The
new fault CANCELLED is sent to RPs using version 2, see below.
TIME_BLOCKED
The End User has entered invalid security code too many times and is now
blocked for a period of time. After that time the End User can use the
mobile client again. After a number of TIME_BLOCKED situations the
End User is permanently blocked and UNKNOWN_USER is returned.
CANCELLED
The order has been cancelled.
If an Authenticate or Sign order is already present for a personalNumber
when a new one is ordered then the RP that first created the order receives
this fault and the order is cancelled.
The RP that sends the second order receives ALREADY_IN_PROGRESS
fault. There is no order active for personalNumber after that.
If the first RP is using version 1 of the interface then the existing fault
USER_CANCEL is used.
This is a new fault from version 2.
13 Rekommenderade termer
Beskrivning
Rekommenderad term på
svenska
Rekommenderad term på
engelska
Mobilt BankID
Mobilt BankID
Mobile BankID
BankID säkerhetsapp
BankID säkerhetsapp
BankID Security App
Säkerhetskod/lösenord/PIN-kod
Säkerhetskod
Security code
Underteckna/signera
Underteckna
Sign
Underskrift/Signatur
Underskrift
Signature
Identifiera/autentisera/legitimera
sig
Legitimera sig
Identify
Identifiering/autentisering/legitime
ring
Legitimering
Identification