Disabilitare l'autenticazione di base nelle distribuzioni di servizio app

Questo articolo illustra come disabilitare l'autenticazione di base (autenticazione con nome utente e password) durante la distribuzione del codice nelle app servizio app.

servizio app fornisce l'autenticazione di base per i client FTP e WebDeploy a cui connettersi usando le credenziali di distribuzione. Queste API sono ideali per esplorare il file system del sito, caricare driver e utilità e distribuirli con MsBuild. Tuttavia, le aziende spesso richiedono metodi di distribuzione più sicuri rispetto all'autenticazione di base, ad esempio l'autenticazione CON ID Di Microsoft Entra (vedere Tipi di autenticazione in base ai metodi di distribuzione in app Azure Servizio). Microsoft Entra usa l'autorizzazione basata su token OAuth 2.0 e offre numerosi vantaggi e miglioramenti che consentono di attenuare i problemi nell'autenticazione di base. Ad esempio, i token di accesso OAuth hanno una durata limitata utilizzabile e sono specifici per le applicazioni e le risorse per cui vengono rilasciati, in modo che non possano essere riutilizzati. Microsoft Entra consente anche di eseguire la distribuzione da altri servizi di Azure usando identità gestite.

Disabilitare l'autenticazione di base

  1. In [portale di Azure], cercare e selezionare servizio app e quindi selezionare l'app.

  2. Nel menu a sinistra dell'app selezionare Configurazione.

  3. Per Credenziali di pubblicazione di autenticazione di base selezionare Disattivato, quindi selezionare Salva.

    A screenshot showing how to disable basic authentication for Azure App Service in the Azure portal.

Per verificare che l'accesso FTP sia bloccato, provare a connettersi all'app tramite FTP/S. Dovrebbe essere visualizzato un 401 Unauthenticted messaggio.

Per verificare che l'accesso Git sia bloccato, provare la distribuzione Git locale. Dovrebbe essere visualizzato un Authentication failed messaggio.

Distribuzione senza autenticazione di base

Quando si disabilita l'autenticazione di base, i metodi di distribuzione che dipendono dall'autenticazione di base non funzionano. La tabella seguente illustra il comportamento dei vari metodi di distribuzione quando l'autenticazione di base è disabilitata e se esiste un meccanismo di fallback. Per altre informazioni, vedere Tipi di autenticazione in base ai metodi di distribuzione in app Azure Servizio.

Metodo di distribuzione Quando l'autenticazione di base è disabilitata
Distribuzione di Visual Studio Non funziona.
FTP Non funziona.
GIT locale Non funziona.
Interfaccia della riga di comando di Azure Nell'interfaccia della riga di comando di Azure 2.48.1 o versione successiva, i comandi seguenti escludono l'autenticazione di Microsoft Entra:
- az webapp up
- az webapp deploy
- az webapp deployment source config-zip
- az webapp log deployment show
- az webapp log deployment list
- az webapp log download
- az webapp log tail
- az webapp browse
- az webapp create-remote-connection
- az webapp ssh
- az functionapp deploy
- az functionapp log deployment list
- az functionapp log deployment show
- az functionapp deployment source config-zip 
Plug-in Maven o plug-in Gradle Funziona.
GitHub con servizio app servizio di compilazione Non funziona.
GitHub Actions - Un flusso di lavoro esistente di GitHub Actions che usa l'autenticazione di base non può eseguire l'autenticazione . Nel Centro distribuzione disconnettere la configurazione di GitHub esistente e creare una nuova configurazione di GitHub Actions con l'opzione di identità assegnata dall'utente.
- Se la distribuzione di GitHub Actions esistente è configurata manualmente, provare a usare un'entità servizio o openID Connessione.
- Per la nuova configurazione di GitHub Actions nel Centro distribuzione, usare l'opzione di identità assegnata dall'utente.
Distribuzione nella creazione guidata Quando l'autenticazione di base è impostata su Disabilita e distribuzione continua impostata su Abilita, GitHub Actions viene configurato con l'opzione di identità assegnata dall'utente (OpenID Connessione).
Azure Repos con servizio app servizio di compilazione Non funziona.
BitBucket Non funziona.
Azure Pipelines con l'attività AzureWebApp Funziona.
Azure Pipelines con l'attività AzureRmWebAppDeployment - Usare l'attività AzureRmWebAppDeployment più recente per ottenere il comportamento di fallback.
- Il tipo di connessione Publish Profile (PublishProfile) non funziona perché usa l'autenticazione di base. Modificare il tipo di connessione in Azure Resource Manager (AzureRM).
- In agenti pipelines non Windows funziona l'autenticazione.
- Negli agenti Windows potrebbe essere necessario modificare il metodo di distribuzione usato dall'attività . Quando si usa Distribuzione Web (DeploymentType: 'webDeploy') e l'autenticazione di base è disabilitata, l'attività esegue l'autenticazione con un token Microsoft Entra. Esistono requisiti aggiuntivi se non si usa l'agente windows-latest o se si usa un agente self-hosted. Per altre informazioni, vedere I can't Web Deploy to my app Azure Service using Microsoft Entra authentication from my Windows agent .For more information, see I can't Web Deploy to my app Azure Service using Microsoft Entra authentication from my Windows agent.
- Altri metodi di distribuzione funzionano, ad esempio la distribuzione zip o l'esecuzione dal pacchetto.

Creare un ruolo personalizzato senza autorizzazioni per l'autenticazione di base

Per impedire a un utente senza privilegi inferiori di abilitare l'autenticazione di base per qualsiasi app, è possibile creare un ruolo personalizzato e assegnare l'utente al ruolo.

  1. Nel portale di Azure, nel menu in alto cercare e selezionare la sottoscrizione in cui si vuole creare il ruolo personalizzato.

  2. Nel riquadro di spostamento a sinistra selezionare Controllo di accesso (IAM)>Aggiungi>ruolo personalizzato.

  3. Impostare la scheda Basic come desiderato, quindi selezionare Avanti.

  4. Nella scheda Autorizzazioni selezionare Escludi autorizzazioni.

  5. Trovare e selezionare Microsoft App Web, quindi cercare le operazioni seguenti:

    Operazione Descrizione
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Credenziali di pubblicazione FTP per le app servizio app.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Credenziali di pubblicazione SCM per le app servizio app.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Credenziali di pubblicazione FTP per gli slot servizio app.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Credenziali di pubblicazione SCM per gli slot servizio app.
  6. In ognuna di queste operazioni selezionare la casella Scrittura, quindi selezionare Aggiungi. Questo passaggio aggiunge l'operazione come NotActions per il ruolo.

    La scheda Autorizzazioni dovrebbe essere simile alla schermata seguente:

    A screenshot showing the creation of a custom role with all basic authentication permissions excluded.

  7. Selezionare Rivedi e crea e quindi Crea.

  8. È ora possibile assegnare questo ruolo agli utenti dell'organizzazione.

Per altre informazioni, vedere Creare o aggiornare ruoli personalizzati di Azure usando il portale di Azure

Monitorare i tentativi di autenticazione di base

Tutti gli account di accesso riusciti e tentati vengono registrati nel tipo di log di Monitoraggio AppServiceAuditLogs di Azure. Per controllare i tentativi e gli accessi riusciti in FTP e WebDeploy, seguire la procedura descritta in Inviare log a Monitoraggio di Azure e abilitare la spedizione del AppServiceAuditLogs tipo di log.

Per verificare che i log vengano inviati ai servizi selezionati, provare ad accedere tramite FTP o WebDeploy. Nell'esempio seguente viene illustrato un log dell'account Archiviazione.

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/EF90E930-9D7F-4A60-8A99-748E0EEA69DE/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.WEB/SITES/MY-DEMO-APP",
  "Category": "AppServiceAuditLogs",
  "OperationName": "Authorization",
  "Properties": {
    "User": "$my-demo-app",
    "UserDisplayName": "$my-demo-app",
    "UserAddress": "24.19.191.170",
    "Protocol": "FTP"
  }
}

Criteri di Azure consente di applicare gli standard dell'organizzazione e di valutare la conformità su larga scala. È possibile usare Criteri di Azure per controllare le app che usano ancora l'autenticazione di base e correggere eventuali risorse non conformi. Di seguito sono riportati i criteri predefiniti per il controllo e la correzione dell'autenticazione di base in servizio app:

Di seguito sono riportati i criteri corrispondenti per gli slot:

Domande frequenti

Perché viene visualizzato un avviso in Visual Studio che indica che l'autenticazione di base è disabilitata?

Visual Studio richiede l'autenticazione di base per la distribuzione nel servizio app Azure. L'avviso ricorda che la configurazione nell'app è stata modificata e non è più possibile distribuirla. L'autenticazione di base è stata disabilitata manualmente nell'app oppure i criteri dell'organizzazione impongono che l'autenticazione di base sia disabilitata per le app servizio app.