Zdieľať cez


Bezpečné používanie Microsoft SQL Servera so službou Power Apps

Existujú rôzne spôsoby pripojenia a overenia k SQL Serveru pomocou služby Power Apps. V tomto článku sa popisujú koncepty, ktoré môžu byť užitočné pri voľbe spôsobu pripojenia k SQL Serveru pomocou bezpečnostného prístupu, ktorý zodpovedá požiadavkám vašej aplikácie.

Dôležité

Funkcia zabezpečených implicitných pripojení bola vydaná v januári 2024. Spoločnosť Microsoft dôrazne povzbudzuje všetky aplikácie, ktoré v súčasnosti používajú implicitné pripojenia, aby konvertovali na zabezpečené implicitné pripojenia a zrušili pripojenia zdieľané s koncovými používateľmi.

Rozdiel medzi explicitným, implicitným a bezpečným implicitným pripojením

Pripojenie k SQL Serveru sa vytvorí vždy, keď vytvoríte aplikáciu pomocou služby Power Apps, ktorá sa pripája k SQL Serveru. Keď sú takéto aplikácie publikované a zdieľané s ostatnými, aplikácia aj pripojenie sa týmto používateľom nasadzujú. Inými slovami, aplikácia aj pripojenie – obe sú viditeľné pre používateľov, s ktorými sú aplikácie zdieľané.

Metóda overovania používaná 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í overiť na SQL Serveri pomocou vlastných explicitných poverení. Zvyčajne sa toto overovanie deje v zákulisí ako súčasť Microsoft Entra alebo Windows overovanie podávania rúk. Používateľ si ani nevšimne, kedy sa overovanie vykonáva.
  • Implicitne zdieľané pripojenie znamená, že používateľ implicitne používa poverenia konta, ktoré tvorca aplikácie použil na pripojenie a overenie k zdroju údajov počas vytvárania aplikácie. Prihlasovacie údaje koncového používateľa sa nepoužívajú na overenie. Vždy, keď koncový používateľ spustí aplikáciu, použije prihlasovacie údaje, pomocou ktorých autor vytvoril aplikáciu.
  • Zabezpečené implicitne zdieľané pripojenie odkazuje na scenár, v ktorom koncový používateľ aplikácie implicitne používa poverenia konta, ktoré tvorca aplikácie použil na pripojenie a overenie k zdroju údajov pri vytváraní aplikácie. To znamená, že vlastné poverenia koncového používateľa sa nepoužívajú na overenie. Namiesto toho, keď používateľ aplikáciu spustí, použije prihlasovacie údaje, pomocou ktorých ju autor aplikácie vytvoril. Je dôležité poznamenať, že koncový používateľ nemá priamy prístup k pripojeniu a aplikácia umožňuje prístup len k obmedzenej množine akcií a tabuliek.

S SQL Serverom pre Power Apps možno použiť nasledujúce štyri typy overovania pripojenia:

Typ overovania Metóda pripojenia služby Power Apps
Microsoft Entra Integrated Explicitný
SQL Server Authentication Implicitné/Zabezpečené implicitné
Overenie systému Windows Implicitné/Zabezpečené implicitné
Overovanie systému Windows (nezdieľané) Explicitný

Implicitné riziká zdieľania pripojenia

Všetky nové aplikácie automaticky používajú nové zabezpečené implicitné pripojenia. V prípade aplikácií, ktoré používajú staršie implicitné pripojenia, sa však aplikácia aj jej pripojenia nasadzujú koncovým používateľom, znamená to, že koncoví používatelia môžu na základe týchto pripojení vytvárať nové aplikácie.

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 opätovného používania pripojenia koncovým používateľom pri vytváraní novej aplikácie. Namiesto toho aplikácia funguje s pripojením proxy, ktoré o aplikácii vie a komunikuje len s danou konkrétnou aplikáciou. Pripojenie proxy umožňuje obmedzené akcie (vytvorenie, čítanie, aktualizácia, odstránenie) a prístup ku konkrétnym tabuľkám v aplikácii, ktoré sú definované pri publikovaní aplikácie. Preto sa koncovým používateľom udeľujú iba povolené akcie a prístup.

Staršie štýlové jednoduché implicitné pripojenie v skutočnosti distribuuje objekt pripojenia koncovému používateľovi. Ak napríklad vytvoríte aplikáciu, ktorá filtruje údaje, ktoré nechcete, aby používatelia videli. Vyfiltrované údaje sa však nachádzajú v databáze. Spoliehate sa však na filter, ktorý ste nakonfigurovali, aby sa zabezpečilo, že koncoví používatelia nebudú vidieť určité údaje.

Platí tiež, že pri staršom štýle jednoduchých implicitných pripojení môžu koncoví používatelia po nasadení aplikácie použiť pripojenie nasadené s vašou aplikáciou v každej novej aplikácii, ktorú vytvoria. V nových aplikáciách môžu používatelia vidieť údaje, ktoré ste vyfiltrovali vo vašej aplikácii. Je dôležité používať nové zabezpečené implicitné pripojenia.

Dôležité

Keď sa koncovému používateľovi nasadí staršie implicitne zdieľané pripojenie, obmedzenia, ktoré ste nastavili v zdieľanej aplikácii (napríklad filtre alebo prístup iba na čítanie), pre nových koncových používateľov aplikácií už nebudú platiť. Koncoví používatelia budú mať akékoľvek práva, ktoré overovanie povoľuje ako súčasť implicitne zdieľaného pripojenia. Preto pri konvertovaní aplikácie na používanie zabezpečených implicitných pripojení musíte zrušiť aj pripojenia, ktoré ste zdieľali s vašou aplikáciou. Správcovia môžu získať zostavu aplikácií s implicitne zdieľanými pripojeniami pomocou súpravy nástrojov COE.

Zabezpečenie klienta a servera

Nemôžete sa spoliehať na zabezpečenie údajov prostredníctvom filtrovania alebo iných operácií na strane klienta, ktoré budú zabezpečené. Aplikácie, ktoré vyžadujú zabezpečené filtrovanie údajov, musia zabezpečiť, aby sa na serveri udeľovalo identifikácia používateľa aj filtrovanie.

Používajte služby, ako napríklad Microsoft Entra ID, namiesto toho, aby ste sa spoliehali na filtre navrhnuté v aplikáciách, pokiaľ ide o identitu a zabezpečenie používateľa. Táto konfigurácia zabezpečí, že filtre na strane servera budú fungovať podľa očakávania.

Na nasledujúcom obrázku je vysvetlené, ako sa vzory zabezpečenia v aplikáciách líšia medzi modelmi zabezpečenia na strane klienta a modelmi zabezpečenia na strane servera.

Vzor zabezpečenia na strane klienta v aplikácii.

Vo vzore aplikácie zabezpečenia klienta [1] používateľ overí aplikáciu iba na strane klienta. Potom [2] aplikácia požaduje informácie služby a [3] služba vráti informácie výhradne na základe žiadosti o údaje.

Vzor zabezpečenia na strane servera v aplikácii.

Pri vzore zabezpečenia na strane servera [1] sa používateľ najskôr overí v službe, takže používateľ je službe známy. Potom[2] pri volaní z aplikácie služba [3] používa známu identitu aktuálneho používateľa na správne filtrovanie údajov a [4] vráti údaje.

Scenáre implicitného zdieľania oddelení popísané vyššie sú kombináciou týchto dvoch vzorov. Používateľ sa musí prihlásiť do služby Power Apps pomocou poverení Microsoft Entra. Toto správanie predstavuje vzor aplikácie zabezpečenia servera. Používateľ je známy pomocou identity Microsoft Entra v službe. Aplikácia je preto obmedzená na množinu používateľov, s ktorými Power Apps formálne zdieľa aplikáciu.

Implicitné zdieľané pripojenie k SQL Serveru je však vzorom aplikácie zabezpečenia klienta. SQL Server vie len to, že sa použilo meno a heslo konkrétneho používateľa. Akékoľvek filtrovanie na strane klienta, napríklad, sa dá obísť s novou aplikáciou pomocou rovnakého mena používateľa a hesla.

Ak chcete bezpečne filtrovať údaje na strane servera, použite vstavané funkcie zabezpečenia v SQL Serveri, ako je napríklad zabezpečenie na úrovni riadkov pre riadky, a povolenia na zamietnuť pre konkrétne objekty (napríklad stĺpce) pre konkrétnych používateľov. Tento prístup používa identitu používateľa služby Microsoft Entra na filtrovanie údajov na serveri.

Niektoré existujúce firemné služby používajú prístup, v ktorom je identita používateľa zachytená vo vrstve podnikových údajov oveľa rovnakým spôsobom ako to robí služba Microsoft Dataverse. V tomto prípade podniková vrstva môže alebo nemusí priamo používať zabezpečenie na úrovni riadkov SQL Servera a zamietnuť funkcie. Ak nie, často sa stáva, že zabezpečenie je povolené pomocou uložených procedúr alebo zobrazení.

Podniková vrstva (na strane servera) používa na vyvolanie uloženej procedúry ako objektu SQL Servera známeho používateľa identitu Microsoft Entra a filtrovanie údajov. Služba Power Apps sa však momentálne nepripája k uloženým procedúrám. Podniková vrstva môže tiež vyvolať zobrazenie, ktoré používa identitu Microsoft Entra ako objekt SQL Servera. V tomto prípade sa pomocou služby Power Apps pripojte k zobrazeniam tak, aby sa údaje filtrovali na strane servera. Zobrazenie iba zobrazenia používateľom môže vyžadovať aktualizácie postupov služby Power Automate.

Pozrite si tiež

Prehľad konektorov pre plátnové aplikácie