Saugus „Microsoft SQL Server“ naudojimas su „Power Apps“
Yra skirtingų būdų prisijungti ir autentifikuoti prie SQL serverio naudojant „Power Apps“. Šiame straipsnyje aprašomos sąvokos, kurios gali būti naudingos norint pasirinkti, kaip prisijungti prie SQL serverio naudojant saugos metodą, atitinkantį jūsų programos reikalavimus.
Svarbu
Saugių numanomų ryšių funkcija buvo išleista 2024 m. sausio mėn. "Microsoft" primygtinai ragina visas programėles, šiuo metu naudojančias numanomus ryšius, konvertuoti į saugius numanomus ryšius ir atšaukti ryšius, bendrinamus su galutiniais vartotojais.
Skirtumas tarp aiškių, numanomų ir saugių numanomų ryšių
Ryšys su SQL serveriu sukuriamas, kai sukuriate programą, naudodami „Power Apps“, jungiamą prie SQL serverio. Kai tokios programos publikuojamos ir bendrinamos su kitais, ir programa, ir ryšys įdiegiamas tiems vartotojams. Kitaip tariant, programa ir ryšys matomas —vartotojams, su kuriais bendrinamos programos.
Autentifikavimo būdas, naudojamas tokiems ryšiams, gali būti aiškus arba numanomas. Taip pat galime nurodyti, kad toks ryšys bendrinamas aiškiai arba numanomai.
- Aiškiai bendrinamas ryšys reiškia, kad galutinis programos naudotojas turi autentifikuoti SQL serverį su savo aiškiaisi kredencialais. Paprastai šis autentifikavimas vyksta užkulisiuose kaip "Windows" autentifikavimo rankos paspaudimo dalis Microsoft Entra . Vartotojas net nepastebi, kai vyksta autentifikavimas.
- Numanomai bendrinamas ryšys reiškia, kad naudotojas numanomai naudoja kliento kredencialus, kuriuos programos kūrėjas naudojo jungdamasis ir autentifikuodamas duomenų šaltinį kuriant programą. Galutinio vartotojo kredencialai nėra naudojami autentifikavimui. Kiekvieną kartą, kai galutinis vartotojas paleidžia programą, jis naudoja kredencialus, su kuriais autorius sukūrė programą.
- Saugus netiesiogiai bendrinamas ryšys reiškia scenarijų, kai galutinis programos vartotojas netiesiogiai naudoja paskyros kredencialus, kuriuos programos kūrėjas naudojo prisijungdamas ir autentifikuodamas duomenų šaltinis kurdamas programą. Tai reiškia, kad paties galutinio vartotojo kredencialai nenaudojami autentifikacijai. Vietoj to, kai vartotojas paleidžia programą, jis naudoja kredencialus, su kuriais programos autorius ją sukūrė. Svarbu pažymėti, kad galutiniam vartotojui nesuteikiama tiesioginė prieiga prie ryšio, o programa suteikia prieigą tik prie riboto veiksmų ir lentelių rinkinio.
Šiuos keturis ryšio autentifikavimo tipus galima naudoti su SQL serveriu, skirtu programai „Power Apps“:
Autentifikavimo tipas | „Power Apps“ ryšio metodas |
---|---|
Microsoft Entra Integruota | Aiškus |
„SQL Server“ autentifikavimas | Numanomas / saugus numanomas |
„Windows“ autentifikavimas | Numanomas / saugus numanomas |
"Windows" autentifikavimas (nebendrinamas) | Aiškus |
Numanomo ryšio bendrinimo rizika
Visos naujos programos automatiškai naudoja naujus saugius numanomus ryšius. Tačiau naudojant programas, kuriose naudojami senesni "numanomi ryšiai", tiek programa, tiek jos ryšiai yra įdiegti galutiniams vartotojams, tai reiškia, kad galutiniai vartotojai gali kurti naujas programas pagal tuos ryšius.
Kai autorius naudoja saugius numanomus ryšius, tai reiškia, kad joks ryšys nėra bendrinamas ir joks galutinis vartotojas negauna ryšio objekto. Tai pašalina riziką, kad galutinio vartotojo autorius pakartotinai naudos ryšį, kad sukurtų naują programą. Vietoj to, programa veikia su tarpinio serverio ryšiu, kuris žino apie programą ir bendrauja tik su ta konkrečia programa. Tarpinio serverio ryšys leidžia atlikti ribotus veiksmus (kurti, skaityti, naujinti, naikinti) ir pasiekti konkrečias programos lenteles, kurios apibrėžiamos paskelbus programą. Todėl galutiniam vartotojui suteikiami tik įgalioti veiksmai ir prieiga.
Senesnio stiliaus paprastas numanomas ryšys iš tikrųjų paskirsto ryšio objektą galutiniam vartotojui. Pavyzdžiui, jei kuriate programą, kuri išfiltruoja duomenis, kurių nenorite, kad naudotojai matytų. Tačiau išfiltruoti duomenys yra duomenų bazėje. Tačiau naudojate sukonfigūruotą filtrą, kad užtikrintumėte, jog galutiniai vartotojai nematys tam tikrų duomenų.
Vėlgi, naudojant senesnio stiliaus paprastus numanomus ryšius, įdiegę programą, galutiniai vartotojai gali naudoti ryšį, įdiegtą su jūsų programa, bet kurioje naujoje sukurtoje programoje. Naujose programose vartotojai gali matyti duomenis, kuriuos išfiltravote savo taikomojoje programoje. Svarbu naudoti naujus saugius numanomus ryšius.
Svarbu
Kai galutiniams naudotojams įdiegiamas senesnis netiesiogiai bendrinamas ryšys, apribojimai, kuriuos galbūt nustatėte bendrinamoje programoje (pvz., filtrai arba tik skaitymo prieiga), nebegalioja naujoms galutinių vartotojų sukurtoms programoms. Galutiniai vartotojai turės visas teises, kurias suteikia autentifikavimas kaip numanomo bendrai naudojamo ryšio dalį. Todėl konvertuodami programą naudoti saugius numanomus ryšius, taip pat turite atšaukti ryšius, kuriuos bendrinote su programa. Administratoriai gali gauti ataskaitą apie programas su netiesiogiai bendrinamais ryšiais su COE įrankių rinkiniu.
Klientų ir serverio sauga
Filtruojant ar vykdant kitas kliento operacijas, kurios bus saugios, duomenų saugos naudoti negalima. Taikomosios programos, kurias naudojant reikia saugiai filtruoti duomenis, turi užtikrinti, kad serveryje bus naudojamas vartotojo atpažinimas ir filtravimas.
Naudokite tokias paslaugas kaip Microsoft Entra ID, o ne pasikliaukite programose sukurtais filtrais, kai kalbama apie vartotojo tapatybę ir saugą. Ši konfigūracija užtikrina, kad serverio filtrai veikia taip, kaip tikėjotės.
Toliau pateiktose iliustracijose paaiškinta, kaip programų saugos modeliai skiriasi kliento ir serverio saugos modeliais.
Pagal kliento saugos programos modelį [1] vartotojas autentifikuoja tik kliento programos autentifikavimo teises. Tada [2] programa prašo paslaugos informacijos, o paslauga [3] grąžina informaciją tik pagal duomenų užklausą.
Serverio dalies saugos modelyje [1] naudotojas pirmiausia autentifikuoja paslaugą, kad vartotojas būtų žinimas paslaugai. Tada, [2] kai iškviečiama iš programos, paslauga [3] naudoja žinomą dabartinio vartotojo tapatybę duomenims tinkamai filtruoti, o [4] grąžina duomenis.
Aukščiau aprašyti numanomi skyriaus bendrinimo scenarijai yra šių dviejų modelių derinys. Vartotojas turi prisijungti prie Power Apps paslaugos naudodamas Microsoft Entra kredencialus. Toks elgesys yra serverio saugos programos modelis. Vartotojas yra žinomas naudojant Microsoft Entra paslaugos tapatybę. Todėl programą gali naudoti tik tie vartotojai, kuriems „Power Apps“ formaliai bendrina programą.
Tačiau numanomas bendrai naudojamas ryšys su SQL serveriu yra kliento saugos programos modelis. SQL serveris žino tik tai, kad naudojamas konkretus vartotojo vardas ir slaptažodis. Pavyzdžiui, bet kokį filtravimą kliento pusėje galima apeiti naudojant naują programą, kurioje naudojamas tas pats vartotojo vardas ir slaptažodis.
Norėdami saugiai filtruoti duomenis serverio pusėje, naudokite SQL serveryje įtaisytas saugos funkcijas, pvz., eilutės lygio apsaugą eilutėms ir atmeskite leidimus konkretiems objektams (pvz., stulpeliams) konkretiems vartotojams. Šis metodas naudoja Microsoft Entra vartotojo tapatybę duomenims serveryje filtruoti.
Kai kurios esamos korporatyvinės paslaugos naudoja metodą, pagal kurį vartotojo tapatybė verslo duomenų lygyje užfiksuota beveik taip pat kaip „Microsoft Dataverse“ verslo duomenų lygyje. Šiuo atveju verslo sluoksnis gali naudoti arba nenaudoti SQL serverio eilutės lygio saugą ir tiesiogiai atmesti funkcijas. Jei taip nėra, dažnai būna, kad sauga įjungiama 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 serverio pagrindinę procedūrą ir filtruotų duomenis. Tačiau šiuo metu „Power Apps“ neprisijungia prie išsaugotų procedūrų. Verslo sluoksnis taip pat gali iškviesti rodinį, Microsoft Entra kuris naudoja tapatybę kaip SQL serverio pagrindinį. Tokiu atveju naudokite „Power Apps“, kad prisijungtumėte prie rodinių, kad duomenys būtų filtruojami serveryje. Norint vartotojams rodyti tik rodinius, gali reikėti „Power Automate“ atnaujinimų srautų.