Používajte Microsoft SQL Server bezpečne s Power Apps

Existujú rôzne spôsoby, ako pripojiť a autentifikovať na serveri SQL pomocou Power Apps. Tento článok popisuje koncepty, ktoré môžu byť užitočné pri rozhodovaní o tom, ako sa pripojiť k serveru SQL pomocou prístupu zabezpečenia, ktorý zodpovedá požiadavkám na vašu aplikáciu.

Dôležité

Tento článok sa vzťahuje na všetky relačné databázy a implicitné pripojenia.

Rozdiel medzi explicitným a implicitným pripojením

Pripojenie k serveru SQL sa vytvorí vždy, keď vytvoríte aplikáciu pomocou pripojenia Power Apps k serveru SQL. Keď sa takéto aplikácie zverejnia a zdieľajú s ostatnými, aplikácia a pripojenie sa nasadia týmto používateľom. Inými slovami, aplikácia a pripojenie—sú viditeľné pre používateľov, s ktorými sú aplikácie zdieľané.

Metóda autentifikácie použitá pre takéto pripojenia môže byť explicitné alebo implicitné. Môžeme tiež povedať, že takéto pripojenie je zdieľané explicitne alebo implicitne.

  • Explicitne zdieľané pripojenie znamená, že koncový používateľ aplikácie sa musí autentifikovať na serveri SQL pomocou svojich vlastných explicitných poverení. Toto overovanie sa zvyčajne deje na pozadí ako súčasť Microsoft Entra podania rúk overovania systému Windows. Používateľ si ani nevšimne, kedy dôjde k autentifikácii.
  • Implicitné zdieľané pripojenie znamená, že používateľ implicitne použije poverenia účtu, ktoré výrobca aplikácie použil na pripojenie a autentizáciu k zdroj údajov počas vytvárania aplikácie. Poverenia koncového používateľa neslúžia na autentifikáciu. Zakaždým, keď koncový používateľ spustí aplikáciu, použije poverenia, pomocou ktorých ju autor vytvoril.

Nasledujúce štyri typy autentifikácie pripojenia možno použiť so serverom SQL pre Power Apps:

Typ overenia Metóda pripojenia Power Apps
Microsoft Entra Integrovaný Explicitné
Overovanie SQL Servera Implicitné
Overovanie systému Windows Implicitné
Overovanie systému Windows (nezdieľané) Explicitné

Implicitné riziká zdieľania pripojenia

Pretože aplikácia aj jej pripojenia sú nasadené pre koncových používateľov, znamená to, že koncoví používatelia môžu na základe týchto pripojení vytvárať nové aplikácie.

Zvážte napríklad to, že ste vytvorili aplikáciu, ktorá odfiltrovala údaje, ktoré nechcete, aby používatelia videli. Odfiltrované údaje sa nachádzajú v databáze. Spoliehate sa však na filter, ktorý ste nakonfigurovali, aby ste zabezpečili, že koncoví používatelia neuvidia určité údaje.

Po nasadení tejto aplikácie môžu koncoví používatelia používať pripojenie nasadené s vašou aplikáciou v akýchkoľvek nových aplikáciách, ktoré vytvoria. V nových aplikáciách môžu používatelia vidieť údaje, ktoré ste odfiltrovali vo svojej aplikácii.

Dôležité

Keď sa implicitne zdieľané pripojenie nasadí na koncových používateľov, obmedzenia, ktoré ste mohli vložiť do zdieľanej aplikácie (napríklad filtre alebo prístup iba na čítanie), už nebudú platiť pre nové aplikácie, ktoré koncoví používatelia vytvárajú. Koncoví používatelia budú mať akékoľvek práva, ktoré autentifikácia umožňuje, ako súčasť implicitne zdieľaného pripojenia.

Skutočné použitie implicitného spojenia

Existujú platné prípady použitia pre implicitné aj explicitné metódy overovania. Pri výbere prístupu zvážte bezpečnostný model a ľahkosť vývoja. Ako všeobecné pravidlo používajte metódu explicitného overenia v každej situácii, keď máte obchodnú požiadavku, keď musia byť údaje obmedzené na základe riadkov alebo stĺpcov.

Ako príklad použitia prípadu explicitného pripojenia zvážte manažéra predaja, ktorý by mal mať oprávnenie vidieť iba zľavy z ceny alebo údaje o základných nákladoch, ktoré sú v tej istej tabuľke, kde iný produkt predaja musí vidieť produkt a cenu.

Nie všetky údaje však môžu vyžadovať rovnaké zabezpečenie. Aplikácia sa zdieľa a nasadzuje konkrétnym používateľom alebo skupinám používateľov. Osoby mimo tejto skupiny nemajú prístup k aplikácii alebo pripojeniu. Preto, ak je každý v skupine oprávnený vidieť všetky údaje v databáze, implicitná metóda zdieľania funguje dobre.

Ako príklad prípadu použitia implicitného pripojenia zvážte oddelenie, ktoré má malú databázu sledovaných projektov. Databáza môže obsahovať informácie, ako sú pracovné lístky na oddelenie alebo firemný kalendár pre celú spoločnosť. V tomto scenári môže byť podporované vytváranie ďalších aplikácií nad implicitne zdieľaným pripojením, pokiaľ by všetky údaje mali byť prístupné všetkým používateľom, ktorí majú prístup.

Aplikácie vytvorené pomocou Power Apps sú navrhnuté tak, aby boli prístupné pre koncových používateľov. Tento druh scenára je bežný, pretože náklady na vývoj spojené s implicitnými spojeniami sú nízke.

Rezortné aplikácie môžu prerásť do celopodnikových a kritických aplikácií. V týchto scenároch je dôležité si uvedomiť, že pri prechode celopodnikovej aplikácie na oddelenie bude potrebné mať zabudované tradičné podnikové zabezpečenie. Tento prístup je nákladnejší na úsilie pri vytváraní aplikácií, ale je dôležitý v celofiremných scenároch.

Zabezpečenie klientov a serverov

Na zabezpečenie údajov sa nemôžete spoľahnúť pri filtrovaní alebo iných operáciách na strane klienta. Aplikácie, ktoré vyžadujú bezpečné filtrovanie údajov, musia zabezpečiť, aby sa na serveri uskutočnila identifikácia aj filtrovanie používateľov.

Pokiaľ ide o identitu a zabezpečenie používateľa, používajte služby, ako je ID, Microsoft Entra namiesto spoliehania sa na filtre navrhnuté v aplikáciách. Táto konfigurácia zaručuje, že filtre na strane servera fungujú podľa očakávania.

Nasledujúce ilustrácie vysvetľujú, ako sa vzory zabezpečenia v aplikáciách líšia medzi modelmi zabezpečenia na strane klienta a servera.

Bezpečnostný vzor na strane klienta v aplikácii.

Vo vzore aplikácie zabezpečenia klienta [1] sa používateľ autentifikuje iba do aplikácie na strane klienta. Potom [2] aplikácia požaduje informácie o službe a [3] služba vráti informácie iba na základe žiadosti o údaje.

Bezpečnostný vzor na strane servera v aplikácii.

Vo vzore zabezpečenia na strane servera [1] sa používateľ najskôr autentizuje v službe, takže je používateľovi služba známa. Potom, [2] keď sa uskutoční hovor z aplikácie, služba [3] používa známu identitu aktuálneho používateľa na vhodné filtrovanie údajov a [4] vráti údaje.

Vyššie popísané scenáre implicitného oddelenia sú kombináciou týchto dvoch vzorov. Používateľ sa musí prihlásiť do Power Apps služby pomocou Microsoft Entra prihlasovacích údajov. Toto správanie je vzorom aplikácie zabezpečenia servera. Používateľ je známy podľa Microsoft Entra identity v službe. Preto je aplikácia obmedzená na skupinu používateľov, ktorým Power Apps formálne zdieľa aplikáciu.

Implicitné zdieľané pripojenie k serveru SQL je však vzorom aplikácie zabezpečenia klienta. SQL server vie iba to, že sa používa konkrétne meno používateľa a heslo. Akékoľvek filtrovanie na strane klienta je možné obísť napríklad pomocou novej aplikácie pomocou rovnakého používateľského mena a hesla.

Ak chcete bezpečne filtrovať údaje na strane servera, použite vstavané funkcie zabezpečenia na serveri SQL, napríklad zabezpečenie na úrovni riadkov pre riadky a zakázať povolenia konkrétnym objektom (napríklad stĺpcom) konkrétnym používateľom. Tento prístup použije identitu používateľa Microsoft Entra na filtrovanie údajov na serveri.

Niektoré existujúce podnikové služby používali prístup, pri ktorom je identita používateľa zachytená vo vrstve obchodných údajov rovnakým spôsobom ako Microsoft Dataverse. V tomto prípade môže obchodná vrstva používať zabezpečenie riadkovej úrovne servera SQL a nemusí ho priamo používať. Ak to tak nie je, často sa stáva, že je zabezpečenie povolené pomocou uložených procedúr alebo zobrazení.

Obchodná vrstva (na strane servera) používa známu identitu používateľa Microsoft Entra na vyvolanie uloženej procedúry ako objekt servera SQL Server a filtrovanie údajov. Power Apps sa však momentálne nepripojí k uloženým procedúram. Obchodná vrstva môže tiež vyvolať zobrazenie, ktoré používa Microsoft Entra identitu ako objekt servera SQL Server. V takom prípade použite Power Apps na pripojenie k zobrazeniam, aby sa údaje filtrovali na strane servera. Pre aktualizácie tokov Power Automate možno bude potrebné vystaviť používateľov iba zobrazeniam.

Pozrite si tiež:

Prehľad konektorov pre aplikácie plátna