Digitalna potrdila SIGOV-CA in SIGEN-CA ne vsebujejo ključnih identifikacijskih podatkov (EMŠO, davčna številka, ...).
Samo na osnovi imena oziroma naziva lastnika digitalnega potrdila ni mogoča zanesljiva overitev, zato lahko to storite s spodnjim zahtevkom. Z njim lahko preverite, ali nek identifikacijski podatek (EMŠO, davčna številka, davčna številka organizacije in matična številka organizacije) določa imetnika potrdila z določeno serijsko številko potrdila.
Uporaba storitve
1. Vaša aplikacija tvori z digitalnim potrdilom SIGOV-CA ali SIGEN-CA podpisan XML dokument, ki ustreza shemi PodpisaniDokument.xsd.
Podatke, ki jih želite preveriti, vnesete v Predstavitve -> Predstavitev -> Podatki. Obvezen je podatek za 13-mestno serijsko številko potrdila (<serial>) in izdajatelja (<ca>) ter najmanj eden od podatkov, ki jih želite preveriti:
- EMŠO (<emso>)
- davčna številka uporabnika (<dsUporabnika>)
- davčna številka organizacije (<dsPodjetja>)
- matična številka organizacije (<maticna>)
Zahtevek v obliki WSDL pošljete v ovojnici SOAP po protokolu HTTP POST na naslov https://storitve-ca.gov.si/CcWeb/services/Avtentikacija.
2. Če je preverjanje podatkov uspešno (sistem najde podane podatke), strežnik doda dokumentu časovni žig in na koncu še svoj dig. podpis v skladu s shemo.
3. Če preverjanje ni uspešno, strežnik namesto časovnega žiga in podpisa doda element <neuspeh>, ki označuje napako.
4. Spletna storitev kot odgovor vrne dopolnjeni dokument.
5. Če pride do težav, storitev vrne napako (<SOAP exception>).
Testna spletna storitev
Omogoča isto funkcionalnost kot produkcijski sistem, le da se izvaja v testnem okolju, kar za uporabnika pomeni naslednje:
- za avtentikacijo in digitalni podpis podatkov je potrebno uporabiti testno digitalno potrdilo izdajatelja SITEST-CA,
- sistem omogoča preverjanje testnih podatkov o imetnikih digitalnih potrdil, zato je potreben predhodni dogovor glede primernih podatkov za povpraševanje.
Navodilo za izdelavo zahtevka
Primer postopka za izdelavo zahtevka za testno spletno storitev za preverjanje identifikacijskih podatkov. Podatki za ta primer so že vpisani, zato zahtevek takoj deluje in poseben dogovor glede podatkov ni potreben.
1. Za začetni dokument uporabimo dokument v formatu .xml - Vzorec1.xml. V tem dokumentu vpišemo serijsko številko potrdila ter EMŠO in davčno številko osebe.
2. Izračunamo DigestValue elementa Predstavitev, ki ga je potrebno preoblikovati v kanonsko obliko.
3. Vrednost digest-a v obliki base64 je "6FJDChZd7yPuixFpKHLdLLsVOTc=". To vrednost (brez narekovajev) vpišemo v element DigestValue.
4. Element SignedInfo preoblikujemo v kanonsko obliko in ga podpišemo. Podpis v obliki base64 je:
idiuGaDgrVREDErtYuIL4LN+xp+dgHpOHD+8he8ogGS5W0nX+vP8Ba+uGcG7rM2m
0BtTUSSWQH1RC2Sw4LrEGgRnTsCaZTGuCD08iW8HW03/uU4GWjoUAQto1wYrKkb0
+VSJBOpcekBaueMplAdcJOjs8iEpX9kZzr4n/bCILh2HD2tMzKrXj7s8Hoo1BTqk
9Mk1HJ3dVz1eyHcaRwhYIo1Zy0BgqJzKw+zt6K6nUflZddoojN6g0fu/ZVbzwVYx
UrgE01qRofpK9EF4IMr7LN7AnvFqKfpldSwNm8O3ru6OyqH9eQ4EV0LAr3xtVCNW
9e1mwKqLXtmXHnisugjDtA==
Zgornji niz (brez prelomov vrstic) shranimo v element SignatureValue. Za podpis potrebujemo privatni ključ. V našem primeru smo uporabili privatni ključ, ki pripada dig. potrdilu iz pripete datoteke tomaz-test.p12. Geslo za dostop je tomaz-test.
5. V element X509Certificate vpišemo dig. potrdilo, v formatu base64, ki pripada ključu, s katerim smo naredili podpis v prejšnji točki.
6. Do sedaj narejen dokument vložimo v ovojnico za SOAP. Tako dobimo dokument, ki ga lahko vidimo v priponki Soap.xml.
Pomembno je, da:
- je struktura dokumenta PodpisaniDokument čimbolj takšna kot v našem primeru (nekateri Id-ji so lahko drugačni ali drugje, vrstni red večinoma ni pomemben itd.)
- ima element Predstavitev točen Id="MyVisualisation2"
- je ta element podpisan tako, da je znotraj SignedInfo <Reference URI="#MyVisualisation2">
- je metoda kanonikalizacije <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
- pred značko <Podatki.../> in za njo znotraj elementa <Predstavitev...></Predstavitev> ni presledkov, tabov ali prelomov vrstic
- ima element Signature točen Id="ClientSignature"
7. Zahtevek za HTTPS začnemo z naslednjimi vrsticami:
SOAPAction: [""]
Accept: [text/xml, multipart/related]
Content-Type: [text/xml; charset=utf-8]
Content-Length: 3030
Dolžina v Content-Length mora biti enaka številu znakov, ki sledijo. Zatem dodamo prazno vrstico, prilepimo vsebino iz dokumenta iz prejšnje točke in še eno prazno vrstico. Tako sestavljen zahtevek pošljemo preko vrat 443 na strežnik storitve-ca.gov.si.
8. Čez nekaj trenutkov dobimo odgovor. Primer se nahaja v priponki Odgovor.dat.