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>