Saugus "Microsoft SQL Server" naudojimas su "Power Apps"

Yra įvairių būdų prisijungti ir autentifikuoti "SQL Server" naudojant "Power Apps". Šiame straipsnyje aprašomos sąvokos, kurios gali būti naudingos renkantis, kaip prisijungti prie "SQL Server" naudojant saugos metodą, atitinkantį jūsų taikomosios programos reikalavimus.

Svarbu

Saugių netiesioginių ryšių funkcija buvo išleista 2024 m. sausio mėn. "Microsoft" primygtinai ragina visas programėles, kurios šiuo metu naudoja netiesioginius ryšius, konvertuoti į saugius netiesioginius ryšius ir atšaukti ryšius, bendrinamus su galutiniais vartotojais.

Išskirtinių, netiesioginių ir saugių netiesioginių ryšių skirtumas

Ryšys su "SQL Server" sukuriamas kiekvieną kartą, kai kuriate programą naudodami "Power Apps" jungdamiesi prie "SQL Server". Kai tokios programėlės publikuojamos ir bendrinamos su kitais, šiems vartotojams įdiegiama ir taikomoji programa, ir ryšys. Kitaip tariant, programėlė ir ryšys – abi matomos vartotojams, su kuriais bendrinamos programėlės.

Autentifikavimo metodas, naudojamas tokiems ryšiams, gali būti aiškus arba netiesioginis. Taip pat galime pasakyti, kad toks ryšys tiesiogiai arba netiesiogiai bendrinamas.

  • Aiškiai bendrinamas ryšys reiškia, kad galutinis programos vartotojas turi autentifikuotis "SQL Server" naudodamas savo tikslius kredencialus. Paprastai šis autentifikavimas vyksta fone kaip "Microsoft Entra" arba "Windows" autentifikavimo patvirtinimo dalis. Vartotojas net nepastebi, kada vyksta autentifikavimas.
  • Netiesiogiai bendrinamas ryšys reiškia, kad vartotojas netiesiogiai naudoja paskyros, kurią taikomųjų programų kūrėjas naudojo prisijungdamas ir autentifikydamas duomenų šaltinį kurdamas taikomąją programą, kredencialus. Galutinio vartotojo kredencialai nenaudojami autentifikuoti. Kiekvieną kartą, kai galutinis vartotojas paleidžia programą, jis naudoja kredencialus, su kuriais autorius sukūrė programą.
  • Saugus netiesiogiai bendrinamas ryšys nurodo scenarijų, kai galutinis programėlės vartotojas netiesiogiai naudoja paskyros, kurią taikomųjų programų kūrėjas naudojo prisijungdamas prie duomenų šaltinio ir autentifikdamas prie jo prisijungdamas, kredencialus kurdamas taikomąją programą. Tai reiškia, kad galutinio vartotojo kredencialai nenaudojami autentifikuoti. Vietoj to, kai vartotojas paleidžia programą, jis naudoja kredencialus, kuriuos sukūrė programėlės autorius. Svarbu atkreipti dėmesį, kad galutiniam vartotojui nėra suteikta tiesioginė prieiga prie ryšio, o taikomoji programa leidžia pasiekti tik ribotą veiksmų ir lentelių rinkinį.

Toliau nurodytus keturis ryšio autentifikavimo tipus galima naudoti su "SQL Server for Power Apps":

Autentifikavimo tipas "Power Apps" ryšio metodas
Integruota "Microsoft Entra" Aiškus
"SQL Server" autentifikavimas Netiesioginis / saugus netiesioginis
„Windows“ autentifikavimas Netiesioginis / saugus netiesioginis
"Windows" autentifikavimas (nebendrintas) Aiškus

Netiesioginio ryšio bendrinimo rizika

Visos naujos programos automatiškai naudoja naujus saugius numanomus ryšius. Tačiau naudojant programėles, kurios naudoja senesnius netiesioginius ryšius, tiek taikomoji programa, tiek jos ryšiai įdiegiami galutiniams vartotojams, tai reiškia, kad galutiniai vartotojai gali kurti naujas taikomąsias programas, atsižvelgdami į šiuos ryšius.

Kai autorius naudoja saugius netiesioginius ryšius, tai reiškia, kad nėra bendrinamo ryšio ir joks galutinis vartotojas negaus ryšio objekto. Taip pašalinama rizika, kad galutinio vartotojo autorius pakartotinai panaudos ryšį, kad sukurtų naują programą. Vietoj to, programa veikia su tarpinio serverio ryšiu, kuris žino apie taikomąją programą ir užmezga ryšį tik su konkrečia programa. Tarpinio serverio ryšys leidžia atlikti ribotą prieigą prie konkrečių taikomosios programos lentelių (kurti, skaityti, naujinti, naikinti) ir pasiekti konkrečias lenteles, kurios apibrėžiamos publikuojant taikomąją programą. Todėl galutiniam vartotojui suteikiami tik įgaliotieji veiksmai ir prieiga.

Senesnio stiliaus paprastas netiesioginis ryšys iš tikrųjų paskirsto ryšio objektą galutiniam vartotojui. Pavyzdžiui, jei sukuriate programą, kuri filtruoja duomenis, kurių nenorite rodyti vartotojams. Tačiau išfiltruoti duomenys yra duomenų bazėje. Tačiau pasitikite filtru, kurį sukonfigūravote, kad galutiniai vartotojai nematys tam tikrų duomenų.

Be to, įdiegus taikomąją programą, naudojant senesnio stiliaus paprastus netiesioginius ryšius, galutiniai vartotojai gali naudoti ryšį, įdiegtą su jūsų taikomąja programa, visose naujose kuriamose programėlėse. Naujose programėlėse vartotojai gali matyti duomenis, kuriuos išfiltravote savo programoje. Svarbu naudoti naujus saugius netiesioginius ryšius.

Svarbu

Kai senesnis netiesiogiai bendrinamas ryšys įdiegiamas galutiniams vartotojams, apribojimai, kuriuos galbūt įtraukėte į bendrinamą taikomąją programą (pvz., filtrus arba tik skaitymo prieigą), nebegalioja naujiems programų galutiniams vartotojams. Galutiniai vartotojai turės bet kokias autentifikavimo leidžiamas teises kaip netiesiogiai bendrinamo ryšio dalį. Todėl konvertuodami programėlę, kad ji naudotų saugius netiesioginius ryšius, taip pat turite atšaukti ryšius, kuriuos bendrinote su savo programėle. Administratoriai gali gauti programėlių ataskaitą su netiesiogiai bendrinamais ryšiais su COE priemonių rinkiniu.

Kliento ir serverio sauga

Negalite pasitikėti duomenų sauga naudodami filtravimą ar kitas kliento operacijas, kad užtikrintumėte saugą. Programos, kurioms būtinas saugus duomenų filtravimas, turi užtikrinti, kad ir vartotojo identifikavimas, ir filtravimas vyktų serveryje.

Naudokite paslaugas, pvz., "Microsoft Entra ID", užuot naudodami filtrus, sukurtus programėlėse, kai kalbama apie vartotojo tapatybę ir saugą. Ši konfigūracija užtikrina, kad serverio filtrai veikia taip, kaip tikėtasi.

Tolesnėse iliustracijose paaiškinama, kaip skiriasi saugos modeliai programose kliento ir serverio saugos modeliuose.

Kliento saugos modelis programėlėje.

Kliento saugos programos šablone [1] vartotojas autentifikuoja programą tik kliento pusėje. Tada [2] programa paprašo paslaugos informacijos ir [3] tarnyba grąžina informaciją tik remdamasi duomenų užklausa.

Serverio saugos modelis programėlėje.

Serverio saugos šablone [1] vartotojas pirmiausia autentifikuoja tarnybą, kad vartotojas būtų žinomas tarnybai. Tada [2], kai iškviečia programa, tarnyba [3] naudoja žinomą dabartinio vartotojo tapatybę, kad tinkamai filtruotų duomenis ir [4] pateiktų duomenis.

Anksčiau aprašyti numanomi skyriaus bendrinimo scenarijai yra šių dviejų modelių derinys. Vartotojas turi prisijungti prie "Power Apps" tarnybos naudodamas "Microsoft Entra" kredencialus. Toks veikimas yra serverio saugos programos modelis. Vartotojas yra žinomas naudodamas "Microsoft Entra" tapatybę tarnyboje. Todėl taikomoji programa taikoma tik tiems vartotojams, kuriems "Power Apps" oficialiai bendrino taikomąją programą.

Tačiau netiesioginis bendrinamas ryšys su "SQL Server" yra kliento saugos programos modelis. "SQL Server" tik žino, kad naudojamas konkretus vartotojo vardas ir slaptažodis. Pvz., bet kokį kliento pusės filtravimą galima apeiti naudojant naują programą naudojant tą patį vartotojo vardą ir slaptažodį.

Norėdami saugiai filtruoti duomenis serverio pusėje, naudokite įtaisytąsias "SQL Server" saugos funkcijas, pvz., eilučių lygio saugą ir konkrečių objektų (pvz., stulpelių) teisių atsisakymą konkretiems vartotojams. Šis metodas naudoja "Microsoft Entra" vartotojo tapatybę, kad filtruotų duomenis serveryje.

Kai kurios esamos įmonės paslaugos naudoja metodą, pagal kurį vartotojo tapatybė užfiksuojama verslo duomenų sluoksnyje taip pat, kaip tai daro "Microsoft Dataverse". Šiuo atveju verslo sluoksnis gali arba negali naudoti "SQL Server" eilučių lygio saugos ir tiesiogiai atmesti funkcijas. Jei ne, dažnai įjungiama sauga naudojant išsaugotas procedūras arba rodinius.

Verslo sluoksnis (serverio pusėje) naudoja žinomą vartotojo "Microsoft Entra" tapatybę, kad iškviestų išsaugotą procedūrą kaip "SQL Server" sistemos narį ir filtruotų duomenis. Tačiau "Power Apps" šiuo metu neprisijungia prie išsaugotų procedūrų. Verslo sluoksnis taip pat gali iškviesti rodinį, kuris naudoja "Microsoft Entra" tapatybę kaip "SQL Server principal". Tokiu atveju naudodami "Power Apps" prisijunkite prie rodinių, kad duomenys būtų filtruojami serveryje. Naujinant tik vartotojams skirtus rodinius, gali reikėti "Power Automate" srautų.

Taip pat žr.

Drobės programų jungčių apžvalga