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é
Funkcia zabezpečené implicitné pripojenia bola vydaná v januári 2024. Spoločnosť Microsoft dôrazne odporúča všetkým aplikáciám, ktoré v súčasnosti používajú implicitné pripojenia, aby sa previedli na zabezpečené implicitné pripojenia a zrušili pripojenia zdieľané s koncovými používateľmi.
Rozdiel medzi explicitnými, implicitnými a bezpečnými implicitnými pripojeniami
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 overenie sa zvyčajne deje v zákulisí ako súčasť Microsoft Entra alebo 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.
- A zabezpečené implicitne zdieľané pripojenie označuje scenár, v ktorom koncový používateľ aplikácie implicitne používa poverenia účtu, ktorý tvorca aplikácie použil na pripojenie a overenie k zdroj údajov pri vytváraní aplikácie. To znamená, že na autentifikáciu sa nepoužívajú vlastné poverenia koncového používateľa. Namiesto toho, keď používateľ spustí aplikáciu, používa poverenia, pomocou ktorých ju vytvoril autor aplikácie. Je dôležité poznamenať, že koncový používateľ nemá priamy prístup k pripojeniu a aplikácia umožňuje prístup iba k obmedzenému súboru akcií a tabuliek.
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á / Bezpečná Implicitná |
Overovanie systému Windows | Implicitná / Bezpečná Implicitná |
Overenie systému Windows (nezdieľané) | Explicitné |
Implicitné riziká zdieľania pripojenia
Všetky nové aplikácie automaticky používajú nové zabezpečené implicitné pripojenia. Pri aplikáciách, ktoré používajú staršie „implicitné pripojenia“, sa však aplikácia aj jej pripojenia nasadzujú ku koncovým používateľom, čo znamená, že koncoví používatelia môžu vytvárať nové aplikácie na základe týchto pripojení.
Keď autor používa zabezpečené implicitné pripojenia, znamená to, že žiadne pripojenie nie je zdieľané a žiadny koncový používateľ nedostane objekt pripojenia. Tým sa eliminuje riziko, že autor koncového používateľa opätovne použije pripojenie na vytvorenie novej aplikácie. Namiesto toho aplikácia pracuje s proxy pripojením, ktoré pozná aplikáciu a komunikuje iba s touto konkrétnou aplikáciou. Proxy pripojenie umožňuje obmedzené akcie (vytváranie, čítanie, aktualizácia, mazanie) a prístup ku konkrétnym tabuľkám v aplikácii, ktoré sú definované pri publikovaní aplikácie. Preto sú koncovému používateľovi udelené iba autorizované akcie a prístup.
Jednoduché implicitné pripojenie staršieho štýlu v skutočnosti distribuuje objekt pripojenia ku koncovému používateľovi. Ak napríklad vytvoríte aplikáciu, ktorá filtruje údaje, ktoré nechcete, aby používatelia videli. Odfiltrované údaje sa však 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.
Opäť platí, že so staršími jednoduchými implicitnými pripojeniami môžu koncoví používatelia po nasadení aplikácie 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. Je dôležité používať nové bezpečné implicitné pripojenia.
Dôležité
Po nasadení staršieho implicitne zdieľaného pripojenia pre koncových používateľov už obmedzenia, ktoré ste mohli vložiť do zdieľanej aplikácie (napríklad filtre alebo prístup len na čítanie), už neplatia pre nové aplikácie vytvorené koncovými používateľmi. Koncoví používatelia budú mať akékoľvek práva, ktoré autentifikácia umožňuje, ako súčasť implicitne zdieľaného pripojenia. Preto keď konvertujete aplikáciu na používanie bezpečných implicitných pripojení, musíte tiež odvolať pripojenia, ktoré zdieľate s vašou aplikáciou. Správcovia môžu získať prehľad aplikácií s implicitne zdieľanými pripojeniami pomocou súpravy nástrojov COE.
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 bezpečnosť používateľa, používajte služby ako Microsoft Entra ID namiesto toho, aby ste sa spoliehali na filtre navrhnuté v rámci aplikácií. 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.
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.
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 pomocou 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žíva Microsoft Entra totožnosť používateľa 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í.
Podnik vrstva (na strane servera) používa známu identitu používateľa Microsoft Entra na vyvolanie uloženej procedúry ako principál servera SQL a filtrovanie údajov. Power Apps sa však momentálne nepripojí k uloženým procedúram. Podnik vrstva môže tiež vyvolať zobrazenie, ktoré používa Microsoft Entra identitu ako principál SQL Servera. 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.