다음을 통해 공유


Azure App Service 배포에서 기본 인증 사용 안 함

이 문서에서는 Azure App Service 앱에 코드를 배포하기 위해 기본 사용자 이름 및 암호 인증을 사용하지 않도록 설정하는 방법을 설명합니다. 이 문서에서는 기본 인증을 사용하지 않도록 설정하는 여러 가지 방법, 있는 경우 대체 배포 방법 및 기본 인증 액세스 시도를 모니터링하는 방법을 설명합니다.

App Service는 FTP 및 웹 배포 클라이언트가 사용자 이름 및 암호 배포 자격 증명을 사용하여 연결할 수 있도록 기본 인증을 제공합니다. 기본 인증 API는 사이트의 파일 시스템을 검색하고, 드라이버 및 유틸리티를 업로드하고, MSBuild를 사용하여 배포하는 데 적합합니다. 자세한 내용은 Azure App Service에 대한 배포 자격 증명 구성을 참조하세요.

기업에서는 Microsoft Entra ID와 같은 기본 인증보다 더 안전한 배포 방법이 필요한 경우가 많습니다. Microsoft Entra OAuth 2.0 액세스 토큰은 사용 가능한 수명이 제한되어 있으며, 발급된 애플리케이션 및 리소스와 관련이 있으며 다시 사용할 수 없습니다. OAuth 토큰 기반 권한 부여는 기본 인증과 관련하여 많은 문제를 완화하는 데 도움이 됩니다.

Microsoft Entra를 사용하면 관리 ID를 사용하여 다른 Azure 서비스에서 배포할 수도 있습니다. 자세한 내용은 Azure App Service의 배포 방법별 인증 유형을 참조하세요.

필수 조건

  • 앱에 대한 FTP 액세스에 대한 기본 인증을 사용하지 않도록 설정하려면 앱에 대한 소유자 수준 액세스 권한이 있어야 합니다.
  • 권한이 낮은 사용자가 기본 인증을 사용하도록 설정하지 못하도록 역할을 만들고 할당하려면 구독에 소유자 또는 사용자 액세스 관리자 권한이 있어야 합니다.

기본 인증 비활성화

FTP 배포의 경우 기본 인증은 basicPublishingCredentialsPolicies/ftp 플래그 또는 FTP 기본 인증 게시 자격 증명 포털 옵션에 의해 제어됩니다.

Visual Studio, 로컬 Git 및 GitHub와 같은 기본 인증을 사용하는 다른 배포 방법의 경우 기본 인증은 플래그 또는 basicPublishingCredentialsPolicies/scm 포털 옵션으로 제어됩니다.

비고

FTP 기본 인증을 사용하도록 설정하려면 SCM 기본 인증이 필요합니다.

기본 인증을 사용하지 않도록 설정하려면 다음을 수행합니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

  2. 앱의 왼쪽 탐색 메뉴에서 구성>일반 설정을 선택합니다.

  3. SCM 기본 인증 게시 자격 증명, FTP 기본 인증 게시 자격 증명 또는 둘 다에 대해 해제를 선택한 다음 저장을 선택합니다.

    Azure Portal에서 Azure App Service에 대한 기본 인증을 사용하지 않도록 설정하는 방법을 보여 주는 스크린샷

FTP 액세스가 차단되어 있는지 확인하려면 FTP/FTPS를 사용하여 앱에 연결합니다. 인증되지 않은 401 메시지가 표시됩니다.

Git 액세스가 차단되어 있는지 확인하려면 로컬 Git 배포를 시도합니다. 인증 실패 메시지가 표시됩니다.

기본 인증 없이 배포

기본 인증을 사용하지 않도록 설정하면 기본 인증에 의존하는 배포 방법이 더 이상 작동하지 않습니다. 일부 배포 방법에는 대체 배포 메커니즘이 있습니다.

다음 표에서는 기본 인증을 사용하지 않도록 설정할 때 다양한 배포 방법이 작동하는 방식과 대체(fallback) 메커니즘(있는 경우)을 보여 줍니다. 자세한 내용은 Azure App Service의 배포 방법별 인증 유형을 참조하세요.

배포 방법 기본 인증이 사용되지 않도록 설정된 경우
Visual Studio 배포 Microsoft Entra 인증을 사용하여 배포하려면 Visual Studio 2022 버전 17.12 이상이 필요합니다.
FTP 작동하지 않음.
로컬 Git 작동하지 않음.
Azure 커맨드 라인 인터페이스 (CLI) Azure CLI 2.48.1 이상에서는 다음 명령이 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;
Maven 플러그 인 또는 Gradle 플러그 인 작동함.
GitHub 작업 기본 인증을 사용하는 기존 GitHub Actions 워크플로는 작동하지 않습니다. 기존 GitHub 구성의 연결을 끊고 사용자 할당 ID를 사용하는 새 GitHub Actions 구성을 만듭니다.
기존 GitHub Actions 배포가 수동으로 구성된 경우 대신 서비스 주체 또는 OpenID Connect를 사용해 보세요.
새 GitHub Actions 워크플로의 경우 사용자 할당 ID 옵션을 사용합니다.
GitHub과 App Service 빌드 서비스 작동하지 않음.
포털 만들기 마법사에서 배포 기본 인증사용 안 함으로 설정된 경우 연속 배포 원본을 선택하면 사용자 할당 ID 옵션(OpenID Connect)으로 GitHub Actions가 구성됩니다.
Bitbucket 작동하지 않음.
App Service 빌드 서비스를 사용하여 Azure Repos 작동하지 않음.
Azure Pipelines를 사용하는 Azure Repos 작동함.
Azure PipelinesAzureWebApp 작업 작동함.

기본 인증을 사용하지 않도록 사용자 지정 역할 만들기

권한이 낮은 사용자가 모든 앱에 대해 기본 인증을 사용하도록 설정하지 않도록 하려면 사용자 지정 역할을 만들고 사용자를 역할에 할당할 수 있습니다.

  1. Azure Portal에서 사용자 지정 역할을 만들 구독을 선택합니다.

  2. 왼쪽 탐색 메뉴에서 액세스 제어(IAM)>사용자 지정 역할 추가>를 선택합니다.

  3. 사용자 지정 역할 만들기 페이지에서 역할에 이름을 지정하고 다음을 선택합니다.

  4. 사용 권한 탭에서 권한 제외를 선택합니다.

  5. Microsoft Web Apps를 검색하고 선택합니다.

  6. microsoft.web/sites/basicPublishingCredentialsPolicies를 검색하고 확장합니다.

  7. 쓰기 상자를 선택한 다음 추가를 선택합니다. 이 단계에서는 역할에 대한 NotActions 에 작업을 추가합니다.

  8. 권한 제외를 다시 선택합니다.

  9. microsoft.web/sites/slots/basicPublishingCredentialsPolicies를 검색하고 확장하고 쓰기 상자를 선택한 다음 추가를 선택합니다.

  10. 이제 사용 권한 탭이 다음 스크린샷과 같이 표시됩니다. 검토 및 생성를 선택한 후 생성를 선택합니다.

    Write 권한을 제외한 basicPublishingCredentialsPolicies의 스크린샷

이제 조직의 사용자에게 이 역할을 할당할 수 있습니다. 자세한 내용은 Azure Portal을 사용하여 Azure 사용자 지정 역할 만들기 또는 업데이트를 참조하세요.

기본 인증 시도 모니터링

시도했거나 성공한 모든 로그인은 Azure Monitor AppServiceAuditLogs 로그 형식에 기록됩니다. FTP 및 웹 배포에서 시도되고 성공한 로그인을 감사하려면 Azure Monitor에 로그 보내기 의 단계를 수행하고 로그 형식의 전달을 AppServiceAuditLogs 사용하도록 설정합니다.

로그가 선택한 서비스로 배송되는지 확인하려면 FTP 또는 웹 배포를 통해 로그인해 보세요. 다음 예제에서는 스토리지 계정 로그를 보여 줍니다.

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

Azure Policy를 통해 조직 표준을 적용하고 규모에 맞게 규정 준수를 평가할 수 있습니다. Azure Policy를 사용하여 여전히 기본 인증을 사용하는 모든 앱에 대해 감사하고 비준수 리소스를 수정할 수 있습니다. 다음 목록에서는 App Service에서 기본 인증을 감사하고 수정하기 위한 기본 제공 정책을 보여줍니다.

다음 목록에서는 슬롯에 해당하는 정책을 보여 줍니다.