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:

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:

  1. Kunna köra docker-containers - programvaran levereras som ett antal docker-images (se ovan)
  2. 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)
  3. 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)
  4. 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>
  5. 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:

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:

  1. Kunna köra docker-containers - programvaran levereras som ett antal docker-images (se ovan)
  2. 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
  3. Sätta upp och registrera en SP i Swamid (tex https://edusign.<universitet>.se/) baserat på docker.sunet.se/edusign-sp
  4. De två docker-images kopplas ihop enligt dokumentation i  docker.sunet.se/edusign-app
  5. 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:

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:

  1. Identifiering av användare måste ske på ett sätt som är ekvivalent eller bättre än som sker på edusign.sunet.se.
  2. Användare måste tydligt informeras om att en signatur sker på ett sätt som uppfyller krav på informerat medgivande i GDPR.
  3. 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
  4. 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
  5. 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-----
  • No labels