Toegangsbeperkingen Azure App Service instellen

Door toegangsbeperkingen in te stellen, kunt u een op prioriteit geordende lijst voor toestaan/weigeren definiëren waarmee de netwerktoegang tot uw app wordt bepaald. De lijst kan IP-adressen of Azure Virtual Network s bevatten. Wanneer er een of meer vermeldingen zijn, bestaat er een impliciete deny all aan het einde van de lijst.

De toegangsbeperking werkt met alle Azure App Service gehoste workloads. De workloads kunnen web-apps, API-apps, Linux-apps, Linux-container-apps en Functions omvatten.

Wanneer er een aanvraag wordt ingediend bij uw app, wordt het FROM-adres geëvalueerd op basis van de regels in uw toegangsbeperkingslijst. Als het FROM-adres zich in een subnet dat is geconfigureerd met service-eindpunten voor Microsoft.Web, wordt het bronsubnet vergeleken met de regels voor virtuele netwerken in uw lijst met toegangsbeperkingen. Als het adres geen toegang krijgt op basis van de regels in de lijst, antwoordt de service met een HTTP 403-statuscode.

De toegangsbeperkingsmogelijkheid wordt geïmplementeerd in de App Service front-endrollen, die upstream zijn van de werkrolhosts waarop uw code wordt uitgevoerd. Daarom zijn toegangsbeperkingen effectief netwerktoegangsbeheerlijsten (ACL's).

De mogelijkheid om de toegang tot uw web-app vanuit een virtueel Azure-netwerk te beperken, wordt ingeschakeld door service-eindpunten. Met service-eindpunten kunt u de toegang tot een service met meerdere tenants vanuit geselecteerde subnetten beperken. Het werkt niet om verkeer te beperken tot apps die worden gehost in een App Service Environment. Als u zich in een App Service Environment, kunt u de toegang tot uw app controleren door IP-adresregels toe te passen.

Notitie

De service-eindpunten moeten zowel aan de netwerkzijde als voor de Azure-service waarmee ze worden ingeschakeld, zijn ingeschakeld. Voor een lijst met Azure-services die service-eindpunten ondersteunen, Virtual Network service-eindpunten.

Diagram van de stroom van toegangsbeperkingen.

Toegangsbeperkingsregels beheren in de portal

Ga als volgt te werk om een toegangsbeperkingsregel toe te voegen aan uw app:

  1. Meld u aan bij Azure Portal.

  2. Selecteer Netwerken in het linkerdeelvenster.

  3. Selecteer in het deelvenster Netwerken onder Toegangsbeperkingen de optie Toegangsbeperkingen configureren.

    Schermopname van App Service deelvenster Netwerkopties in de Azure Portal.

  4. Bekijk op de pagina Toegangsbeperkingen de lijst met toegangsbeperkingsregels die voor uw app zijn gedefinieerd.

    Schermopname van de pagina Toegangsbeperkingen in de Azure Portal met de lijst met toegangsbeperkingsregels die zijn gedefinieerd voor de geselecteerde app.

    In de lijst worden alle huidige beperkingen weergegeven die op de app zijn toegepast. Als u een beperking voor het virtuele netwerk voor uw app hebt, wordt in de tabel be staan of de service-eindpunten zijn ingeschakeld voor Microsoft.Web. Als er geen beperkingen zijn gedefinieerd voor uw app, is de app vanaf elke locatie toegankelijk.

Een toegangsbeperkingsregel toevoegen

Als u een toegangsbeperkingsregel aan uw app wilt toevoegen, selecteert u in het deelvenster Toegangsbeperkingen de optie Regel toevoegen. Nadat u een regel toevoegt, wordt deze onmiddellijk van kracht.

Regels worden afgedwongen in volgorde van prioriteit, beginnend bij het laagste getal in de kolom Prioriteit. Een impliciete deny all is van kracht nadat u zelfs maar één regel toevoegt.

Ga als volgt te werk in het deelvenster Toegangsbeperking toevoegen wanneer u een regel maakt:

  1. Selecteer onder Actie de optie Toestaan of Weigeren.

    Schermopname van het deelvenster Toegangsbeperking toevoegen.

  2. Voer desgewenst een naam en beschrijving van de regel in.

  3. Voer in het vak Prioriteit een prioriteitswaarde in.

  4. Selecteer in de vervolgkeuzelijst Type het type regel.

De verschillende typen regels worden beschreven in de volgende secties.

Notitie

  • Er geldt een limiet van 512 toegangsbeperkingsregels. Als u meer dan 512 toegangsbeperkingsregels nodig hebt, raden we u aan om een zelfstandig beveiligingsproduct te installeren, zoals Azure Front Door, Azure-app Gateway of een alternatieve WAF.

Een regel op basis van IP-adressen instellen

Volg de procedure zoals beschreven in de vorige sectie, maar met de volgende toevoeging:

  • Selecteer voor stap 4 in de vervolgkeuzelijst Type de optie IPv4 of IPv6.

Geef het IP-adresblok op in Inter-Domain CIDR-notatie (Classless Inter-Domain Routing) voor zowel de IPv4- als IPv6-adressen. Als u een adres wilt opgeven, kunt u bijvoorbeeld 1.2.3.4/32 gebruiken, waarbij de eerste vier octets uw IP-adres vertegenwoordigen en /32 het masker is. De IPv4 CIDR-notatie voor alle adressen is 0.0.0.0/0. Zie Classless Inter-Domain Routing voor meer informatie over CIDR-notatie.

Een regel op basis van een service-eindpunt instellen

  • Selecteer voor stap 4 in de vervolgkeuzelijst Type de optie Virtual Network.

    Schermopname van het deelvenster Beperking toevoegen met het Virtual Network geselecteerd.

Geef de vervolgkeuzelijsten Abonnement, Virtual Network en Subnet op, die overeenkomen met de lijsten waarvoor u de toegang wilt beperken.

Met behulp van service-eindpunten kunt u de toegang tot geselecteerde subnetten van virtuele Azure-netwerken beperken. Als service-eindpunten nog niet zijn ingeschakeld met Microsoft.Web voor het subnet dat u hebt geselecteerd, worden deze automatisch ingeschakeld, tenzij u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren inschakelen. Het scenario waarin u mogelijk service-eindpunten wilt inschakelen voor de app, maar niet het subnet, is voornamelijk afhankelijk van of u over de machtigingen voor het inschakelen ervan op het subnet bent.

Als u iemand anders nodig hebt om service-eindpunten in te kunnenschakelen in het subnet, selecteert u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren. Uw app wordt geconfigureerd voor service-eindpunten, zodat deze later in het subnet kunnen worden ingeschakeld.

U kunt service-eindpunten niet gebruiken om de toegang te beperken tot apps die worden uitgevoerd in een App Service Environment. Wanneer uw app zich in een App Service Environment, kunt u de toegang tot de app controleren door IP-toegangsregels toe te passen.

Met service-eindpunten kunt u uw app configureren met toepassingsgateways of andere WAF-apparaten (Web Application Firewall). U kunt ook toepassingen met meerdere lagen configureren met beveiligde back-ends. Zie Netwerkfuncties en integratie App Service en Application Gateway service-eindpuntenvoor meer informatie.

Notitie

  • Service-eindpunten worden momenteel niet ondersteund voor web-apps die gebruikmaken van IP-gebaseerde TLS/SSL-bindingen met een virtueel IP-adres (VIP).

Een regel op basis van servicetags instellen

  • Selecteer servicetag in de vervolgkeuzelijst Type voor stap 4.

    Schermopname van het deelvenster Beperking toevoegen met het servicetagtype geselecteerd.

Elke servicetag vertegenwoordigt een lijst met IP-adresbereiken van Azure-services. Een lijst met deze services en koppelingen naar de specifieke reeksen vindt u in de servicetagdocumentatie.

Alle beschikbare servicetags worden ondersteund in toegangsbeperkingsregels. Voor het gemak is alleen een lijst met de meest voorkomende tags beschikbaar via de Azure Portal. Gebruik Azure Resource Manager of scripts om geavanceerdere regels te configureren, zoals regels met een regionaal bereik. Dit zijn de tags die beschikbaar zijn via Azure Portal:

  • ActionGroup
  • ApplicationInsightsAvailability
  • AzureCloud
  • AzureCognitiveSearch
  • AzureEventGrid
  • AzureFrontDoor.Backend
  • AzureMachineLearning
  • AzureTrafficManager
  • LogicApps

Een regel bewerken

  1. Als u een bestaande regel voor toegangsbeperkingen wilt bewerken, selecteert u op de pagina Toegangsbeperkingen de regel die u wilt bewerken.

  2. Maak in het deelvenster Toegangsbeperking bewerken uw wijzigingen en selecteer vervolgens Regel bijwerken. Bewerkingen zijn onmiddellijk van kracht, met inbegrip van wijzigingen in volgorde van prioriteit.

    Schermopname van het deelvenster Toegangsbeperking bewerken in Azure Portal, met de velden voor een bestaande toegangsbeperkingsregel.

    Notitie

    Wanneer u een regel bewerkt, kunt u niet schakelen tussen regeltypen.

Een regel verwijderen

Als u een regel wilt verwijderen, selecteert u op de pagina Toegangsbeperkingen het beletselteken (...) naast de regel die u wilt verwijderen en selecteert u vervolgens Verwijderen.

Schermopname van de pagina Toegangsbeperkingen, met het beletselteken Verwijderen naast de regel voor toegangsbeperking die moet worden verwijderd.

Geavanceerde scenario's voor toegangsbeperking

In de volgende secties worden enkele geavanceerde scenario's met toegangsbeperkingen beschreven.

Filteren op HTTP-header

Als onderdeel van een regel kunt u extra http-headerfilters toevoegen. De volgende http-headernamen worden ondersteund:

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Voor elke headernaam kunt u maximaal acht waarden toevoegen, gescheiden door komma's. De HTTP-headerfilters worden geëvalueerd na de regel zelf en beide voorwaarden moeten waar zijn om de regel toe te passen.

Regels voor meerdere bronnen

Met regels voor meerdere bronnen kunt u maximaal acht IP-adresbereiken of acht servicetags in één regel combineren. U kunt dit gebruiken als u meer dan 512 IP-adresbereiken hebt of als u logische regels wilt maken waarbij meerdere IP-adresbereiken worden gecombineerd met één http-headerfilter.

Regels voor meerdere bronnen worden op dezelfde manier gedefinieerd als u regels met één bron definieert, maar met elk bereik gescheiden door komma's.

PowerShell-voorbeeld:

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
  -Priority 100 -Action Allow

Eén IP-adres blokkeren

Wanneer u uw eerste toegangsbeperkingsregel toevoegt, voegt de service een expliciete regel alles weigeren toe met een prioriteit van 2147483647. In de praktijk is de expliciete regel Alles weigeren de laatste regel die moet worden uitgevoerd en blokkeert deze de toegang tot alle IP-adressen die niet expliciet zijn toegestaan door een regel toestaan.

Voor een scenario waarin u één IP-adres of een blok met IP-adressen expliciet wilt blokkeren, maar toegang tot alle andere adressen wilt toestaan, voegt u een expliciete regel Voor alles toestaan toe.

Schermopname van de pagina Toegangsbeperkingen in de Azure Portal, met één geblokkeerd IP-adres.

Toegang tot een SCM-site beperken

U kunt niet alleen de toegang tot uw app bepalen, maar ook de toegang beperken tot de SCM-site die door uw app wordt gebruikt. De SCM-site is zowel het web-implementatie-eindpunt als de Kudu-console. U kunt toegangsbeperkingen aan de SCM-site afzonderlijk toewijzen vanuit de app of dezelfde set beperkingen gebruiken voor zowel de app als de SCM-site. Wanneer u het selectievakje <app name> Dezelfde beperkingen als incheckt, wordt alles leeg gelaten. Als u het selectievakje uitcheckt, worden uw SCM-site-instellingen opnieuw toegepast.

Schermopname van de pagina Toegangsbeperkingen in de Azure Portal, waarin wordt weergegeven dat er geen toegangsbeperkingen zijn ingesteld voor de SCM-site of de app.

Toegang tot een specifiek Azure Front Door beperken

Verkeer van Azure Front Door naar uw toepassing is afkomstig van een bekende set IP-adresbereiken die zijn gedefinieerd in de servicetag AzureFrontDoor.Backend. Met behulp van een beperkingsregel voor servicetags kunt u verkeer beperken tot alleen afkomstig van Azure Front Door. Om ervoor te zorgen dat verkeer alleen afkomstig is van uw specifieke exemplaar, moet u de binnenkomende aanvragen verder filteren op basis van de unieke HTTP-header die Azure Front Door verzendt.

Schermopname van de pagina Toegangsbeperkingen in de Azure Portal, waarin wordt weergegeven hoe u een Azure Front Door toevoegen.

PowerShell-voorbeeld:

$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
  -HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}

Toegangsbeperkingsregels programmatisch beheren

U kunt op een van de volgende manier programmatisch toegangsbeperkingen toevoegen:

  • Gebruik de Azure CLI. Bijvoorbeeld:

    az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
      --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
    

    Notitie

    Voor het werken met servicetags, HTTP-headers of regels voor meerdere bronnen in Azure CLI is ten minste versie 2.23.0 vereist. U kunt de versie van de geïnstalleerde module controleren met: az version

  • Gebruik Azure PowerShell. Bijvoorbeeld:

    Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"
        -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24
    

    Notitie

    Voor het werken met servicetags, HTTP-headers of regels met meerdere bronnen in Azure PowerShell is ten minste versie 5.7.0 vereist. U kunt de versie van de geïnstalleerde module controleren met: Get-InstalledModule -Name Az

U kunt waarden ook handmatig instellen door een van de volgende stappen uit te gaan:

  • Gebruik een Azure REST API PUT-bewerking voor de app-configuratie in Azure Resource Manager. De locatie voor deze informatie in Azure Resource Manager is:

    management.azure.com/subscriptions/abonnements-id/resourceGroups/resourcegroepen/providers/Microsoft.Web/sites/web-app name/config/web?api-version=2020-06-01

  • Gebruik een Resource Manager sjabloon. U kunt bijvoorbeeld de resources.azure.com en het blok ipSecurityRestrictions bewerken om de vereiste JSON toe te voegen.

    De JSON-syntaxis voor het eerdere voorbeeld is:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "122.133.144.0/24",
            "action": "Allow",
            "priority": 100,
            "name": "IP example rule"
          }
        ]
      }
    }
    

    De JSON-syntaxis voor een geavanceerd voorbeeld met behulp van servicetag en http-headerbeperking is:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "AzureFrontDoor.Backend",
            "tag": "ServiceTag",
            "action": "Allow",
            "priority": 100,
            "name": "Azure Front Door example",
            "headers": {
              "x-azure-fdid": [
                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
              ]
            }
          }
        ]
      }
    }
    

Toegangsbeperkingen Azure Functions instellen

Toegangsbeperkingen zijn ook beschikbaar voor functie-apps met dezelfde functionaliteit als App Service abonnementen. Wanneer u toegangsbeperkingen inschakelen, schakelt u ook de Azure Portal code-editor voor alle niet-toegestaan IP's.

Volgende stappen

Toegangsbeperkingen voor Azure Functions
Application Gateway integratie met service-eindpunten