0 Autrizace mapvéh serveru
OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...4-1 -
1 Cíl příkladu V tmt příkladu si ukážeme mžnsti autrizace mapvéh serveru. Příklad byl vytvřen ve verzi 4.0.1.0, a prt nemusí být kmpatibilní se staršími verzemi. 2 Práce s příkladem D slžky c:\marushkaexamples\ rzbalíme bsah subru Authrizatin_CZ.zip. Cílvu slžku je nutné respektvat kvůli prvázansti cest s prjektem. V případě umístění subrů d jiné cesty by nebyl mžné s příkladem pracvat. V prstředí MarushkaDesignu tevřeme prjekt Authrizatin_CZ.xml. Označíme frmální vrstvu kraje ČR v datvém skladu SQLite (WKB), v kntextvém menu vybereme Data Načti vše: V mapvém kně zvlíme zbrazit Vše : Editujeme či přepíšeme subr Web.cnfig, více zde. Spustíme lkální webvý server: Zadáme Lgin a Hesl. - 2 -
3 Ukázka dialgvéh kna Obr 1: Přihlašvací dialg v Lkálním webvém serveru Obr 2: Ukázka výsledku dtazu v lkálním webvém serveru s přihlášeným uživatelem User3-3 -
4 Stručný ppis příkladu v MarushkaDesignu Příklad bsahuje 4 subry Web.cnfig, z nichž každý má přednastaven jiný druh autrizace. Před začátkem práce s tímt příkladem je dpručen si půvdní subr Web.cnfig zálhvat. Pzr! Subr Web.cnfig se vytvří až p prvním spuštění lkálníh webvéh serveru Marushka, prt pkud jste Marushku nvě nainstalvali, je nutné si před vyzkušením tht příkladu nejdříve spustit lkální webvý server! Změna typu autrizace se prvede tím způsbem, že se buď nahradí půvdní subr Web.cnfig (standardně umístěný v cestě: "C:/Prgram Files/Gevap/MarushkaDesign/4-0-1-0 /service/") jedním z přednastavených subrů. Neb je mžné tent subr vlastnručně editvat. V tm případě je ptřeba tučně zvýrazněné čísl verze v cestě nahradit vždy číslem aktuálně nainstalvané verze MarushkaDesign. Výsledný subr musí mít identický název i kncvku s půvdním subrem, tzn. Web.cnfig a musí být umístěn ve stejné cestě. Editaci těcht subrů je mžné prvést například ve Free firstbject XML editru (Fxe), který je dstupný na adrese: http://www.firstbject.cm/dn_editr.htm, pmcí aplikace Pznámkvý blk, či mnha dalších. Při pužití některéh z předdefinvaných subrů Web.cnfig je ptřebné v každé verzi Marushky jiné než 4.0.1.0 v tmt subru nahradit cesty ke slžkám, se kterými Marushka pracuje ("PathTRt", "PathTLgFile","PathTTemp", "LicenseDir" a "PathTThemeSettings"), jinak by nefungvala správně. Tt lze prvést např. tak, že v prgramu Free firstbject XML editr pmcí klávesvé zkratky CTRL + H (neb pmcí akce Edit / Replace v hlavním menu) nahradíme všechny cesty umístění. Defaultně tedy "C:\Prgram Files\Gevap\MarushkaDesign\4-0-1-0" nahradíme cestu ke slžkám aktuální verze, tedy např. "C:\Prgram Files\Gevap\MarushkaDesign\4-0-1-1" a zvlíme mžnst Replace All. Při vlastnruční mdifikaci subru Web.cnfig aktuální verze Marushky není ptřebné tyt cesty měnit. Tat ptřeba by nastala puze při instalaci nvé verze Marushky a následném pkračvání v mdifikaci subru Web.cnfig starší verze. Nastavení autrizace Mapvý publikační server Marushka umžňuje něklik typů autrizace přístupu k publikvanému prjektu. Typ autrizace je, jak již byl řečen, definván v knfiguračním subru prjektu Web.cnfig. 1. Bez autrizace Veřejnu publikaci (tj. přístupy nejsu věřvány) definujeme v nastavení aplikace tak, že v subru Web.cnfig v sekci <appsettings> nastavíme následující plžku: <!--Flag when authrizatin is in use--> <add key="authrizatin" value="false"/> Dále v sekci </system.web> nastavíme: <authrizatin> <allw users= "*"/> </authrizatin> Naknec přepíšeme půvdní subr Web.cnfig jeh upravenu verzí. - 4 -
V MarushkaDesignu ptm zvlíme Data - Načti vše a klikneme na tlačítk měl spustit lkální webvý server bez mžnsti či pvinnsti autrizace.. Následně by se 2. Ověřvání přístupu k úvdnímu frmuláři Frmulářvé věřvání spčívá v tm, že uživatel a jeh hesl je věřván prti seznamu uživatelů a hesel definvaných v subru Web.cnfig. Plžky nastavíme následujícím způsbem: Pvlíme autrizaci: <!--Flag when authrizatin is in use--> <add key="authrizatin" value="true"> Nastavíme typ autrizace: <!--Type f authrizatin cmpnent--> <add key=authrizatincmpnent" value="framewrkserver.cmpnent.basicfrmauthrizatin,framewrkserver"/> <!--End Type f Authrizatin cmpnent--> Nastavíme seznam uživatelů v sekci: <authenticatin mde="frms"> <frms lginurl="lgin.aspx" name=".aspxformsauth" timeut="10"> <credentials passwrdfrmat="clear"> <user name="gevap" passwrd="test/"> <user name="test" passwrd="1234"/> <user name="mike" passwrd="test"/> </credentials> </frms> <authenticatin> V sekci <system.web> zakážeme přístup neautrizvaným uživatelům: <authrizatin> <deny users="?"/> </authrizatin> Naknec přepíšeme půvdní subr Web.cnfig jeh upravenu verzí. V MarushkaDesignu ptm zvlíme Data - Načti vše a klikneme na tlačítk. Měl by se spustit lkální webvý server s dialgvým knem, které bude pžadvat Lgin a Hesl. Pkud jste pužili přednastavený subr, tak zadejte jednu z dvjic 1. Lgin: gevap, Hesl: test; 2. Lgin: test, Hesl: 1234; 3. Lgin: mike, Hesl: test. Pkud jste pstupvali pdle návdu a upravvali jste subr Web.cnfig, tak budete muset pužít takvé lginy a hesla, která jste si v tmt subru sami nadefinvali. P zadání validníh lginu a hesla bude již Váš přístup autrizván a spustí se lkální web server. 3. Hesla ulžená v databázvé tabulce Frmulářvé věřvání s pužitím hesel ulžených v tabulce prbíhá tak, že uživatelské jmén a hesl jsu prvěřvány prti uživatelským jménům a heslům ulženým v databázvé tabulce. V subru Web.cnfig v sekci <appsettings> nastavíme následující plžky: Pvlíme autrizaci: <!--Web page is (un)authrized--> <add key="authrizatin" value="true"/> - 5 -
Nastavíme kmpnentu autrizace FrameWrkServer a plžku UserSelect: <!--RequestBreak - Optinal, break SQL statement, request is rejected --> <add key="authrizatincmpnent" value="framewrkserver.cmpnent.databaseuserlistfrmauthrizatin, FrameWrkServer"/> <add key ="UserSelect" value="select COUNT(*) FROM USER_LIST WHERE USER_NAME=~1~ AND USER_PASSWORD=~2~"/> Nastavíme cestu k Databázi s uživatelskými jmény a hesly: <!--add key="useraccessthemeselect" value="select themeid frm usertheme where username = ~UserName~"/--> <add key="serveralias"value="c:\marushkaexamples\authrizatin\user_list.db"/> Zvlíme druh databáze: <!--add key="serverbasepswd" value="acc"/--> <add key ="ServerType" value="sqlite"/> V sekci <system.web> zakážeme přístup neautrizvaným uživatelům: <authrizatin> <deny users="?"/> Naknec přepíšeme půvdní subr Web.cnfig jeh upravenu verzí. V MarushkaDesignu ptm zvlíme Data - Načti vše a klikneme na tlačítk. Měl by se spustit lkální webvý server s dialgvým knem, které bude pžadvat Lgin a Hesl. Pkud jste pužili přednastavený subr a neupravvali jste data v tabulce USER_LIST, tak zadejte jednu z dvjic 1. Lgin: User1, Hesl: 111; 2. Lgin: User2, Hesl: 222; 3. Lgin: User3, Hesl: 333; 4. Lgin: User4, Hesl: 444; 5. Lgin: User5, Hesl: 555. P zadání validníh lginu a hesla bude již Váš přístup autrizván a spustí se lkální web server. 4. Hesla ulžená v databázvé tabulce, seznam Themeid pr jedntlivé UserNames Frmulářvé věřvání s pužitím seznamu pvlených témat pr jedntlivé uživatele v databázvé tabulce prbíhá tak, že jsu uživatelské jmén (UserName) a hesl (Passwrd) věřvány prti uživatelským jménům a heslům ulženým v tabulce. Ke každému uživatelskému jménu je v tét tabulce uveden seznam dstupných ID pr jedntlivé uživatele, který je prvnáván s ID aktuálníh tématu a uživatelským jménem. Nastavení subru Web.cnfig je ttžné jak u subru Web.cnfig (hesla ulžená v tabulce), je zde všem navíc následující select: <!--add key="requestbreak" value="select 100-COUNT(*) FROM REQUEST_USAGE WHERE MACHINE_ID='~MACHINE_ID~' and request_time>sysdate - 1/1440"/--> <add key="useraccessthemeselect" value="select themeid frm usertheme where username = ~UserName~"/> Pkud by tent select nebyl aktivván, byl by prjekt věřván puze prti seznamu uživatelů a hesel jak v předchzím případě 3. Hesla ulžená v databázvé tabulce a přiřazení dstupných témat k jedntlivým uživatelům by nebyl prveden. Pr každéh z přihlášených uživatelů by tedy byla dstupná všechna existující témata. Databáze USER_LIST.db bsahuje tabulky USER_LIST a USERTHEME. Tabulka USER_LIST bsahuje seznam uživatelů a jejich hesel, tabulka USERTHEME přiřazuje jedntlivým uživatelům dstupná témata. Pr uživatele User1 jsu dstupná ThemeId 11 a 12, pr uživatele User2 jsu - 6 -
dstupná ThemeId 11 a 14 a pr uživatele User3 je dstupné ThemeId 15. Uživatelská jména, hesla a seznamy ThemeId pr jedntlivé uživatele je mžné měnit v databázi USER_LIST.db. Při definici seznamu témat pr jedntlivé uživatele je nutné, aby měl každý z uživatelů přiřazen alespň jedn téma! V pačném případě by pr uživatele bez definvanéh tématu nebyl mžné se k prjektu přihlásit. Stejně tak je nutné mít v seznamu alespň jednh uživatele s vyplněným dstupným THEMEID, jinak by se prjekt nespustil a vrátila by se chybvá hláška: Přístup byl depřen pr vybrané téma. Ještě je ptřebné mít v editru témat nastaven v parametru LinksTTheme seznam témat, mezi kterými je mžné přepínat, jinak by nebyl mžné tat témata vlat. 5. Autrizace prti databázvému serveru Tent typ autrizace je ppsán v manuálu. 6. Autrizace NT Tent typ autrizace je také ppsán v manuálu. Zbrazení jména přihlášenéh uživatele pmcí parametru SET_ENV_USER V případě, že budete ptřebvat dsazvat uživatelské jmén d databázvých dtazů, je mžné pužít parametr SET_ENV_USER, který služí k substituci jména právě přihlášenéh uživatele. Tent parametr je dynamicky nahrazván serverem, prt není mžné jej zvenku měnit. Tent parametr musí být definván v PassedParams parametrech prjektu. V tmt příkladu je jmén přihlášenéh uživatele zbrazván pmcí antační vrstvy vlev nahře v mapvém kně vedle psuvníku mapvých měřítek. Vlání parametrů na URL adrese v brwseru Prjekt je mžné si spustit v Brwseru pmcí tlačítka. Ptm je mžné vlat příslušné uživatelské jmén, hesl a téma rvnu v URL. Při pužití tht způsbu vlání je ptřeba zkpírvat adresu lkálníh webvéh serveru prjektu a vlžit ji d URL. Pdle th klik parametrů je ptřeba vlat, tlik se jich vyplní v následující URL, statní se vynechají. Výsledná URL má tent tvar: http://{adresa lkálníh webvéh serveru} /MarushkaService/default.aspx?ThemeId={čísl tématu}&username={uživatelské jmén}&passwrd={hesl} Kmpletní adresa vlající téma č. 15, uživatelské jmén User3 a hesl 333 má následující tvar: http://lcalhst:21574/marushkaservice/default.aspx?themeid=15&username=us er3&passwrd=333 Více externím vlání si můžete přečíst v Manuálu neb zde: http://marushka.gestre.cz/cz/blg-detail/vlani-html-klienta-metdu-pst-get/9. - 7 -