Bruge Microsoft SQL Server sikkert sammen med Power Apps

Du kan oprette forbindelse til og godkende SQL Server med Power Apps på forskellige måder. I denne artikel beskrives begreber, der kan være nyttige, når du skal vælge, hvordan du vil oprette forbindelse til SQL Server med en sikkerhed tilgang, der afspejler kravene til din app.

Vigtigt

Funktionen for sikre implicitte forbindelser blev udgivet i januar 2024. Microsoft opfordrer på det kraftigste alle apps, der i øjeblikket bruger implicitte forbindelser, til at konvertere til sikre implicitte forbindelser og til at ophæve forbindelser, der deles med slutbrugere.

Forskelle mellem eksplicitte, implicitte og sikre forbindelser

Der oprettes en forbindelse til SQL Server, når du opretter en app ved at forbinde Power Apps med SQL Server. Når sådanne apps publiceres og deles med andre, installeres både appen og forbindelsen til disse brugere. Med andre ord er appen og forbindelsen begge synlige for de brugere, som appen deles med.

Den godkendelsesmetode, der bruges til sådanne forbindelser, kan være eksplicit eller implicit. Vi kan også sige, at en sådan forbindelse deles eksplicit eller implicit.

  • En eksplicit delt forbindelse betyder, at slutbrugeren af applikationen skal godkendes på SQL Server med sine egne eksplicitte legitimationsoplysninger. Denne godkendelse foregår som regel bag kulisserne som en del af godkendelsen i Microsoft Entra eller Windows. Brugeren bemærker ikke engang, hvornår godkendelsen finder sted.
  • En implicit delt forbindelse betyder, at brugeren implicit bruger legitimationsoplysningerne for den konto, som appudvikleren brugte til at oprette forbindelse til og godkende datakilden under oprettelse af appen. Slutbrugerens legitimationsoplysninger bruges ikke til godkendelse. Hver gang slutbrugeren kører appen, bruger brugeren de legitimationsoplysninger, som forfatteren har oprettet appen med.
  • En sikker implicit delt forbindelse henviser til et scenarie, hvor slutbrugeren af appen implicit bruger legitimationsoplysningerne for den konto, som appudvikleren brugte til at oprette forbindelse til og godkende datakilden under oprettelse af appen. Det betyder, at slutbrugerens egne legitimationsoplysninger ikke bruges til godkendelse. Når slutbrugeren kører appen, bruges i stedet de legitimationsoplysninger, som forfatteren af appen har oprettet den med. Det er vigtigt at bemærke, at slutbrugeren ikke får direkte adgang til forbindelsen, og appen giver kun adgang til et begrænset sæt handlinger og tabeller.

Følgende fire godkendelsestyper for forbindelsen kan bruges sammen med SQL Server til Power Apps:

Godkendelsestype Power Apps-forbindelsesmetode
Microsoft Entra Integrated Explicit
SQL Server-godkendelse Implicit/sikker implicit
Windows-godkendelse Implicit/sikker implicit
Windows-godkendelse (ikke delt) Explicit

Risici ved implicit forbindelsesdeling

Alle nye programmer bruger automatisk de nye sikre, implicitte forbindelser. Men med apps, der bruger de ældre "implicitte forbindelser", installeres både appen og dens forbindelser for slutbrugere. Det betyder, at slutbrugere kan udvikle nye applikationer på baggrund af disse forbindelser.

Når en forfatter anvender sikre implicitte forbindelser, betyder det, at ingen forbindelse deles, og ingen slutbruger modtager forbindelsesobjektet. Derved fjernes risikoen for, at slutbrugeren genbruger en forbindelse for at oprette en ny app. I stedet fungerer appen med en proxyforbindelse, der er opmærksom på appen, og som kun kommunikerer med den pågældende app. Proxyforbindelsen tillader begrænsede handlinger (oprettelse, læsning, opdatering, sletning) og adgang til bestemte tabeller i appen, der defineres, når appen publiceres. Det er derfor kun autoriserede handlinger og autoriseret adgang, der tildeles til slutbrugeren.

Den ældre simple, implicitte forbindelse distribuerer faktisk et forbindelsesobjekt til slutbrugeren. Hvis du f.eks. opretter en app, der filtrerer de data ud, som brugerne ikke skal kunne se. Men de data, der er filtreret ud, findes i databasen. Men du er afhængig af det filter, du har konfigureret, for at sikre, at slutbrugerne ikke kan se bestemte data.

I forbindelse med ældre simple, implicitte forbindelser forholder det sig igen sådan, at når du har installeret appen, kan slutbrugere bruge den forbindelse, der installeres sammen med din app, i alle nye apps, de opretter. I de nye apps kan brugerne se de data, du har filtreret ud i programmet. Det er vigtigt at bruge de nye sikre, implicitte forbindelser.

Vigtigt

Når en ældre, implicit delt forbindelse er installeret for slutbrugere, er de begrænsninger, du har angivet i den app, du har delt (f.eks. filtre eller skrivebeskyttet adgang), ikke længere gældende for nye apps, slutbrugere opretter. Slutbrugerne har de rettigheder, godkendelsen tillader som en del af en implicit delt forbindelse. Så når du konverterer en app til at bruge sikre, implicitte forbindelser, skal du også ophæve de forbindelser, du delte med din app. Administratorer kan få en rapport over apps med implicitte, delte forbindelser via COE Toolkit.

Sikkerhed for klient og server

Du kan ikke regne med, at data er beskyttede alene gennem filtrering eller andre handlinger på klientsiden. Applikationer, der kræver sikker filtrering af data, skal sikre, at både brugeridentifikation og -filtrering foregår på serveren.

Brug tjenester som f.eks. Microsoft Entra ID i stedet for de filtre, der er udviklet i appsene, når det drejer sig om brugeridentitet og sikkerhed. Denne konfiguration sikrer, at filtre på serversiden fungerer som forventet.

I følgende illustrationer forklares det, hvordan sikkerhedsmønstrene i appsene adskiller sig fra hinanden for sikkerhedsmodeller på henholdsvis klient- og serversiden.

Sikkerhedsmønster på klientsiden i en app.

I en app med sikkerhedsmønster på klientsiden [1] godkender brugeren kun applikationen på klientsiden. Derefter [2] anmoder applikationen om oplysninger fra tjenesten, og [3] tjenesten returnerer oplysningerne udelukkende på baggrund af dataanmodningen.

Sikkerhedsmønster på serversiden i en app.

I et sikkerhedsmønster på serversiden [1] godkender brugeren først tjenesten, så brugeren er kendt for tjenesten. Når der derefter [2] foretages et opkald fra applikationen, bruger tjenesten [3] den aktuelle brugers kendte identitet til at filtrere dataene korrekt og [4] returnerer dataene.

De implicitte delingsscenarier for afdelinger, der er beskrevet ovenfor, er en kombination af disse to mønstre. Brugeren skal logge på tjenesten Power Apps ved hjælp af Microsoft Entra-legitimationsoplysninger. Denne funktionsmåde benytter mønsteret for appen med serversikkerhed. Brugeren genkendes ved hjælp af Microsoft Entra-identiteten i tjenesten. Appen er derfor begrænset til det sæt af brugere, som Power Apps formelt har delt applikationen med.

Den implicitte delte forbindelse til SQL Server benytter til gengæld mønsteret for appen med klientsikkerhed. SQL Server ved kun, at der bruges et bestemt brugernavn og en bestemt adgangskode. Enhver filtrering på klientsiden kan f.eks. omgås med en ny applikation ved hjælp af samme brugernavn og adgangskode.

Hvis du vil filtrere data på serversiden sikkert, skal du bruge de indbyggede sikkerhedsfunktioner i SQL Server, f.eks. sikkerhed på rækkeniveau for rækker, og nægte tilladelserne til at bruge bestemte objekter (f.eks. kolonner) for bestemte brugere. Denne fremgangsmåde benytter Microsoft Entra-brugeridentiteten til at filtrere dataene på serveren.

Visse eksisterende forretningstjenester har benyttet en fremgangsmåde, hvor brugeridentiteten hentes i et forretningsdatalag på stort set samme måde, som Microsoft Dataverse gør det. I dette tilfælde bruger forretningslaget muligvis SQL Server's sikkerhed på rækkeniveau og afviser funktioner direkte. Hvis det ikke er tilfældet, sker det ofte, at sikkerheden aktiveres ved hjælp af lagrede procedurer eller visninger.

I forretningslaget (på serversiden) bruges en kendt Microsoft Entra-brugeridentitet til at aktivere en gemt procedure som en SQL Server-sikkerhedskonto og filtrere dataene. Power Apps opretter dog ikke forbindelse til lagrede procedurer i øjeblikket. Et forretningslag kan også aktivere en visning, der bruger Microsoft Entra-identiteten som SQL Server-sikkerhedskonto. I dette tilfælde kan du bruge Power Apps til at oprette forbindelse til visningerne, så dataene filtreres på serversiden. På den måde afsløres kun visninger for bruger, som har brug for Power Automate-flows til opdateringer.

Se også

Oversigt over connectorer til lærredapps