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----- -----BEGIN CERTIFICATE----- MIICeTCCAh+gAwIBAgIUdxoxiBXUcOIk33T4TSqckwvVjaAwCgYIKoZIzj0EAwIw gYkxCzAJBgNVBAYTAlNFMRIwEAYDVQQIDAlTdG9ja2hvbG0xEjAQBgNVBAcMCVN0 b2NraG9sbTEOMAwGA1UECgwFU1VORVQxHTAbBgNVBAsMFFNVTkVUIEluZnJhc3Ry dWN0dXJlMSMwIQYDVQQDDBpjYS10ZXN0LWNtYzMtcm9vdC5zdW5ldC5zZTAeFw0y NDAxMjIxMTE4NTFaFw0zOTAxMTgxMTE4NTFaMIGJMQswCQYDVQQGEwJTRTESMBAG A1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0xDjAMBgNVBAoMBVNV TkVUMR0wGwYDVQQLDBRTVU5FVCBJbmZyYXN0cnVjdHVyZTEjMCEGA1UEAwwaY2Et dGVzdC1jbWMzLXJvb3Quc3VuZXQuc2UwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC AAS2T+PGYDzNLor+hYw2ePn1SCNHbpjnGc+d3Am1oSItuya6nnNr2rYAv2EP486r 1I43Y3+u21yor6Sdyv+pgszvo2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ BAUwAwEB/zAdBgNVHQ4EFgQUwnR5ILq7ahh3YYReWxRmGslT1McwHwYDVR0jBBgw FoAUwnR5ILq7ahh3YYReWxRmGslT1McwCgYIKoZIzj0EAwIDSAAwRQIgOEi30Vqv hurJXNM53GuedzjcZbz5WpP/Wloq6jOc5QACIQCeluP0DNTyLXYWoh/5VYUTHN4s xFJ6aB7PxLgxrb0cGA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDwTCCA2igAwIBAgIUNsjW+XsrGoIp6lW/9p7CqqZ0GnswCgYIKoZIzj0EAwIw gYkxCzAJBgNVBAYTAlNFMRIwEAYDVQQIDAlTdG9ja2hvbG0xEjAQBgNVBAcMCVN0 b2NraG9sbTEOMAwGA1UECgwFU1VORVQxHTAbBgNVBAsMFFNVTkVUIEluZnJhc3Ry dWN0dXJlMSMwIQYDVQQDDBpjYS10ZXN0LWNtYzMtcm9vdC5zdW5ldC5zZTAeFw0y NDAxMjIxMTE4NTRaFw0zOTAxMTgxMTE4NTRaMIGLMQswCQYDVQQGEwJTRTESMBAG A1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0xDjAMBgNVBAoMBVNV TkVUMR0wGwYDVQQLDBRTVU5FVCBJbmZyYXN0cnVjdHVyZTElMCMGA1UEAwwcY2Et dGVzdC1jbWMzLWlzc3Vlci5zdW5ldC5zZTBZMBMGByqGSM49AgEGCCqGSM49AwEH A0IABNQlxeiGwx4Y+47Z9YQ3lC4Gjio+0N52DxsOwmeY6+8D4pXAZjRK/9iilxyK 0YBYUDRG5EMa+Qc+WonfYSO2A7WjggGoMIIBpDAOBgNVHQ8BAf8EBAMCAYYwDwYD VR0TAQH/BAUwAwEB/zCBwgYIKwYBBQUHAQEEgbUwgbIwdgYIKwYBBQUHMAKGamh0 dHBzOi8vc2lnbmNhLXN0aGItMS5lZHVzaWduLnN1bmV0LnNlL2NhL2ZiMDEwZGZh M2U3ZGM1NWRlNjU4NjViNzdjZDRkODYyMzgxNWM2ODhjNzYzZTZlZjdhZDhmODA3 ODQxZWZmNWYwOAYIKwYBBQUHMAGGLGh0dHBzOi8vc2lnbmNhLXN0aGItMS5lZHVz aWduLnN1bmV0LnNlL29jc3AvMHwGA1UdHwR1MHMwcaBvoG2Ga2h0dHBzOi8vc2ln bmNhLXN0aGItMS5lZHVzaWduLnN1bmV0LnNlL2NybC9mYjAxMGRmYTNlN2RjNTVk ZTY1ODY1Yjc3Y2Q0ZDg2MjM4MTVjNjg4Yzc2M2U2ZWY3YWQ4ZjgwNzg0MWVmZjVm MB0GA1UdDgQWBBSE0WugiPQ6V0fx38Ve2ie6H4At5jAfBgNVHSMEGDAWgBTCdHkg urtqGHdhhF5bFGYayVPUxzAKBggqhkjOPQQDAgNHADBEAiAzBfQzlk7YxaC5TGg/ oVyPJ7TFyC5v9VPfNJiH0AjYpAIgQe6TfWtXaTaTN4r0H+x2oI766UWBvnJiKxaH hWxe4DY= -----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-----