Ühekordne sisselogimine

**Ühekordne sisselogimine** (inglise keeles *single sign-on*, lühendatult **SSO**) on autentimise süsteem, mis võimaldab kasutajal sisse logida ühe ja sama identifikaatori ja parooliga mitmes seotud, kuid omaette seisvas tarkvarasüsteemis.

Tõeline ühekordne sisselogimine võimaldab kasutajal ühe korra sisse logida ja teenustele juurde pääseda ilma vajaduseta uuesti autentida.

Seda ei tohiks segi ajada kataloogi serveripõhise sisselogimisega (ingl *same sign-on*, samuti lühendatult SSO), mis üldjuhul saavutatakse LDAP-i ja serverites olevate LDAP-andmebaaside abil. Kataloogi serveripõhine sisselogimine nõuab igas rakenduses eraldi sisselogimist, kasutades sama sisselogimise informatsiooni kataloogi serverist, samas kui ühekordne sisselogimine võimaldab ühe sisselogimisega saada juurdepääsu mitmele rakendusele.

Lihtsaim versioon ühekordsest sisselogimisest on saavutatud kasutades küpsiseid üle IP-võrkude, kuid ainult juhul kui saidid jagavad ühist DNS-i emadomeeni.

Ühekordne väljalogimine (ingl *single sign-off* või *single log-out*, lühendatult SLO) on ühekordse sisselogimise vastand, mis tähendab ühest rakendusest välja logimisel samaaegselt juurdepääsu kaotamist teistes rakendustes.

## Eelised
Ühekordse sisselogimise eelised on näiteks:

* Vähendab riski kolmandate osapoolte rakendustesse autentimisel, kuna kasutajate paroole nende poolt ei salvestata ega hallata.
* Vähendab vajadust erinevate kasutajanimede ja paroolide kombinatsioonide järele.
* Vähendab samale kasutajale juurdepääsu andmiseks paroolide mitmekordset sisestamist.
* Vähendab IT-kulusid, vähendades kõnede arvu kasutajatoele seoses paroolidega.
* Lihtsustab rahvusvahelistele ja eri riikide privaatsusregulatsioonidele vastamist.
* Lihtsustab kolmandatel osapooltel tarkvara kasutusele võtmist.

## Probleemid
SSO kriitikud on kasutanud terminit vähendatud sisselogimine (ingl *reduced sign-on*, lühendatult RSO) väljendamaks SSO ebapraktilisust erineva turvatasemetega teenustele juurdepääsu tagamisel, mistõttu võib jätkuvalt vaja minna rohkem kui ühte autentimisserverit.

Kuna ühekordne sisselogimine võimaldab kohe teenustele laialdase juurdepääsu, suurendab see riski siis, kui kasutaja andmed satuvad valedesse kätesse. Seetõttu tuleks SSO-d ideaalis kombineerida tugevate autentimismeetoditega, näiteks kiipkaartide ja ühekordsete paroolidega.

Ühekordne sisselogimine võib olla probleemne tõrgete puhul autentimissüsteemides või -serverites, mispuhul need võivad muutuda kättesaadamatuks. See võib põhjustada juurdepääsu puudumise kõikidele SSO-ga ühendatud süsteemidele. Kuigi SSO-d on võimalik üles seada tõrkekindlate võimalustega, mis aitavad süsteemide tööd tõrgete puhul säilitada, võib see muuta SSO mõnel juhul ebapraktiliseks. 

Kui ühekordseks sisselogimiseks kasutatakse suhtlusvõrgustikke (nt Facebook), võivad süsteemid või veebilehed olla kättesaadamatud raamatukogudes, koolides või töökohtades, kus need sotsiaalvõrgustikud on blokeeritud. Sarnaselt võib see olla probleemiks internetitsensuuriga riikides (nt Hiina), kus kolmanda osapoole pakutud veebileht ei pruugi olla blokeeritud, kuid sisselogimisteenus on, mistõttu muutub veebileht praktikas kasutaja jaoks siiski blokeerituks.

## Turvalisus
2012. aasta märtsis tehtud uuring avastas 8 tõsist haavatavust mitmes laialdaselt kasutatud sisselogimisteenuses, nagu OpenID, Facebook ja Janrain. Teenusepakkujaid teavitati vigadest ning haavatavused parandati.

2020. aasta detsembris avastati USA föderaalsetes autentimissüsteemides vigu, mida ründajad ära kasutasid samal aastal valitsuse andmetega seotud rikkumise käigus.

Kui SSO-d hõlmav seanss on kaaperdatud, saab ründaja juurdepääsu kõigile veebilehtedele, mis sama SSO süsteemi kasutavad. See võib juhtuda näiteks juhul kui mõnel veebilehel on XSS-i haavatavus.

## Privaatsus
Kui ühekordne sisselogimine algselt Kerberose ja SAML-i baasil loodi, ei olnud võimalik valida millist isiklikku informatsiooni jagada iga lehega, mida kasutaja külastas. See polnud probleemiks juhul kui süsteem hõlmas vaid üht ettevõtet, nagu MIT, kust Kerberose tehnoloogia alguse sai. Samuti töötas see suurtes firmades, kus kõik ressursid olid firmasisesed veebilehed. Kui tehnoloogia hakkas rohkem levima, muutus see privaatsuse puudumine probleemseks. Privaatsusega seotud regulatsioonid nagu GDPR on muutnud vajalikuks uute tehnoloogiate kasutuselevõtu, mis kasutaja privaatsust paremini kaitsevad, nagu OpenID Connect. Ka näiteks MIT ja Kerberos toetavad mõlemad nüüdseks OpenID Connecti.

Paljud SSO teenusepakkujad lubavad kasutajal keelduda jagamast mõnele veebilehele vajalikke andmeid, näiteks e-posti aadresse. Seetõttu on mõnel veebilehel raske SSO-d juurutada. iOS versioonist 13 alates pakub Apple koos SSO süsteemiga Sign in with Apple võimalust, mis lubab kasutajatel iga kord kasutada sisselogimisel unikaalset e-posti aadressi, mis vähendab võimalust kasutajate andmete väärtarvitamiseks.

## Levinud kasutuslahendused

### Kerberosel põhinev

Kerberose puhul küsib esmane sisselogimine kasutajalt sisselogimise informatsiooni ja saab vastu Kerberose piletit tagava pileti (ingl *ticket-granting ticket,* lühendatult TGT). Täiendavat autentimist nõudvad rakendused, nagu meilikliendid, vikid ja versioonihaldussüsteemid, kasutavad piletit tagavat piletit tõestamaks kasutaja identiteeti meiliserverile / vikiserverile jne, ilma nõudmata kasutajalt oma sisselogimise informatsiooni uuesti sisestamist.

### Kiipkaardipõhine
Esmane sisselogimine küsib kasutajalt kiipkaardi sisetamist. Kiipkaarti kasutavad ka täiendavad tarkvararakendused, ilma et kasutajal palutaks sisselogimise informatsiooni uuesti sisestada. Kiipkaardipõhine ühekordne sisselogimine võib kasutada kiipkaardile salvestatud sertifikaate või paroole.

### Integrated Windows Authentication
Integrated Windows Authentication on termin, mis on seotud Microsofti toodetega ja viitab SPNEGO, Kerberose ja NTLMSSP autentimisprotokollidele, mis kasutavad *Security Support Provider Interface* (SSPI) funktsionaalsust. Seda terminit kasutatakse kõige sagedamini Microsoft Internet Information Servicesi ja Internet Exploreri vaheliste automaatselt autenditud ühenduste kirjeldamiseks. Platvormiülese Active Directory integratsiooni loojad on Integrated Windows Authenticationi paradigmat laiendanud Unixi (sh Maci) ja Linuxi süsteemidele.

### Security Assertion Markup Language
Security Assertion Markup Language (SAML) on XML-il põhinev meetod kasutaja turvateabe vahendamiseks SAML-i identiteedipakkuja ja SAML-i teenusepakkuja vahel. SAML 2.0 toetab W3C XML-krüptimist ja teenusepakkuja poolt pakutavaid ühekordse sisselogimise võimalusi. 

Kasutajat, kes kasutab kasutajaagenti (tavaliselt veebibrauserit), nimetatakse SAML-il põhineval ühekordses sisselogimises subjektiks. Subjekt taotleb SAML-i teenusepakkuja poolt kaitstud veebiressurssi ning teenusepakkuja, kes soovib teada subjekti identiteeti, väljastab SAML-i identiteedipakkujale subjektina autentimispäringu. Identiteedipakkuja edastab teenusepakkujale subjekti sisselogimisinformatsiooni. Teenusepakkuja usaldab identiteedipakkujalt saadud informatsiooni ning annab juurdepääsu oma teenustele ja ressurssidele.

### Mobiilseadmete kasutamine juurdepääsu tagamiseks
Kasutaja mobiilseadmeid saab kasutada, et nendega automaatselt sisse logida mitmesse süsteemi, kasutades varasemaid autentimismeetodeid, näiteks OpenID Connect ja SAML, koos X.509 sertifikaadiga, mida kasutatakse mobiilseadme tuvastamiseks juurdepääsuserveris.

## Viited