Deshabilitación de la autenticación básica en implementaciones de App Service

En este artículo se muestra cómo deshabilitar la autenticación básica (autenticación de nombre de usuario y contraseña) al implementar código en aplicaciones de App Service.

App Service proporciona autenticación básica para que los clientes FTP y WebDeploy se conecten a él mediante credenciales de implementación. Estas API son excelentes para explorar el sistema de archivos del sitio, cargar controladores y utilidades e implementar con MsBuild. Sin embargo, las empresas suelen requerir métodos de implementación más seguros que la autenticación básica, como la autenticación de Microsoft Entra ID (consulte Tipos de autenticación por métodos de implementación en Azure App Service). Microsoft Entra ID usa la autorización basada en tokens de OAuth 2.0 y tiene muchas ventajas y mejoras que ayudan a mitigar los problemas de la autenticación básica. Por ejemplo, los tokens de acceso de OAuth tienen una duración útil limitada y son específicos de las aplicaciones y los recursos para los que se emiten, por lo que no se pueden reutilizar. Microsoft Entra ID también le permite implementar desde otros servicios de Azure mediante identidades administradas.

Deshabilitación de la autenticación básica

Hay disponibles dos controles diferentes para la autenticación básica. Específicamente:

  • Para implementación de FTP, la autenticación básica se controla mediante la marca de basicPublishingCredentialsPolicies/ftp (opción de credenciales de publicación de autenticación básica de FTP en el portal).
  • Para otros métodos de implementación que usan la autenticación básica, como Visual Studio, Git local y GitHub, la autenticación básica se controla mediante la marca basicPublishingCredentialsPolicies/scm (opción SCM Basic Auth Publishing Credentials en el portal).
  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

  2. En el menú izquierdo de la aplicación, seleccione configuración>Configuración general.

  3. Para credenciales de publicación de autenticación básica de SCM o credenciales de publicación de autenticación básica de FTP, seleccione Desactivadoy, a continuación, seleccione Guardar.

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

Para confirmar que el acceso FTP está bloqueado, intente conectarse a la aplicación mediante FTP/S. Debería recibir un mensaje 401 Unauthenticted.

Para confirmar que el acceso a Git está bloqueado, pruebe la implementación local de Git. Debería recibir un mensaje Authentication failed.

Implementación sin autenticación básica

Al deshabilitar la autenticación básica, los métodos de implementación que dependen de ella dejarán de funcionar.

En la tabla siguiente se muestra cómo se comportan varios métodos de implementación cuando se deshabilita la autenticación básica y si hay algún mecanismo de reserva. Para más información, consulte Tipos de autenticación por métodos de implementación en Azure App Service.

Método de implementación Cuando la autenticación básica está deshabilitada
Implementación de Visual Studio No funciona.
FTP No funciona.
Git local No funciona.
CLI de Azure En la CLI de Azure 2.48.1 o posteriores, los siguientes comandos usan la autenticación de 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 
Complemento Maven o complemento Gradle Funciona.
GitHub con servicio de compilación App Service No funciona.
Acciones de GitHub - Un flujo de trabajo de Acciones de GitHub existente que usa autenticación básica no se puede autenticar. En el Centro de implementación, desconecte la configuración de GitHub existente y cree una nueva configuración de Acciones de GitHub con la opción identidad asignada por el usuario en su lugar.
- Si la implementación de Acciones de GitHub existente se ha configurado manualmente, use una entidad de servicio u OpenID Connect en su lugar.
- Para la nueva configuración de Acciones de GitHub en el Centro de implementación, use la opción identidad asignada por el usuario.
Implementación en crear asistente Cuando Autenticación básica se establece en Deshabilitar e Implementación continua se establece en Habilitar, Acciones de GitHub se configura con la opción Identidad asignada por el usuario (OpenID Connect).
Azure Repos con el servicio de compilación de App Service No funciona.
BitBucket No funciona.
Azure Pipelines con la tarea AzureWebApp Funciona.
Azure Pipelines con tarea AzureRmWebAppDeployment - Use la tarea AzureRmWebAppDeployment más reciente para obtener el comportamiento de reserva.
- El Perfil de publicación (PublishProfile) tipo de conexión no funciona, ya que usa la autenticación básica. Cambie el tipo de conexión a Azure Resource Manager (AzureRM).
- En los agentes de canalizaciones que no son de Windows, la autenticación funciona.
- En los agentes de Windows, puede que sea necesario modificar el método de implementación usado por la tarea. Cuando se usa Web Deploy (DeploymentType: 'webDeploy') y se deshabilita la autenticación básica, la tarea se autentica con un token de Microsoft Entra. Hay requisitos adicionales si no usa el agente de windows-latest o si usa un agente autohospedado. Para más información, consulte No puedo realizar la implementación web en mi instancia de Azure App Service con la autenticación de Microsoft Entra desde mi agente de Windows.
- Otros métodos de implementación funcionan, como zip deploy o ejecutar desde el paquete.

Creación de un rol personalizado sin permisos para la autenticación básica

Para evitar que un usuario con privilegios inferiores habilite la autenticación básica para cualquier aplicación, puede crear un rol personalizado y asignar el usuario al rol.

  1. En Azure Portal, en el menú superior, busque y seleccione la suscripción en la que desea crear el rol personalizado.

  2. En el panel de navegación izquierdo, seleccione Control de acceso (IAM)>Agregar>Agregar rol personalizado.

  3. Establezca la pestaña Básico como desee y, a continuación, seleccione Siguiente.

  4. En la pestaña Permisos, seleccione Excluir permisos.

  5. Busque y seleccione Microsoft Web Apps y busque las siguientes operaciones:

    Operación Descripción
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Credenciales de publicación de FTP para aplicaciones de App Service.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Credenciales de publicación de SCM para aplicaciones de App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Credenciales de publicación de FTP para ranuras de App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Credenciales de publicación de SCM para ranuras de App Service.
  6. En cada una de estas operaciones, seleccione el cuadro Escribir y, a continuación, seleccione Agregar. Este paso agrega la operación como NotActions para el rol.

    La pestaña Permisos debe ser similar a la siguiente captura de pantalla:

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

  7. Seleccione Revisar y crear y, luego, Crear.

  8. Ahora puede asignar este rol a los usuarios de la organización.

Para más información, consulte Creación o actualización de roles personalizados de Azure mediante la CLI de Azure.

Supervisión de los intentos de autenticación básicos

Todos los inicios de sesión correctos e intentados se registran en el tipo de registro de Azure Monitor AppServiceAuditLogs. Para auditar los inicios de sesión intentados y correctos en FTP y WebDeploy, siga los pasos descritos en Envío de registros a Azure Monitor y habilitación del envío del tipo de registroAppServiceAuditLogs.

Para confirmar que los registros se envían a los servicios seleccionados, intente iniciar sesión a través de FTP o WebDeploy. En el ejemplo siguiente se muestra un registro de cuenta de almacenamiento.

{
  "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"
  }
}

Azure Policy puede ayudarle a aplicar los estándares de la organización y a evaluar el cumplimiento a gran escala. Puede usar Azure Policy para auditar cualquier aplicación que siga usando la autenticación básica y corregir los recursos no compatibles. A continuación se muestran directivas integradas para auditar y corregir la autenticación básica en App Service:

A continuación se muestran las directivas correspondientes para las ranuras:

Preguntas más frecuentes

¿Por qué una advertencia en Visual Studio me indica que la autenticación básica está deshabilitada?

Visual Studio requiere autenticación básica para la implementación en Azure App Service. La advertencia le recuerda que la configuración de la aplicación ha cambiado y que ya no se puede implementar en ella. O bien ha deshabilitado la autenticación básica en la aplicación usted mismo o bien la directiva de la organización exige que la autenticación básica esté deshabilitada para las aplicaciones de App Service.