Nästan alla moderna webbtjänster har ett så kallat API (Application Programming Interface) – ett sätt för utomstående att kommunicera med tjänsten. Det har även Skolplattformen, även om man försöker låtsas som att man inte har det, bara för att det är dåligt utformat och dokumenterat.
Vad är ett API, till att börja med?
>
Ett API är gränssnittet mellan två olika datorprogram, eller ”språket” som de talar för att kunna kommunicera. Som ett (förenklat) exempel kan vi ta kameran i en mobiltelefon. När du skriver en app där användaren ska kunna ta bilder måste din app kunna prata med kameran. Därför har kameran i telefonen ett API med definierade funktioner. Din app kan anropa kamerans API med vissa på förhand överenskomna kommandon för att åstadkomma önskad effekt. Förenklat skulle din app kunna skicka informationen ”TA BILD – SKICKA BILDEN SOM SVAR” till kameran, som då lyder anropet genom att ta en bild och skicka tillbaka den till appen.
Man kan jämföra det med vad som händer när en person behöver hjälp med att backa in sin bil i en parkeringsruta. Genom på förhand överenskomna handsignaler kan personen som står bakom bilen kommunicera med föraren hur bilen bör navigeras.
Det är genom API:n som program blir interaktiva och möjliga att kommunicera med för utomstående.
Staden vilseleder om sitt API
>
Staden hävdar att man inte har ett öppet API, och att en utredning runt införandet av ett sådant hade kostat mycket tid och pengar. Problemet med resonemanget är att Skolplattformen redan har ett öppet API. Annars hade inte Öppna Skolplattformen kunnat fungera. De utför inga avancerade intrång eller ”kommandorörelser”, utan kommunicerar helt normalt med Skolplattformens webbservrar, precis som den officiella appen gör.
Det är värt att upprepa. Om staden menar att det är ett säkerhetsproblem att andra kan använda deras API som ligger fritt tillgängligt på nätet, så är det svårt att förstå varför man inte vidtar åtgärder för att hantera detta problem, utan istället ger sig på Öppna Skolplattformen. Om staden menar att man inte har något öppet API, varför finns deras API då öppet tillgängligt över internet?
Stockholms stad påstår att deras API är sekretessbelagt och att utvecklarna av Öppna Skolplattformen därför måste ta bort den dokumentation de har publicerat, där de beskriver hur Skolplattformens API fungerar. Det är att likna vid att angripa en person som publicerat noggrann dokumentation av delarna i bilen de köpt, öppnat och tittat i. Det vore fullständigt absurt om det vore olagligt att berätta för andra vad man själv upptäckt om en tjänst man har laglig rätt att använda.
Även inför Kammarrätten framhärdar staden i att de inte kan berätta något om hur deras API fungerar. Återigen framstår det som att Skolplattformens backend är så dåligt byggt att man förlitar sig på security by obscurity. Man hoppas helt enkelt att ingen ska upptäcka de säkerhetshål som finns. Om det är sant, är det så illa att man måste ifrågasätta ifall stadens e-tjänster alls kan användas; om det är en lögn, måste man acceptera att staden ljuger för sina egna medborgare.
”Samtliga tekniska lösningar som hanterar inloggning, integrationer och dialog mot företag och medborgare måste byggas om och designas om i grunden om staden tvingas lämna ut ramverk och beskrivningar runt utveckling och framtagande av e-tjänster, appar, och integrationer mellan e-tjänster/appar och dess verksamhetssystem.””
IT-chefen på utbildningsförvaltningen till Kammarrätten, i ärendet om hemlighetsstämpling av Skolplattformens API
Därför har staden också vägrat lämna ut sin interna dokumentation av Skolplattformens API. Hade de lämnat ut den hade arbetet med Öppna Skolplattformen blivit otroligt mycket enklare. Det är inte nödvändigt – uppenbarligen – men hade minskat slöseriet med de arbetskrafter som försöker se till att grundläggande samhällsservice i det digitala samhället faktiskt fungerar.
I nästa text tar vi upp hur Stockholms stad valt att polisanmäla utvecklarna av Öppna Skolplattformen.
Du kan ta del av hela serien här: https://piratpartiet.se/skolplattformen/.