Teknisk Dokumentation
Innehållsförteckning
Dokumentation för version 1.0 (äldre version)
Om man vill köra en egen instans av edusign.sunet.se krävs en del programvara som levereras som docker-containers:
- https://github.com/SUNET/docker-sign-app - detta är programvaran som körs edusign.sunet.se
- Färdigbyggd image: docker.sunet.se/upload-sign-app:1.0.4
- https://github.com/SUNET/docker-shibsp-ajp - detta är en komponent som kopplar edusign mot Swamid..
- Färdigbyggd image: docker.sunet.se/shibsp-ajp:latest
Detta krävs för att sätta upp en egen instans av edusign 1.0
Såhär ser en installation av edusign 1.0 ut:
För att köra en egen instans av samma programvara som edusign.sunet.se kör krävs följande:
- Kunna köra docker-containers - programvaran levereras som ett antal docker-images (se ovan)
- Konfigurera och sätta upp en instans av docker.sunet.se/upload-sign-app:<version> (dokumentation i README-filen på https://github.com/SUNET/docker-sign-app)
- Sätta upp och registrera en SP i Swamid (tex https://edusign.<universitet>.se/) tex genom att köra en instans av docker.sunet.se/shibsp-ajp:latest (baserad på shibboleth)
- Koppla SPn (som förslagsvis kör docker.sunet.se/shibsp-ajp:latest eller motsvarande) till en instans av docker.sunet.se/upload-sign-app:<version>
- Koppla ihop instansen med signeringsinfrastrukturen. Detta steg kräver en registrering av instansen i en intern behörighetskontrollfunktion - kontakta Sunet för detaljer!
För närvarande är den senaste versionen av upload-sign-app 1.0.5 men kontrollera med dokumentationen för vad som är aktuellt.
Dokumentation för version 2.0 (nuvarande version)
Här finner du programvaran vi kör i dagsläget:
- https://github.com/SUNET/docker-edusign-app
- Färdigbyggd image: docker.sunet.se/edusign-sp:stable samt docker.sunet.se/edusign-app:stable
Inkluderat i denna version finns ett API tillgängligt som kan användas för att integrera med egna applikationer. Länk till dokumentation nedan. Det är inte nödvändigt att uppgradera från 1.0 till 2.0 - version 1.0 kommer vi underhålla med kritiska buggfixar fram till och med 2022.
Detta krävs för att sätta upp en egen instans av 2.0
Såhär ser en installation av edusign 2.0 ut:
För att köra en egen instans av samma programvara som edusign.sunet.se kör krävs följande:
- Kunna köra docker-containers - programvaran levereras som ett antal docker-images (se ovan)
- Konfigurera och sätta upp en instans av docker.sunet.se/edusign-sp:<version> samt docker.sunet.se/edusign-app som båda byggs och dokumenteras från detta repo: https://github.com/SUNET/docker-edusign-app
- Sätta upp och registrera en SP i Swamid (tex https://edusign.<universitet>.se/) baserat på docker.sunet.se/edusign-sp
- De två docker-images kopplas ihop enligt dokumentation i docker.sunet.se/edusign-app
- Koppla ihop instansen med signeringsinfrastrukturen och med API-servern. Detta steg kräver en registrering av instansen i en intern behörighetskontrollfunktion - kontakta Sunet för detaljer!
Specifikationer
Specifikationer för underskriftstjänst finns på Sweden Connect under följande länk https://docs.swedenconnect.se/technical-framework/.
De dokument som är relevanta är:
- DSS Extension for Federated Central Signing Services
- Certificate Profile for Certificates Issued by Central Signing Services
- Implementation Profile for using OASIS DSS in Central Signing Services
Dessa specifikationer är baserade på Digital Signature Service Core Protocols, Elements, and Bindings Version 1.0 (https://docs.oasis-open.org/dss/v1.0/oasis-dss-core-spec-v1.0-os.html)
Utöver dessa specifikationer följer underskriftstjänsten de normativa specifikationerna för fristående underskriftstjänst från Myndigheten för digital förvaltning DIGG. Version 1.3 finns att tillgå på: https://www.elegnamnden.se/eunderskrift/levereraeunderskrift/bligodkandleverantoravfristaendeeunderskriftstjanst.4.4498694515fe27cdbcf154.html.
API-dokumentation
Länk till dokumentation av REST-api:et nedan
Se även nedan krav som måste uppfyllas av alla som integrerar med API:et i produktion.
Krav på en tjänst som integreras med eduSign API
För att en tjänst ska få integreras direkt med eduSign API måste den uppfylla samma krav på tydlighet, säkerhet mm som den applikation som används på edusign.sunet.se. Integration direkt med API:et kräver därför att en tjänst genomgår en granskning av Sunet i syfte att kontrollera att den uppfyller följande krav:
- Identifiering av användare måste ske på ett sätt som är ekvivalent eller bättre än som sker på edusign.sunet.se.
- Användare måste tydligt informeras om att en signatur sker på ett sätt som uppfyller krav på informerat medgivande i GDPR.
- Tjänsten måste hantera inloggningsuppgifter till API:et på ett sätt som gör att endast den tjänsten har möjlighet att för användarens räkning begära en signatur
- Tjänsten måste tillse att endast de signaturer som användaren avser att genomföra kan begäras av signaturtjänst och API:er
- Tjänste måste tydligt visa upp resultatet av en signatur för användaren.
Från och med införandet av edusign 2.0 och edusign API gäller detta även för de som väljer att köra egna instanser om det finns ett krav/önskemål på att kunna signera via både den egna instansen och edusign.sunet.se.
eduSign Trust Anchors
Följande certifikat används av eduSIGN som trust anchors. Genom att lägga till dessa som trusted certs i Adobe visas alla signaturer från eduSIGN som giltiga.
eduSign Signer
-----BEGIN CERTIFICATE----- MIIFxDCCA6ygAwIBAgIBATANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJTRTEO MAwGA1UEChMFU3VuZXQxEDAOBgNVBAsTB2VkdVNpZ24xFTATBgNVBAUTDFNFMjAy MTAwNTIwODE1MDMGA1UEAxMsU1VORVQgLSBlZHVTaWduIFJvb3QgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkwHhcNMTkwNTAxMjIzNDQ3WhcNMzUwNTAxMjIzNDQ3WjB9 MQswCQYDVQQGEwJTRTEOMAwGA1UEChMFU3VuZXQxEDAOBgNVBAsTB2VkdVNpZ24x FTATBgNVBAUTDFNFMjAyMTAwNTIwODE1MDMGA1UEAxMsU1VORVQgLSBlZHVTaWdu IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA A4ICDwAwggIKAoICAQCMfRKotjl2K6FkVGm3jOOD5yuXicbcphdVzASFSx7KwXqA oxLzY/lR5ZFzabud06Fxkp/TnQIlMgMHN9/iQUQL0XsRYQuUc+SCYEZFGwxYCTd7 jSoDc1vas/bcmW6OVbhDvV5LMwKW/yaDdc5+OTUcw6aesaGoFYvt2r+5MOro/M4U +W84QWlb4gAoM/bnFUG4vQxkwMhrEYNRHEh2FhRwDP34RxtwXPGlIFx6w2zQvEBC ijpuY1XOK7rEMGH9B/v0QErj5NH1YaNx/x3g/D37qwipCeFKYodTvrNjfmWqJIUN 1bkWSJwcIV8VnT8XF0KVlVhuZEEff73BlIlP3eQFURmhpr5+gOkD1+kdYX77f2m9 Qqx/Lqh7NAfJHMC2vHuzICetRb6TzlaF/N6+C5KFJ0MRwBkjSrIqUaaIhoLzMuIL D/GuSgT8fXdgJjCkJfiSgMLFk6PxdUn5i4qeazIsITOaFdv4DQ7kywTFaMAq4lYu Ldx0MvKnYRFuGq7sSHTrOBj6nTwIhUx0WnIOlClyGvbhsAvaLSdDfWoPsw6jxlFa g4mCAIzuIY9pKkZUnLRANQ7oA89B74DoPgUEBHUYm9GN449u9ZQnrRID3uiIcMln 8bWEtsljNOW2TTDpRQwvXdaMfrafKPUj360VbaFwlx13v9OIVZpIu/h36ZHe5wID AQABo08wTTALBgNVHQ8EBAMCAYYwHQYDVR0OBBYEFEK+Ov0Iz1mnSjG0IdRdFkjS deEbMBEGA1UdIAQKMAgwBgYEVR0gADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB CwUAA4ICAQANOVYuymlsriyeD58rhMcRehS6L2cHrmD8prG1yzIf1mBNeTul/Be3 y16euzPXpE4eI3eaMfbyMfIHUV0rwkHaPgEItTRb8fFYIUYtR+yCjf8bme90z5re KyapwNbgTFTaKsxsexjTvtbwSe/dz0AwFZvx/vlNumckgj9obaaym1jKylH/lg3b fijD9XsNvmqyhU8HQPrObT6DqHoYtYWiG43pURdNjqiYYMobcLctE5GP709pTT1X DnlYV2iW/6ueHDZYVHNxhjBXDzMOMNwrIKFOq7aaH4hwAnFu8A2lU5D4whMNFCdm /PSYx5pPmC/OBno0kk1PYwI9rZXbiREjG75RmEA7Z9cvmORc3K+x0QK/rF/ddfeG 8u+8rDi1ustmllaTDdW6vOk4cYH9jn24wWxUpHqPkXJbJGQusqkj8p1uxkWev2he kkOynzLXcs44bK9AhepHJKD2ptUVmMZT15LYd1Ck2Ofo1KvBJv3ZyEFvlooDCYwh wuZEFWcBdHowajQDQK8wxVG5ILBSQn6cO1bdrQnVbTWCoz/pJFUXSzXrHfTa3rWi 5mvB1d7WLC5YHlU1Jf0nNUXlWQyOol3SKnuGPIJ32mu0UR/nBfijQzTfJDRLQRGR belulVBTgfLslOCQfpgekQYJV3C24YXUoY/LXSX5j19q/BBCV+6xcA== -----END CERTIFICATE-----
eduSign Validator
-----BEGIN CERTIFICATE----- MIICvDCCAh+gAwIBAgIQfRlgQXEBnsGZ2uhTTMWMOjAKBggqhkjOPQQDBDB/MQswCQYDVQQGEwJT RTESMBAGA1UEBxMJU3RvY2tob2xtMQ4wDAYDVQQKEwVTVU5FVDEQMA4GA1UECxMHZWR1U0lHTjEd MBsGA1UEAxMUZWR1U0lHTiBWYWxpZGF0b3IgRzExGzAZBgkqhkiG9w0BCQEWDG5vY0BzdW5ldC5z ZTAgFw0yMTAxMTgyMDQzMDFaGA8yMDcxMDExODIwNTgwMVowfzELMAkGA1UEBhMCU0UxEjAQBgNV BAcTCVN0b2NraG9sbTEOMAwGA1UEChMFU1VORVQxEDAOBgNVBAsTB2VkdVNJR04xHTAbBgNVBAMT FGVkdVNJR04gVmFsaWRhdG9yIEcxMRswGQYJKoZIhvcNAQkBFgxub2NAc3VuZXQuc2UwgZswEAYH KoZIzj0CAQYFK4EEACMDgYYABABxY3x/NIRQ99+DnbpGVGEK5e9wYDMCu+jY4RgYOkKxUGUSbZuH HpiZJrod086k7sYhEO6kGzYIt5RU2Dc20lN5RAHNYhOIaYGPNFdRz46anlGf4v0LC/Smi9ms/5pN e3NbKqJbAwH38GIgcQ2slZMzzh5Zt66lU+Futu0JL4mSwaO0O6M4MDYwDAYDVR0TAQH/BAIwADAO BgNVHQ8BAf8EBAMCBsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwCgYIKoZIzj0EAwQDgYoAMIGG AkFGQZlkggoP7+weGxfxHn2LkPFBpZ4SxSqM+5VbT3EDJrwvn6HNTWK66Z2fPXXu12l0jJB+iQOa ADOV61I1Sx3y7wJBCaoEftT7ldpef1n0FCuzRZjwFSOiWSomVRtm9pnCLYSpqUcgqnYC4E0+YHZr 8VgLbxDu4cBQJmE9MKNNexA+nMI= -----END CERTIFICATE-----