Endepunktfiltrering for kobling (forhåndsversjon)
[Denne artikkelen inneholder dokumentasjon for forhåndsversjonen og kan bli endret.]
Med endepunktfiltrering for kobling kan administratorer styre hvilke spesifikke endepunktutviklere som kan kobles til når de bygger apper, flyter eller nettpratroboter. Den konfigureres i en policy for hindring av datatap, og den er eksklusivt tilgjengelig for seks koblinger:
- HTTP
- HTTP med Microsoft Entra ID (AD)
- HTTP Webhook
- SQL Server (inkluderer bruk av SQL Server Connector for å få tilgang til Azure Synapse-datalager)
- Azure Blob Storage
- SMTP
Når en utvikler prøver å koble appen, flyten eller nettpratroboten til et blokkert endepunkt, vil de støte på en feilmelding om hindring av datatap.
Advarsel!
Regler for endepunktfiltrering håndheves ikke på miljøvariabler, egendefinerte inndata eller endepunkter som er dynamisk opprettet under kjøretid. Bare statiske endepunkter evalueres i utformingene for app, flyt eller nettpratrobot. Hvis du vil ha mer informasjon, kan du se Kjente begrensninger.
Viktig
Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemelding.
Legg regler for endepunktfiltrering i policyene for hindring av datatap
Kolonnen Konfigurerbart endepunkt på siden Forhåndsbygde koblinger i Datapolicyer angir om endepunktfiltreringskapasiteten støttes for koblingen.
Hvis verdien for kolonnen Konfigurerbart endepunkt er Ja, kan du bruke denne funksjonen ved å høyreklikke og deretter velge Konfigurer kobling>Endepunkter for kobling.
Dette åpner et sidepanel der du kan angi en ordnet liste over URL-mønstre av typen Tillat eller Nekt. Den siste raden i listen vil alltid være en regel for jokertegnet (*
), som gjelder for alle endepunkter i den koblingen. Som standard angis mønsteret *
som Tillat for nye DLP-policyer, men du kan merke dette som Tillat eller Avslå.
Legg til nye regler
Du kan legge til nye regler ved å velge Legg til endepunkt. Nye regler legges til på slutten av mønsterlisten, som den nest siste regelen. Dette skyldes at *
alltid er den siste oppføringen i listen. Du kan imidlertid oppdatere rekkefølgen på mønstrene ved å bruke rullegardinlisten Ordne eller velge Flytt opp eller Flytt ned.
Når du har lagt til et mønster, kan du redigere eller slette disse mønstrene ved å merke en bestemt rad og deretter velge Slett.
Når du har lagret reglene endepunktfiltrering for kobling og policyen for hindring av datatap som de er definert i, blir de umiddelbart håndhevet i de målrettede miljøene. Nedenfor finner du et eksempel der en utvikler prøvde å koble skyflyten sin til et HTTP-endepunkt som ikke er tillatt.
Kjente begrensninger
Regler for endepunktfiltrering håndheves ikke på miljøvariabler og egendefinerte inndata og endepunkter med dynamisk binding under kjøretid. Bare statiske endepunkter som er kjent og valgt ved bygging av en app, flyt eller chatrobot under utformingstiden, håndheves. Dette betyr at koblingsendepunktsfiltrering for SQL Server og Azure Blob Storage håndheves ikke hvis tilkoblingene er godkjent med Microsoft Entra ID. I de to skjermbildene nedenfor har en utvikler bygd en skyflyt som definerer SQL Server og databasen inne i variabler, og deretter bruker de variablene som inndata til tilkoblingsdefinisjonen. Endepunktfiltreringsreglene evalueres derfor ikke, og skyflyten kan kjøres uten problemer.
Enkelte Power Apps som ble publisert før 1. oktober 2020, må publiseres på nytt for at reglene for koblingshandling for hindring av datatap og reglene for koblingsendepunkt skal håndheves. Skriptet nedenfor gjør det mulig for administratorer og utviklere å identifisere apper som må publiseres på nytt for å overholde disse nye reglene for detaljert DLP-kontroll:
Add-PowerAppsAccount $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z" ForEach ($app in Get-AdminPowerApp){ $versionAsDate = [datetime]::Parse($app.LastModifiedTime) $olderApp = $versionAsDate -lt $GranularDLPDate $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) If($($olderApp -and !$wasBackfilled)){ Write-Host "App must be republished to be Granular DLP compliant: " $app.AppName " " $app.Internal.properties.displayName " " $app.Internal.properties.owner.email } Else{ Write-Host "App is already Granular DLP compliant: " $app.AppName } }
Inndataformater av og eksempler på endepunkter
Hver kobling har forskjellig oppfattelse av hva endepunkt betyr. Noen endepunkter kan også defineres i flere formater. Derfor kan endepunkter angis i alle mulige formater for å forhindre at opprettere bruker dem når de oppretter apper og flyter. Administratorer kan angi hele endepunktnavnet eller bruke mønster som samsvarer med jokertegn (*
) når de oppretter en endepunktfiltreringsregel. Disse reglene legges inn og presenteres i en sortert liste over endepunktmønstre, noe som betyr at de evalueres i stigende rekkefølge etter tall. Vær oppmerksom på at den siste regelen for en gitt kobling alltid er *
Tillat eller *
Avslå. Tillat er standardinnstillingen, som kan endres til Avslå.
Veiledningen nedenfor beskriver hvordan du angir endepunkter for koblinger når du oppretter regler som tillater eller avslår dem.
SQL Server
Endepunkter for SQL Server-tilkobling må vises i <Server_name, database_name>
-format. Ting å huske på:
Servernavnet kan angis i forskjellige formater av beslutningstakere. For å virkelig adressere et endepunkt må det derfor angis i alle mulige formater. Eksempelvis kan lokale forekomster være i formatet
<machine_name\named_instance, database_name>
eller<IP address, custom port, database_name>
. I dette tilfellet må du bruke tillatings- eller blokkeringsregler i begge formater for et endepunkt. Eksempel:- Blokker
WS12875676\Servername1,MktingDB
- Blokker
11.22.33.444,1401,MktingDB
- Blokker
Det finnes ingen spesiell logikk for håndtering av relative adresser, for eksempel
localhost
. Hvis du blokkerer*localhost*
, blokkeres derfor opprettere fra å bruke endepunkter ved hjelp avlocalhost
som en del av SQL Server-endepunkt. Det vil imidlertid ikke hindre dem i å få tilgang til endepunkt ved å bruke den absolutte adressen, med mindre den absolutte adressen også har blitt blokkert av administratoren.
Følgende er eksempler:
Tillat bare Azure SQL Server-forekomster:
- Tillat
*.database.windows.net*
- Avslå
*
- Tillat
Tillat bare et bestemt IP-område: (Vær oppmerksom på at IP-adressene som ikke er tillatt, fremdeles kan angis av oppretteren i
<machine_name\named_instance>
-format.)- Tillat
11.22.33*
- Avslå
*
- Tillat
Dataverse
Dataverse-endepunkter representeres av organisasjons-ID-en, for eksempel 7b97cd5c-ce38-4930-9497-eec2a95bf5f7 Vær oppmerksom på at bare den vanlige Dataverse-koblingen kan filtreres endepunkt for øyeblikket. Dataverse Dynamics- og Dataverse-aktuelle koblinger er ikke i omfanget. Den lokale forekomsten av Dataverse (også kalt gjeldende miljø) kan aldri blokkeres for bruk i et miljø. Dette betyr at opprettere alltid har tilgang til det gjeldende miljøet i et hvilket som helst Dataverse-miljø.
Derfor er det en regel som sier følgende:
- Tillat
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Avslå
*
Betyr faktisk følgende:
- Tillat
Dataverse current environment
- Tillat
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Avslå
*
Tillat Dataverse current environment
er alltid implisitt den første regelen i Dataverse-endepunktfiltreringslisten for et gitt miljø.
Azure Blob Storage
Azure Blob Storage-endepunkter er representert av Azure Storage-kontonavnet.
SMTP
SMTP-endepunkter er representert i <SMTP server address, port number>
-format.
Følgende er et eksempelscenario:
- Avslå
smtp.gmail.com,587
- Tillat
*
HTTP med Microsoft Entra ID, HTTP-webhook og HTTP-koblinger
Endepunktene for alle HTTP-koblinger representeres av et URL-mønster. Handlingen Hent webressurs i HTTP med Microsoft Entra-kobling er utenfor omfanget.
Følgende er et eksempelscenario:
Tillat bare tilgang til Azure-abonnementssiden i https://management.azure.com/
.
- Tillat
https://management.azure.com/subscriptions*
- Avslå
https://management.azure.com/*
- Avslå
*
PowerShell-støtte for endepunktfiltrering
Konfigurere endepunktfiltreringsregler for en policy
Objektet som inneholder endepunktfiltreringsregler for en policy, kalles koblingskonfigurasjoner nedenfor.
Koblingskonfigurasjonsobjektet har følgende struktur:
$ConnectorConfigurations = @{
connectorActionConfigurations = @() # used for connector action rules
endpointConfigurations = @( # array – one entry per
@{
connectorId # string
endpointRules = @( # array – one entry per rule
@{
order # number
endpoint # string
behavior # supported values: Allow/Deny
}
)
}
)
}
Notater
- Den siste regelen for hver kobling må alltid brukes på nettadresse
*
for å sikre at alle nettadresser dekkes av reglene. - Ordreegenskapen for reglene for hver kobling må fylles ut med tall 1 til N, der N er antall regler for den koblingen.
Hente eksisterende koblingskonfigurasjoner for en DLP-policy
Get-PowerAppDlpPolicyConnectorConfigurations
Opprette koblingskonfigurasjoner for en DLP-policy
New-PowerAppDlpPolicyConnectorConfigurations
Oppdatere koblingskonfigurasjoner for en DLP-policy
Set-PowerAppDlpPolicyConnectorConfigurations
Eksempel
Mål:
For SQL Server-koblingen:
- Avslå database "testdatabase" for server "myservername.database.windows.net"
- Tillat alle andre databaser for serveren "myservername.database.windows.net"
- Avslå alle andre servere
For SMTP-koblingen:
- Tillat Gmail (serveradresse: smtp.gmail.com, port: 587)
- Avslå alle andre adresser
For HTTP-koblingen:
- Tillat endepunkter
https://mywebsite.com/allowedPath1
oghttps://mywebsite.com/allowedPath2
- Avslå alle andre URLer
Obs!
I følgende cmdlet refererer PolicyName til den unike GUIDen. Du kan hente DLP GUID ved å kjøre cmdleten Get-DlpPolicy.
$ConnectorConfigurations = @{
endpointConfigurations = @(
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql"
endpointRules = @(
@{
order = 1
endpoint = "myservername.database.windows.net,testdatabase"
behavior = "Deny"
},
@{
order = 2
endpoint = "myservername.database.windows.net,*"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp"
endpointRules = @(
@{
order = 1
endpoint = "smtp.gmail.com,587"
behavior = "Allow"
},
@{
order = 2
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "http"
endpointRules = @(
@{
order = 1
endpoint = "https://mywebsite.com/allowedPath1"
behavior = "Allow"
},
@{
order = 2
endpoint = "https://mywebsite.com/allowedPath2"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
}
)
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations