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
Sono disponibili due diversi controlli per l'autenticazione di base. In particolare:
- Per la distribuzione FTP, l'autenticazione di base è controllata dal
basicPublishingCredentialsPolicies/ftp
flag (opzione FTP Basic Auth Publishing Credentials nel portale). - Per altri metodi di distribuzione che usano l'autenticazione di base, ad esempio Visual Studio, Git locale e GitHub, l'autenticazione di base è controllata dal
basicPublishingCredentialsPolicies/scm
flag (opzione SCM Basic Auth Publishing Credentials nel portale).
Nel portale di Azure cercare e selezionare Servizi app, quindi selezionare la propria app.
Nel menu a sinistra dell'app selezionare Configurazione>Impostazioni generali.
Per SCM Basic Auth Publishing Credentials (Credenziali di pubblicazione autenticazione di base SCM) o FTP Basic Auth Publishing Credentials (Credenziali di pubblicazione autenticazione di base FTP), selezionare No e quindi selezionare Salva.
Per verificare che l'accesso FTP sia bloccato, provare a connettersi all'app tramite FTP/S. Dovrebbe essere visualizzato un 401 Unauthenticated
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 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 | Fabbrica. |
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 esistente di GitHub Actions è configurata manualmente, provare a usare un'entità servizio o OpenID Connect. - 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 Connect). |
Azure Repos con servizio app servizio di compilazione | Non funziona. |
BitBucket | Non funziona. |
Azure Pipelines con l'attività AzureWebApp | Fabbrica. |
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 con privilegi inferiori di abilitare l'autenticazione di base per qualsiasi app, è possibile creare un ruolo personalizzato e assegnare l'utente al ruolo.
Nel portale di Azure, nel menu in alto cercare e selezionare la sottoscrizione in cui si vuole creare il ruolo personalizzato.
Nel riquadro di spostamento a sinistra selezionare Controllo di accesso (IAM)>Aggiungi>ruolo personalizzato.
Impostare la scheda Basic come desiderato, quindi selezionare Avanti.
Nella scheda Autorizzazioni selezionare Escludi autorizzazioni.
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. 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:
Selezionare Rivedi e crea e quindi Crea.
È 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. L'esempio seguente mostra un log dell'account di archiviazione.
{ "time": "2023-10-16T17:42:32.9322528Z", "ResourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 correlati all'autenticazione di base
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:
- Criteri di controllo per FTP
- Criteri di controllo per SCM
- Criteri di correzione per FTP
- Criteri di correzione per SCM
Di seguito sono riportati i criteri corrispondenti per gli slot:
- Criteri di controllo per FTP
- Criteri di controllo per SCM
- Criteri di correzione per FTP
- Criteri di correzione per SCM
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.