MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Knihovna pro pˇrístup k federacím identit BAKALÁRSKÁˇ PRÁCE Marcel Poul Brno, 2011 Prohlášení Prohlašuji, že tato bakaláˇrskápráce je mým p ˚uvodnímautorským dílem, které jsem vypracoval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování používal nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Marcel Poul Vedoucí práce: RNDr. Daniel Kouˇril iii Podˇekování Tímto dˇekujivedoucímu mé bakaláˇrsképráce RNDr. Danielu Kouˇriloviza cenné rady a ˇcas,který mi vˇenovalpˇriˇrešenídané problematiky. v Shrnutí Tato práce se vˇenujenávrhu knihovny pro pˇrístupk federacím identit a její implementaci pomocí jakyka C. V práci je pˇredstavenprincip federací iden- tit a popsán návrh a implementace knihovny. vii Klíˇcováslova Federace identit, poskytovatel služeb, poskytovatel identit, SAML, Shibbo- leth ix Obsah 1 Úvod ................................... 3 2 Federace identit ............................. 5 2.1 Struktura federací ......................... 5 2.2 Security Assertion Markup Language (SAML) . 7 2.3 Shibboleth ............................. 7 2.4 Federace eduID.cz ......................... 8 2.5 SWITCHaai ............................ 9 2.6 eduroam .............................. 9 2.7 OpenID ............................... 10 2.8 MojeID ............................... 11 3 Návrh knihovny pro pˇrístupk federacím identit . 13 3.1 Analýza proces ˚upˇripˇrístupuk federacím identit . 13 3.2 Požadavky na ˇrešení ....................... 16 3.2.1 Funkcionalita . 16 3.2.2 Vlastnosti knihovny . 16 3.2.3 Rozhraní pro programování aplikací (API) . 17 3.3 Konfigurace knihovny ...................... 17 4 Implementace knihovny ........................ 19 4.1 Datové struktury pro uchování informací . 19 4.2 Knihovna libcurl ......................... 21 4.3 API knihovny ........................... 21 4.3.1 Inicializace knihovny . 22 4.3.2 Pˇrístupk SP . 23 4.3.3 Autentizace uživatele bez pˇrístupuk SP . 23 4.3.4 Získání certifikátu veˇrejnéhoklíˇce . 23 4.3.5 Ukonˇcenípráce s knihovnou . 23 4.4 Konfiguraˇcnísoubor ....................... 24 4.4.1 Formát konfiguraˇcníhosouboru . 24 5 Použití navrhované knihovny .................... 27 5.1 Definice struktur a inicializace knihovny . 27 5.2 Demonstrace funkcionalit knihovny . 28 5.3 Chybové hlášení a ukonˇcenípráce s knihovnou . 29 6 Závˇer ................................... 31 A Obsah pˇriloženéhoCD ........................ 35 1 1 Úvod Poˇcítaˇcovíuživatelé dnes velmi ˇcastovyužívají služby dostupné on-line. Potˇrebujíje napˇríkladjako zdroje informací pˇristudiu nebo zamˇestnání. Aby mˇelike službˇepˇrístupjen žádoucí uživatelé, využívají aplikace bez- peˇcnostnímechanismy zajišt’ující jejich autentizaci a autorizaci. O každém z nich také spravují sadu informací, které urˇcujíuživatelovu identitu. Správu uživatel ˚utémˇeˇrvždy obstarává každá služba zvlášt’. Tento pro- ces obnáší bezpeˇcnostnírizika a odpovˇednost za svˇeˇrenéinformace. Z eko- nomického hlediska se jedná o proces nároˇcný,nebot’ je tˇrebazakoupit od- povídající hardware a software. Je nutné také zamˇestnatadministrátory, kteˇríse postarají o jejich obsluhu. Duplicitní správa identit je tedy z po- hledu poskytovatel ˚uslužeb v mnoha ohledech neefektivní. Aplikace pˇriautentizaci vyžadují uživatelské autentizaˇcníchúdaje. Není výjimkou, že si uživatelé své pˇrihlašovacíúdaje ukládají a dostateˇcnˇene- chrání. Napˇríkladhesla si píší na kousek papíru, který mají nalepený na viditelném místˇeu svého poˇcítaˇce.V tom pˇrípadˇeusnadˇnujímožným útoˇc- ník ˚umzískat autentizaˇcníinformace. Uživatelé, kteˇrípˇristupujík mnoha službám, jsou nuceni spravovat nˇe- kolik tajných informací. To je nepohodlné a m ˚užeto také vést k situaci, kdy uživatelé používají stejná hesla pro pˇrístupk r ˚uznýmslužbám, aby si ulehˇcilijejich zapamatování. Tím vystavují riziku kompromitace nezávislé služby. Ty spolu nespolupracují, proto ani nemají možnost navzájem si pˇre- dat informaci, že heslo nˇejakéhouživatele bylo vyzrazeno. Z pohledu bezpeˇcnostia uživatelského komfortu tedy není popisovaný mechanismus správy uživatelských identit optimální. Nˇekterézásadní ne- dostatky zmínˇenéhoschématu ˇreší federace identit (identity federation).[6] Model federativních mechanism ˚umá mnoho výhod oproti klasickému pˇrístupu,kdy je správa uživatel ˚uˇrešena každou aplikací zvlášt’. Z pohledu uživatele je pˇríjemné,že autentizace probíhá vždy u jeho domovské insti- tuce pomocí jediných autentizaˇcníchúdaj ˚u,které jsou ˇcastotvoˇrenykom- binací jméno – heslo. Odpadá nutnost pamatovat si nˇekolikpˇrihlašova- cích údaj ˚upro pˇrístupk r ˚uznýmslužbám, tím je dosaženo vyššího pohodlí a efektivity pˇrístupuke službám. D ˚uležitouvlastností ˇrízenípˇrístupuve federacích je Single sign-on (SSO). Ta uživateli zaruˇcuje,že se v pr ˚ubˇehusezení autentizuje pouze jednou. Poté má pˇrístupke všem službám v dané federaci. Ukazuje se však, že SSO s je- diným heslem je slabým místem federací. Nedovoluje napˇríkladzavést více „úrovní bezpeˇcnosti“.Pˇreszmínˇenáomezení je SSO žádoucí z pohledu uži- 3 1. ÚVOD vatele i bezpeˇcnostisystému. Cílem této bakaláˇrsképráce je navrhnout a implementovat knihovnu pro pˇrístupk federacím identit. Práce se zamˇeˇrujena federace založené na protokolu SAML1, které využívají HTTP a webový prohlížeˇcpro pˇrístup ke službám. Takové federace nejsou vhodné napˇríkladpro využití aplika- cemi bez grafického rozhraní. Z pohledu uživatele jsou pak nepraktické pro vykonávání pravidelnˇese opakujících operací, jako je tˇrebagenerování cer- tifikát ˚us krátkou dobou platnosti. Knihovna poskytne vývojáˇrinástroj pro autentizaci a autorizaci uživa- tel ˚uve federovaném prostˇredí,aniž by bylo potˇrebake zmínˇenýmúkon ˚um použít webový prohlížeˇc.Dále poskytne mechanismus pro kontrolu uži- vatelských autentizaˇcníchúdaj ˚ubez pˇrístupuke službˇe.Pomocí knihovny bude možné také získat certifikát veˇrejnéhoklíˇceod specializované služby. V textu této práce je ve druhé kapitole vysvˇetlenazákladní terminologie. Katipola dále popisuje vlastnosti federací identit a pˇredstavujetypickou in- frastrukturu federace. Ve tˇretíkapitole se ˇctenáˇrdozví, jaké procesy probíhají pˇripˇrístupuk fe- deracím identit. Dále je zde popsán návrh knihovny vˇcetnˇepožadavk ˚una funkcionalitu. Následující ˇctvrtákapitola je vˇenovánaimplementaci knihovny. Nej- prve jsou pˇrestavenyzákladní datové typy, které jsou v knihovnˇedefi- novány. Popsáno je také jejich využití. Vývojáˇrise v této ˇcástipráce mo- hou seznámit s množinou funkcí, které slouží jako rozhraní pro pˇrístupke knihovnˇe.Poté je detailnˇepopsán zp ˚usobkonfigurace knihovny. Pátá kapitola je vˇenovánademonstraci použití navrhované knihovny. Jsou zde pˇredevšímuvedeny komentované ukázky kódu knihovny. V poslední šesté kapitole jsou shrnuty výsledky práce a plánovaný smˇer vývoje knihovny. 1. <http://www.oasis-open.org/specs/index.php#saml> 4 2 Federace identit Federace identit neboli spolˇcenítotožností je systém pro zpˇrístupnˇeníon- line služeb uživatel ˚umv poˇcítaˇcovésíti napˇríˇcr ˚uznýmidoménami (cross- domain). Doména v tomto kontextu oznaˇcujeoblast p ˚usobnostiorganizace, která poskytuje služby. Federace identit zajišt’uje autentizaci a autorizaci uživatele pro pˇrístupk federovaným službám pomocí uživatelových au- tentizaˇcníchúdaj ˚u.Vychází z potˇrebyuživatel ˚upohodlnˇea efektivnˇepˇri- stupovat ke zdroj ˚uminformací a z potˇreborganizací tyto služby bezpeˇcnˇe nabízet. Federace identit dovoluje uživateli pˇrihlásitse k r ˚uznýmfedero- vaným službám za pomoci jediných autentizaˇcníchúdaj ˚u.Další d ˚uležitou vlastností federací je SSO. 2.1 Struktura federací Pˇredpokládáse, že každý, kdo chce pˇristoupitk nˇejakéfederované službˇe na Internetu, má svou federovanou identitu. Její správu zajišt’uje domovská organizace uživatele, která poskytuje jednotné standardizované rozhraní pro distribuci atribut˚u, výraz ˚upopisujících uživatele. Toto rozhraní je ozna- ˇcovánojako poskytovatel identity (Identity Provider, IdP). Koncové služby se ve federacích nazývají poskytovatelé služeb (Service Providers, SP). Model fe- deraˇcníhouspoˇrádáníje znázornˇenna obrázku 2.1. Pˇrenášenéatributy mo- hou být napˇríklad: eduPersonPrincipalName eduPersonAffiliation eduPersonScopedAffiliation SP má možnost povolit, nebo zamítnout pˇrístupke svým službám s ohle- dem na informace získané od IdP. D ˚uležitousouˇcástímnoha federací je služba Where Are You From (WAYF), ke které uživatel pˇristupujepˇredsa- motným kontaktováním SP. Zde si ze seznamu nabízených IdP vybírá toho, v ˚uˇcikterému se chce autentizovat. Na obrázku 2.2 je ukázka ˇcástiwebové stránky, na které si uživatel pomocí formuláˇrevolí svého IdP. Instituce, které se organizují do federací, pracují podle pˇredemdohod- nutých pravidel. Ta ˇcastobývají smluvnˇestvrzena. Zachycuje se v nich spe- cifikace politik nutných k ustanovení d ˚uvˇerymezi ˇclenyfederace, nebot’ zodpovˇednostpˇrisprávˇeuživatelských dat je na stranˇeIdP, nikoliv SP. Pˇrizakládání federace se obvykle definuje schéma atribut ˚u,které si jed- notlivé entity (SP a IdP) ve federaci o uživateli vymˇeˇnují.Entity se také ˇcasto domlouvají na syntaxi a sémantice atribut ˚u. 5 2. FEDERACE IDENTIT Obrázek 2.1: Model federaˇcníhouspoˇrádání Obrázek 2.2: výbˇerIdP pomocí WAYF serveru 6 2. FEDERACE IDENTIT V souˇcasnédobˇese ukazuje, že v nˇekterýchpˇrípadechje vhodnˇejší, když se IdP a SP dohodnou na zmínˇenýchdefinicích sami až pˇripˇrístupu uživatele ke službˇe.Tento zp ˚usobzaruˇcuje,že
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages45 Page
-
File Size-