Autorizácia webových služieb

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání

Autorizácia

V predchádzajúcich kapitolách sme si vysvetlili metódy, akými môžeme overiť identitu užívateľa volajúceho webovú službu. Podrobnejšie sme si rozobrali tie, ktoré sú v praxi úspešne využívané v rôznych bezpečnostných scenároch. Získanie skutočnej identity klienta predstavuje len prvý krok, k vytvoreniu bezpečnej komunikácie. Potrebujeme vedieť, aké má klient oprávnenie v rámci našej webovej služby. Aké webové metódy webovej služby môže volať, k akým zdrojom, či už k databázam alebo súborom smie pristupovať. Proces, v ktorom zisťujeme oprávnenia sa nazýva autorizácia.

V tejto kapitole si rozoberieme spôsoby autorizácia s využitím konfiguračného súboru web.confing webovej služby.

Autorizácia URL

Ako sme už spomenuli autorizačné pravidlá definujeme v konfiguračnom súbore webovej služby .Tie sú vykonávané prostredníctvom špeciálneho HTTP modulu UrlAuthorization-Module. Princíp fungovania tohto module spočíva v analýze a kontrole každého požiadavku užívateľa, tým je zabezpečená ochrana neautorizovaného prístupu. Tento model autorizácie kontroluje bezpečnostný kontext a URL zdroja, ku ktorému žiada užívateľ prístup.[13]

Autorizačné pravidlá

V tejto podkapitole si vysvetlíme samotný spôsob realizácie autorizácie v konfiguračnou súbore webovej služby. Autorizačné pravidlá sa definujú v súbore web.confing prostredníctvom prvku <authorization> pomocou, ktorého môžeme vytvoriť dva typy autorizačných pravidiel [4]:

  • Pravidlo zakazujúce prístup, prostredníctvom prvku <deny>.
  • Pravidlo povoľujúce prístup, prostredníctvom prvku <allows>.

Oba typy autorizačných pravidiel môžeme aplikovať [4] :

  • Jedného užívateľa použitím kľúčového slova user.
  • Na skupinu užívateľov (rolí) použitím kľúčového slova roles.
  • Alebo môžeme použiť kľúčové slovo verbs, a prostredníctvom neho určiť konkrétne typy HTTP požiadaviek, na ktoré sa bude pravidlo aplikovať.


Tab. 6.1 Konfigurácia autorizačných pravidiel v súbore web.config
<authorization>
  <allow users="Zoznam uzivatelov"
         roles="Zoznam roli"
         verbs="Typy HTTP poziadaviek"
         />
  <deny users="Zoznam uzivatelov"
        roles="Zoznam roli"
        verbs="Typy HTTP poziadaviek"
        />
</authorization>

Pri definovaný pravidiel môžeme využiť tieto zástupné znaky [1]:

  • Znak ?, ktorý reprezentuje všetkých anonymných užívateľov.
  • Znak *, ktorý reprezentuje všetkých užívateľov.

Proces aplikácie konfiguračných pravidiel je pre webové služby ASP.NET nasledovný. Najskôr sa aplikujú konfiguračné pravidlá z príslušného konfiguračného súboru web.confing a následné sa aplikujú pravidlá zo súboru machine.confing. Autorizačné pravidlá sa aplikujú v tom poradí, v akom sú v konfiguračnom súbore zapísané. [15]

Prostredníctvom autorizačných pravidiel môže riadiť prístup užívateľov ku konkrétnym adresárom a súborom. Riadení prístup k adresárom sa realizuje umiestením konfiguračného súboru s autorizačnými pravidlami do príslušného adresára. Riadení prístup ku konkrétnym súborom sa realizuje prostredníctvom prvku <location> , v ktorom konkretizujem cestu k súboru. ( pozri Tab. 6.2)


Tab. 6.2 Konfigurácia autorizačných pre riadený prístup k súboru
<location path="SecrurePage.asmx">
<system.web>
  <authorization>
    <deny users="?"/>
  </authorization>     
</system.web>
</location>