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å.
Felles studentsystem