Protokoll för integration mot SwedSecs databas för uppdatering av

Protokoll för integration mot SwedSecs databas för uppdatering av
ÅKU
Syftet med det här protokollet är att låta Anslutna företag till SwedSec automatisera
uppdatering av information om sina licenshavare. Protokollet är designat enligt principer för
REST (Representational State Transfer). Det fungerar så att SwedSecs kunder kan hämta ett
XML-dokument innehållandes information om sina licenshavare, samt ladda upp ett XMLdokument för att uppdatera informationen.
Protokollet innehåller således två metoder. En metod för att hämta XML-dokumentet över
kundens licenshavare. En metod för att ladda upp ett XML-dokument för att uppdatera
informationen för en eller flera licenshavare.
Båda metoderna använder samma typ av XML-dokument, de beskrivs av samma DTD eller
XML Schema.
Den första metoden implementeras som ett HTTP GET-anrop till en URL på SwedSecs
webbplats. Den andra metoden implementeras som ett HTTP POST-anrop till en annan URL.
Båda URLerna ska hämtas via HTTPS (TLS-kryptering).
Båda metoderna skickar med två parametrar, ett gruppid och ett lösenord som verifierar
kunden. Grupp-id är ett heltal. Lösenorden är en 32-bitars ASCII-sträng som innehåller ett
128-bitars slumptal, som SwedSec tillhandahåller sina kunder. Parametrarna heter groupid
respektive password.
Den andra metoden tar också XML-dokumentents innehåll som en tredje parameter som heter
document.
Om gruppid eller lösenord är felaktigt kommer SwedSecs webbserver att svara med felkoden
“403 Forbidden”. Ifall XML-dokumentet är felaktigt kommer den att svara med “400 Bad
Request”. Ifall allt gick rätt till kommer båda metoderna att svara med ett XML-dokument
som beskriver SwedSecs information om kundens licenshavare. Ifall XML-dokumentet
innehöll felaktig information, till exempel försökte uppdatera information om en licenshavare
som inte längre jobbar i det anslutna företaget, kommer inget explicit felmeddelande att ges.
Dock kommer denna licenshavare inte att finnas med i det XML-dokument som skickas som
svar.
För att integration med systemet kan ni testa att ert system fungerar gentemot Onlinetjänsten
via denna URL som går till SwedSec utvecklingsserver:
https://dev.swedsec.se/online/service/integration.htm
För integration med systemet i den skarpa miljön använder ni följande URL gentemot
Onlinetjänsten.
https://online.swedsec.se/service/integration.htm
Vissa tjänster kräver ett id och lösen kontakta [email protected].
XML-dokumentet innehåller följande schema:
<?xml version=”1.0”?>
<users>
<user>
<pnr>licenshavarens personnummer nnnnnn-nnnn</pnr>
<extend>true eller false</extend> Ska licenshavarens licens
förlängas ytterliggare ett år
</user>
...
</users>
Swedsec.dtd
<!ELEMENT users (user)+>
<!ELEMENT user (pnr,extend)>
<!ELEMENT pnr (#PCDATA)>
<!ELEMENT extend (#PCDATA)>
SwedSec.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="users">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user"
type="UserType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="UserType">
<xsd:all>
<xsd:element name="pnr" type="PnrType"/>
<xsd:element name="extend" type="xsd:boolean"/>
</xsd:all>
</xsd:complexType>
<xsd:simpleType name="PnrType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{6}-\d{4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>