• No results found

udaje sv´eho pˇr´ıstupov´eho ´uˇctu. Tento ´uˇcet nazvˇeme jako hlavn´ı pˇr´ıstupov´y ´uˇcet.

Nad t´ımto ´uˇctem m˚uˇze b´yt zˇr´ızeno monitorov´an´ı, kter´e dok´aˇze ovlivnit politiku pˇr´ıstupu. Monitoring lze prov´adˇet u kaˇzd´eho takov´eho ´uˇctu, kdy lze uchov´avat parametry jako ˇcas pˇr´ıstupu, poˇcet ´uspˇeˇsn´ych/ne´uspˇeˇsn´ych pokus˚u o pˇr´ıstup, z jak´e IP adresy byl pˇr´ıstup proveden atd. N´aslednˇe na z´akladˇe tˇechto informac´ı m˚uˇze b´yt provedeno vyhodnocen´ı, kter´e m˚uˇze ovlivnit politiku pˇr´ıstupu.

V pˇr´ıloze A je pˇriloˇzen ER diagram datab´aze pro uchov´av´an´ı identit uˇzivatel˚u a s nimi spojen´ych pˇr´ıstupov´ych ´uˇct˚u. Mezi hlavn´ı entity patˇr´ı entita Profile, kter´a spolu s entitou Contact uchov´av´a atributy uˇzivatele a vytv´aˇr´ı tak jeho identitu v r´amci platformy. Druhou v´yznamnou entitou je Account, kter´a spravuje hlavn´ı pˇr´ıstupov´e ´uˇcty. V t´eto entitˇe je z´akladn´ım atributem email a heslo. Uˇzivateli je na z´akladˇe jejich znalosti umoˇznˇen pˇr´ıstup k dalˇs´ım krok˚um ovˇeˇren´ı a udˇelen´ı opr´avnˇen´ı k pˇr´ıstupu. D´ale jsou zde uvedeny entity souvisej´ıc´ı se zm´ınˇenou podporou organi-zace uˇzivatel˚u do skupin ˇci pro monitorov´an´ı pokus˚u o pˇr´ıstup.

4.2 Autentizace

Autentizace je bezpeˇcnostn´ı opatˇren´ı, kter´e zajiˇst’uje ochranu pˇred falˇsov´an´ım iden-tity, kdy se subjekt vyd´av´a za nˇekoho, k´ym nen´ı. Lze rozliˇsit autentizaci osoby ˇci au-tentizaci zpr´avy. Pro potˇreby platformy se uvaˇzuje prvn´ı moˇznost. Pˇri pˇr´ıstupu k n´ı je potˇreba ovˇeˇrit proklamovanou identitu pˇristupuj´ıc´ıho uˇzivatele. Pokud ovˇeˇren´ı dopadne ve v´ysledku kladnˇe, lze konstatovat, ˇze pˇristupuj´ıc´ı uˇzivatel je t´ım, kdo ve skuteˇcnosti je. I zde m˚uˇze samozˇrejmˇe nastat situace, kdy se podaˇr´ı nˇejak´emu

´

utoˇcn´ıkovi ukr´ast identitu skuteˇcn´eho uˇzivatele.

Vzhledem k z´avˇeru z kapitoly 3.3, kde bylo konstatov´ano, ˇze komponenta posky-tovatele identit m˚uˇze b´yt vytvoˇrena jako webov´a aplikace, se nab´ız´ı n´asleduj´ıc´ı postup. Autentizace zapoˇcne ve formul´aˇri na webov´e str´ance, na kterou uˇzivatel pˇristoupil. Po vyplnˇen´ı tohoto formul´aˇre, jehoˇz obsahem je pole pro email a heslo, coˇz jsou mimo jin´e kl´ıˇcov´e identifikaˇcn´ı znaky hlavn´ıho pˇr´ıstupov´eho ´uˇctu, se for-mul´aˇr odeˇsle na server. Vyhodnocen´ı spoˇc´ıv´a ve vyhled´an´ı odpov´ıdaj´ıc´ıho hlavn´ıho pˇr´ıstupov´eho ´uˇctu a n´aslednˇe ovˇeˇren´ı spr´avnosti zadan´eho hesla. Pokud operace probˇehne kladnˇe, tedy je nalezen pˇr´ısluˇsn´y hlavn´ı pˇr´ıstupov´y ´uˇcet a bylo zad´ano spr´avn´e heslo, pak je uˇzivatel pˇresmˇerov´an na dalˇs´ı krok k z´ısk´an´ı pˇr´ıstupu do plat-formy, a to autorizaci. Ta je pops´ana v n´asleduj´ıc´ı kapitole.

4.3 Autorizace

Autorizace je proces z´ısk´an´ı opr´avnˇen´ı k proveden´ı operace ˇci pˇr´ıstupu ke zdroj˚um.

Tak´e se tak oznaˇcuje ono vlastn´ı opr´avnˇen´ı, at’ je ve formˇe napˇr. n´ahodn´eho ˇretˇezce urˇcit´e d´elky, ˇci logick´e hodnoty. Zpravidla se pˇred autorizac´ı jeˇstˇe prov´ad´ı proces ovˇeˇren´ı identity uˇzivatele, kter´y ˇz´ad´a o autorizaci. T´ım je myˇslena autentizace.

4.3.1 OAuth 2.0

V okamˇziku, kdy je uˇzivatel autentizov´an, pˇrich´az´ı na ˇradu vytvoˇren´ı opr´avnˇen´ı, kter´e mu zajist´ı n´asledn´y pˇr´ıstup ke zdroj˚um platformy. To lze uˇcinit pouˇzit´ım protokolu OAuth 2.0, coˇz je modern´ı autorizaˇcn´ı protokol, kter´y se stal de facto standardem pro zabezpeˇcen´ı webov´ych sluˇzeb (viz [11]). Jeho hlavn´ı v´yhoda tkv´ı v tom, ˇze uˇzivatel m˚uˇze poskytnout klientsk´e aplikaci pˇr´ıstup ke zdroj˚um posky-tovatele, aniˇz by t´e aplikaci musel vyzradit sv´e pˇr´ıstupov´e ´udaje, a t´ım ji poskytl prakticky neomezen´y pˇr´ıstup k jeho ´uˇctu. D´ale umoˇzˇnuje vymezit pravomoci jed-notliv´ych klientsk´ych aplikac´ı a sledovat vyuˇz´ıv´an´ı poskytnut´ych privilegi´ı. Klientsk´a aplikace se m˚uˇze autentizovat jak sama za sebe, tak i za jej´ıho uˇzivatele, kter´y k tomu vyd´a explicitn´ı souhlas. D´ıky tomu lze, bez rizika naruˇsen´ı ochrany osobn´ıch ´udaj˚u, umoˇznit pˇr´ıstup k chr´anˇen´ym dat˚um uˇzivatel˚u, ke kter´ym jim d´a jejich uˇzivatel explicitn´ı souhlas. Dalˇs´ı v´yhoda spoˇc´ıv´a v jeho snadn´e implementaci.

Protokol OAuth 2.0 specifikuje 4 z´akladn´ı role (viz [11]). Tˇemi jsou:

• majitel zdroje, kter´y ud´ıl´ı pˇr´ıstup ke zdroji (typicky uˇzivatel),

• poskytovatel zdroje, coˇz je server, na kter´em jsou zdroje uloˇzeny a ze kter´eho jsou pak n´aslednˇe z´ısk´av´any,

• klient, coˇz je aplikace, prostˇrednictv´ım kter´e uˇzivatel zadal poˇzadavek vedouc´ı k z´ısk´an´ı nˇejak´eho chr´anˇen´eho zdroje,

• autorizaˇcn´ı server, kter´y vyd´av´a pˇr´ıstupov´e k´ody klient˚um po ´uspˇeˇsn´e au-tentizaci a autorizaci.

D´ale jsou definov´any 4 typy udˇelen´ı autorizaˇcn´ıho opr´avnˇen´ı (viz [11]). Jedn´a se vlastnˇe o postupy, nebo o proces, jak vydat samotn´e opr´avnˇen´ı. Jsou jimi:

• povˇeˇren´ı klienta, kter´e se pouˇz´ıv´a pˇrev´aˇznˇe v situaci, kdy klient je z´aroveˇn majitelem zdroje; u tohoto opr´avnˇen´ı v r´amci webov´ych SPA vznik´a probl´em prozrazen´ı pouˇzit´eho identifik´atoru klienta a hesla pˇri autorizaˇcn´ım poˇzadavku klienta, protoˇze zdrojov´y k´od klienta psan´y v jazyce JavaScript je ˇciteln´y bˇeˇzn´emu uˇzivateli,

• povˇeˇren´ı uˇzivatele je nadstavbou pˇredchoz´ıho, protoˇze umoˇzˇnuje zadat iden-tifik´ator uˇzivatele a jeho hesla aˇz za bˇehu programu, tud´ıˇz zde nehroz´ı nebezpeˇc´ı prozrazen´ı tˇechto ´udaj˚u z pohledu napsan´eho k´odu aplikace jako v pˇredchoz´ım pˇr´ıpadˇe,

• autorizaˇcn´ı k´od je opr´avnˇen´ı nejv´ıce pouˇz´ıvan´e ve spojen´ı s t´ımto pro-tokolem, jelikoˇz postup jeho z´ısk´an´ı spoˇc´ıv´a v nˇekolika kroc´ıch nav´ıc oproti pˇredchoz´ım typ˚um a jelikoˇz se jedn´a v tomto smyslu o nejuniverz´alnˇejˇs´ı ˇreˇsen´ı ze zde zm´ınˇen´ych pro autorizace pˇr´ıstupu k aplikac´ım tˇret´ıch stran,

• implicitn´ı povˇeˇren´ı, kter´e vych´az´ı z autorizaˇcn´ıho k´odu, ale je zjednoduˇseno t´ım, ˇze nevyˇzaduje ukl´ad´an´ı identifik´atoru klienta a jeho hesla; vhodn´e pro webov´e ˇci jin´e aplikace, kde jsou volnˇe dostupn´e zdrojov´e k´ody ve kter´ych by byly ony ´udaje zjistiteln´e.

4.3.2 Pouˇ zit´ e zp˚ usoby autorizace

S protokolem OAuth 2.0 souvis´ı jeˇstˇe jeden pojem, kter´y je nutn´e v r´amci t´eto pr´ace zav´est. T´ım pojmem je ´uˇcelov´y pˇr´ıstupov´y ´uˇcet. Tento typ je druh´ym typem pˇr´ıstupov´eho ´uˇctu v r´amci platformy vedle jiˇz dˇr´ıve definovan´eho hlavn´ıho pˇr´ıstupov´eho ´uˇctu. Smyslem tohoto druh´eho ´uˇctu je umoˇznit pˇr´ıstup aplikaci ke sluˇzb´am aplikaˇcn´ıho serveru i za pomoci jin´ych pˇr´ıstupov´ych ´udaj˚u, neˇz kter´e pouˇz´ıv´a hlavn´ı pˇr´ıstupov´y ´uˇcet. To je vhodn´e zejm´ena v situaci, kdy je poˇzadov´ano omezen´ı opr´avnˇen´ı ˇci v´yhradnˇe ´uˇcelovˇe zˇr´ızen´y pˇr´ıstup pro konkr´etn´ı aplikaci pod identitou uˇzivatele. Identita uˇzivatele je pouze jedna. Ale moˇznost´ı pˇr´ıstupu m˚uˇze b´yt v´ıce.

Toho je dosaˇzeno pr´avˇe kv˚uli zaveden´ı ´uˇcelov´eho pˇr´ıstupov´eho ´uˇctu, jelikoˇz poˇcet tˇechto ´uˇct˚u v r´amci jedn´e identity uˇzivatele nen´ı omezen. Tento pˇr´ıstup je demon-strovan´y na n´asleduj´ıc´ım obr´azku.

Obr´azek 4.1: OAuth – postup Povˇeˇren´ı uˇzivatele

Na obr´azku 4.1 je zn´azornˇen postup z´ısk´an´ı pˇr´ıstupov´eho k´odu pomoc´ı postupu povˇeˇren´ı uˇzivatele. Klient je v tomto pˇr´ıpadˇe aplikace, kter´a potˇrebuje autorizovat sv˚uj pˇr´ıstup, aby mohla komunikovat s aplikaˇcn´ım serverem. Nejprve proto odeˇsle na autorizaˇcn´ı server (OAuth server) autorizaˇcn´ı poˇzadavek. Jeho souˇc´ast´ı jsou ´udaje pˇr´ısluˇsn´e ´uˇcelov´emu pˇr´ıstupov´emu ´uˇctu, kter´y je registrov´an pro pouˇzit´ı s t´ımto klientem. Autorizaˇcn´ı server odpov´ı na poˇzadavek pˇr´ıstupov´ym k´odem, samozˇrejmˇe pro platn´a data ´uˇcelov´eho pˇr´ıstupov´eho ´uˇctu zaslan´a v poˇzadavku, kter´y pot´e klient pouˇz´ıv´a k pˇr´ıstupu na aplikaˇcn´ı server.

Na n´asleduj´ıc´ım obr´azku 4.2 je zn´azornˇen postup z´ısk´an´ı pˇr´ıstupov´eho k´odu po-moc´ı postupu autorizaˇcn´ıho k´odu. Na prvn´ı pohled je vidˇet, ˇze se jedn´a o sloˇzitˇejˇs´ı proces, jelikoˇz se tam prov´ad´ı v´ıce poˇzadavk˚u a odpovˇed´ı. Klient nejprve odeˇsle autorizaˇcn´ı poˇzadavek na autorizaˇcn´ı server. Ten jeho poˇzadavek pˇresmˇeruje d´ale na autentizaˇcn´ı server, protoˇze dan´y uˇzivatel nen´ı autentizov´an. Z principu funkce

samotn´eho autorizaˇcn´ıho serveru, kdy ten neprov´ad´ı ovˇeˇren´ı identity, mus´ı poˇzadavek pˇredat d´ale. Autentizaˇcn´ı server poskytovatele identit je d˚uvˇeryhodnou stranou, kter´e uˇzivatel sdˇel´ı sv´e ´udaje hlavn´ıho pˇr´ıstupov´eho ´uˇctu. Pokud ovˇeˇren´ı probˇehne korektnˇe a uˇzivatel je t´ımto autentizov´an, pˇrejde se k dalˇs´ımu kroku, kter´ym je zobrazen´ı ˇz´adosti o potvrzen´ı pˇr´ıstupu. Pokud uˇzivatel vyj´adˇr´ı souhlas, povol´ı t´ım pˇr´ıstup klienta k jeho dat˚um prostˇrednictv´ım aplikaˇcn´ıho serveru. Klientovi se pak pˇres autorizaˇcn´ı server vr´at´ı zpˇet autorizaˇcn´ı k´od. Tento k´od slouˇz´ı jednak jako potvrzen´ı, ˇze uˇzivatel povolil klientovi pˇr´ıstup, ale tak´e k v´ymˇenˇe tohoto k´odu za k´od pˇr´ıstupov´y. Pot´e n´asleduje v´ymˇena autorizaˇcn´ıho k´odu za pˇr´ıstupov´y k´od mezi klientem a autorizaˇcn´ım serverem. Po jej´ım ´uspˇeˇsn´em dokonˇcen´ı m´a jiˇz klient validn´ı pˇr´ıstupov´y k´od pro pˇr´ıstup na aplikaˇcn´ı server.

Obr´azek 4.2: OAuth – postup Autorizaˇcn´ım k´odem

Z pˇredchoz´ıch dvou obr´azk˚u je zˇretelnˇe poznat, v ˇcem se jednotliv´e pˇr´ıstupy liˇs´ı a proˇc jsou pro dan´e situace vhodn´e. V r´amci vytv´aˇren´e platformy je prvn´ı postup (povˇeˇren´ı uˇzivatele) vhodn´e pouˇz´ıt do komponent importu dat a prov´adˇen´ı v´ypoˇct˚u. A to vzhledem k tomu, ˇze tyto aplikace jsou navrˇzeny jako termin´alov´e a nemaj´ı pˇr´ıstup ke GUI autentizaˇcn´ıho a autorizaˇcn´ıho serveru prostˇrednictv´ım webov´eho prohl´ıˇzeˇce. Na druh´e stranˇe pro komponentu editor je pouˇziteln´y druh´y postup (autorizaˇcn´ı k´od). Je nutn´e si na tomto m´ıstˇe uvˇedomit, ˇze i pˇri pouˇzit´ı rozd´ıln´ych postup˚u autorizace je vˇse zaloˇzeno na spoleˇcn´em z´akladu a jedn´a se st´ale o jeden protokol, kter´y nab´ız´ı takov´eto moˇznosti. A pr´avˇe to je moˇzn´e vyzdvihnout jako jeho pˇrednost v˚uˇci jin´ym ˇreˇsen´ım.

Related documents