Uit die dokumentasie:Azure App Service is 'n HTTP-gebaseerde diens vir die aanbied van webtoepassings, REST API's, en mobiele agtergronde. Jy kan ontwikkel in jou gunsteling taal, of dit .NET, .NET Core, Java, Ruby, Node.js, PHP, of Python is. Toepassings loop en skaal maklik op beide Windows en Linux-gebaseerde omgewings.
Elke app loop binne 'n sandbox, maar isolasie hang af van App Service planne.
Apps in Gratis en Gedeelde vlakke loop op gedeelde VM's
Apps in Standaard en Premium vlakke loop op toegewyde VM's
Let daarop dat geen van daardie isolasies voorkom dat ander algemene web kwesbaarhede (soos lêeroplaai, of inspuitings) voorkom nie. En as 'n bestuursidentiteit gebruik word, kan dit in staat wees om sy toestemmings te kompromitteer.
Enumerasie
# List webappsazwebapplist## Less informationazwebapplist--query"[].{hostName: defaultHostName, state: state, name: name, resourcegroup: resourceGroup}"# Get access restrictionsazwebappconfigaccess-restrictionshow--resource-group<res-group>-n<name># Remove access restrictionsazwebappconfigaccess-restrictionremove--resource-group<res-group>-n<name>--rule-name<rule-name># Get snapshotsazwebappconfigsnapshotlist--resource-group<res-group>-n<name># Restore snapshotazwebappconfigsnapshotrestore-g<res-group>-n<name>--time2018-12-11T23:34:16.8388367# Restart webappazwebapprestart--name<name>--resource-group<res-group>
# Get App Services and Function AppsGet-AzWebApp# Get only App ServicesGet-AzWebApp|?{$_.Kind-notmatch"functionapp"}
#!/bin/bash# Get all App Service and Function Apps# Define Azure subscription IDazure_subscription="your_subscription_id"# Log in to Azureazlogin# Select Azure subscriptionazaccountset--subscription $azure_subscription# Get all App Services in the specified subscriptionlist_app_services=$(azappservicelist--query"[].{appServiceName: name, group: resourceGroup}"-otsv)# Iterate over each App Serviceecho"$list_app_services"|while IFS=$'\t'read-rappServiceNamegroup; do# Get the type of the App Serviceservice_type=$(azappserviceshow--name $appServiceName --resource-group $group --query"kind"-otsv)# Check if it is a Function App and print its nameif [ "$service_type"=="functionapp" ]; thenecho"Function App Name: $appServiceName"fidone
Verkry geloofsbriewe & kry toegang tot die webapp-kode
# Get connection strings that could contain credentials (with DBs for example)azwebappconfigconnection-stringlist--name<name>--resource-group<res-group>## Check how to use the DBs connection strings in the SQL page# Get credentials to access the code and DB credentials if configured.azwebappdeploymentlist-publishing-profiles--resource-group<res-group>-n<name># Get git URL to access the codeazwebappdeploymentsourceconfig-local-git--resource-group<res-group>-n<name># Access/Modify the code via gitgitclone'https://<username>:<password>@name.scm.azurewebsites.net/repo-name.git'## In my case the username was: $nameofthewebapp and the password some random chars## If you change the code and do a push, the app is automatically redeployed
Toegang tot die Docker-container met die webapp via ssh:
# Get ssh sessionazwebappcreate-remote-connection--subscription<SUBSCRIPTION-ID>--resource-group<RG-NAME>-n<APP-SERVICE-NAME>## If successfull you will get a message such as:#Verifying if app is running....#App is running. Trying to establish tunnel connection...#Opening tunnel on port: 39895#SSH is available { username: root, password: Docker! }## So from that machine ssh into that port (you might need generate a new ssh session to the jump host)sshroot@127.0.0.1-p39895
Funksie Apps Basiese Inligting
Azure Functions is 'n serverless oplossing wat jou toelaat om minder kode te skryf, minder infrastruktuur te onderhou, en koste te bespaar. In plaas daarvan om te bekommer oor die ontplooiing en onderhoud van bedieners, bied die wolkinfrastruktuur al die op-datum hulpbronne wat nodig is om jou toepassings aan die gang te hou.
In die Azure-portaal word integrasie tussen Azure Functions en Azure API Bestuur gefasiliteer, wat toelaat dat HTTP-trigger funksie eindpunte as REST APIs blootgestel word. Die APIs wat op hierdie manier blootgestel word, word beskryf met 'n OpenAPI-definisie, wat 'n standaard, taal-onafhanklike koppelvlak aan RESTful APIs bied.
Funksie Apps ondersteun Gemanagte Identiteite.
Boonop kan 'n Funksie App sekere eindpunte hê wat 'n sekere vlak van outentisering vereis, soos "admin" of "anoniem".
'n Aanvaller kan probeer om toegang te verkry tot die anoniem toegelate eindpunte om die beperkings te omseil en toegang te verkry tot sensitiewe data of funksionaliteit.