FS-signering er en tjeneste for å signere PDF-dokumenter med et gyldig Unit-sertifikat som godkjennes av Adobe.
Generelt
Tjenesten er basert på smartkort som er en ganske treig teknologi slik at tjenesten er asynkron fordi det tar nesten 1 sekund å utføre en signering og det kan derfor lett bli kø for å få signert dokumenter.
Tjenesten har prioriteringsmekanismer som skal sørge for at interaktive applikasjoner blir prioritert over batch jobber. Hvilken prioritet en klient skal benytte må avtales. Det må også avtales hvilken appkode som skal benyttes evt. Appkode knyttes til en profil som beskriver hvordan signaturen skal plasseres i dokumentet og hvordan den skal se ut.
Grensesnitt
Tjenesten består av 3 json-endpoints
POST /signering/add
POST /signering/check
POST /signering/delete
POST /signering/search
GET /signering/get.pdf?dokid=<>
Add
Add mottar følgende json:
{
"appkode":"HelloTest",
"instnr":"99",
"filnavn":"HelloTest",
"bruker":"HelloUser",
"priority":"now",
"tsakrav":"true",
"dokument" : "..Base64 encoded pdf dokument.."
}
Appkode: den profilen som skal signeres, kan være tom da får man default profil.
Filnavn: denne verdien lagres og returnes med dokumentet i check dersom dokumentet er ferdig.
instnr: Institusjonsnummer som dokumentet gjelder
Bruker: denne verdien lagres og returnes med dokumentet i check dersom dokumentet er ferdig.
Priority: tekstfelt som beskriver prioritet. Denne må avtales med forvaltning/drift når man tar i bruk tjenesten.
Tsakrav: om det skal legges inn tidspunkt fra time service authourity (difi.no) i vårt tilfelle. PDF får warnings dersom denne ikke settes til true.
Dokument: Base64 encoded pdf dokument.
Responsen er slik:
{
"dokid":"cb9c87af-cc09-4c6a-ab0f-9463940e6f2f",
}
konummer er hvilket nummer jobben er i køen.
eta er estimert tid til jobben er ferdig.
Check
Check request:
{
"dokid" : "2eda9658-1756-46f4-872a-aca5365f1715"
Ønsket utvidelse med: {
"appkode": null
"instnr": null
"bruker": null
"APPDOKREF": null
}
}
Dokid finner man i responsen fra add eller search.
Response:
{ "dokid": "6ea65232-3f4b-4c27-b779-8316e9f578a8", "appkode": "HelloTest", "instnr": "99", "bruker": "HelloUser", "filnavn": "HelloTest", "signedDokument": "... Base64 pdf dokument ...", "feilmelding": null, "md5": "a69439e34cfd85716a283966c47fa7f6" }
delete
Request:
{
"dokid" : "2eda9658-1756-46f4-872a-aca5365f1715"
}
Dokid finner man i responsen fra add eller search.
Respons:
{ "result": "true" }
search
Request:
{
"appkode" : "HelloTest",
"instnr" : "99",
"bruker":"HelloUser"
}
Response:
med dokumenter:
{ "result": [ "f8a16da4-8ddb-4eef-840d-6ab141925538", "2b398d58-0561-4f06-ae11-176381f4582b" ] }
Dokumentene kan også være dokumenter som har feilet, Dvs at at check vil gi en response med feilmelding og tom signeddokument element. Result er en tabell med dokid tilhørende brukeren for aktuell applikasjon og institusjon som er ferdig behandlet og ikke slettet ennå.
Ingen dokumenter:
{
"result": []
}
Get.pdf
Metoden er en get operasjon som returnerer contenttype: «application/pdf» dvs at browseren åpner pdf dokumentet dersom den kan. Parameter dokid=<uuid>. Metoden er først og fremst laget for utvikling/testformål da ingen sluttbrukere på noen måte skal ha tilgang til grensesnittet i tjenesten.
Lagring
Signerte dokumenter blir liggende i 1-6mnd dette punktet er ikke avgjort ennå.
Testapplikasjon
På https://vib-utv.uio.no/signing/... Kjører applikasjonen slik at utviklere kan kjøre mot den. Vedlagt ligger vibutvssl.jks som er sertifikatet for ssl mot maskinen.
Keystore ved å definere følgende 2 parametere til java:
-Djavax.net.ssl.trustStrore=vibutvssl.jks
-Djavax.net.ssl.trustStorePassword=changeit
Det er også satt opp en web applikasjon som benytter javascript til å lage requester og behandle responsen, eksempelkode. Url: https://vib-utv.uio.no/testsign/form/. Testapplikasjonen kan brukes til å lage json request ved at du fyller inn alle feltene med dine verdier så får man ut requesten.
Testapplikasjonen kan også brukes til å se på signerte dokumenter som er sendt til signering på vib-utv.uio.no, du må da legge inn uuid for oppdraget velge check/open.
https://bitbucket.org/unit-norge-team/dokumentsignering/src/master/