App Service dağıtımlarında temel kimlik doğrulamayı devre dışı bırakma

Bu makalede, App Service uygulamalarına kod dağıtırken temel kimlik doğrulamasını (kullanıcı adı ve parola kimlik doğrulaması) nasıl devre dışı bırakabileceğiniz gösterilmektedir.

App Service, FTP ve WebDeploy istemcilerinin dağıtım kimlik bilgilerini kullanarak bağlanması için temel kimlik doğrulaması sağlar. Bu API'ler sitenizin dosya sistemine göz atmak, sürücüleri ve yardımcı programları karşıya yüklemek ve MsBuild ile dağıtmak için mükemmeldir. Ancak kuruluşlar genellikle Microsoft Entra ID kimlik doğrulaması gibi temel kimlik doğrulamasından daha güvenli dağıtım yöntemleri gerektirir (bkz. Azure Uygulaması Service'te dağıtım yöntemlerine göre kimlik doğrulama türleri). Microsoft Entra, OAuth 2.0 belirteç tabanlı yetkilendirmeyi kullanır ve temel kimlik doğrulaması sorunlarını azaltmaya yardımcı olan birçok avantaj ve iyileştirmeye sahiptir. Örneğin, OAuth erişim belirteçlerinin kullanım ömrü sınırlıdır ve bunların verildiği uygulamalara ve kaynaklara özeldir, bu nedenle yeniden kullanılamazlar. Microsoft Entra, yönetilen kimlikleri kullanarak diğer Azure hizmetlerinden dağıtım yapmanıza da olanak tanır.

Temel kimlik doğrulamayı devre dışı bırakma

Temel kimlik doğrulaması için iki farklı denetim sağlanır. Özellikle:

  • FTP dağıtımı için, temel kimlik doğrulaması bayrağı tarafından basicPublishingCredentialsPolicies/ftp denetlenmektedir (portalda FTP Temel Kimlik Doğrulama Yayımlama Kimlik Bilgileri seçeneği).
  • Visual Studio, yerel Git ve GitHub gibi temel kimlik doğrulamasını kullanan diğer dağıtım yöntemleri için, temel kimlik doğrulaması bayrağı (portalda SCM Temel Kimlik Doğrulama Yayımlama Kimlik Bilgileri seçeneği) tarafından basicPublishingCredentialsPolicies/scm denetlenmektedir.
  1. Azure portalında Uygulama Hizmetleri'ni arayıp seçin ve ardından uygulamanızı seçin.

  2. Uygulamanın sol menüsünde Yapılandırma>Genel ayarları'nı seçin.

  3. SCM Temel Kimlik Doğrulama Yayımlama Kimlik Bilgileri veya FTP Temel Kimlik Doğrulama Yayımlama Kimlik Bilgileri için Kapalı'yı ve ardından Kaydet'i seçin.

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

FTP erişiminin engellendiğini onaylamak için FTP/S kullanarak uygulamanıza bağlanmayı deneyin. Bir mesaj almalısınız 401 Unauthenticted .

Git erişiminin engellendiğini onaylamak için yerel Git dağıtımını deneyin. Bir ileti almalısınız Authentication failed .

Temel kimlik doğrulaması olmadan dağıtım

Temel kimlik doğrulamasını devre dışı bıraktığınızda, temel kimlik doğrulamasına bağlı dağıtım yöntemleri çalışmayı durdurur.

Aşağıdaki tabloda, temel kimlik doğrulaması devre dışı bırakıldığında çeşitli dağıtım yöntemlerinin nasıl davrandığını ve herhangi bir geri dönüş mekanizması olup olmadığını gösterir. Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti'nde dağıtım yöntemlerine göre kimlik doğrulama türleri.

Dağıtım yöntemi Temel kimlik doğrulaması devre dışı bırakıldığında
Visual Studio dağıtımı İşe yaramıyor.
FTP İşe yaramıyor.
Yerel Git İşe yaramıyor.
Azure CLI Azure CLI 2.48.1 veya sonraki sürümlerde aşağıdaki komutlar Microsoft Entra kimlik doğrulamasına geri döner:
- 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 
Maven eklentisi veya Gradle eklentisi Çalışır.
App Service Derleme Hizmeti ile GitHub İşe yaramıyor.
GitHub Actions - Temel kimlik doğrulaması kullanan mevcut bir GitHub Actions iş akışı kimlik doğrulaması yapamaz. Dağıtım Merkezi'nde mevcut GitHub yapılandırmasının bağlantısını kesin ve bunun yerine kullanıcı tarafından atanan kimlik seçeneğiyle yeni bir GitHub Actions yapılandırması oluşturun.
- Mevcut GitHub Actions dağıtımı el ile yapılandırılmışsa bunun yerine hizmet sorumlusu veya OpenID Bağlan kullanmayı deneyin.
- Dağıtım Merkezi'ndeki yeni GitHub Actions yapılandırması için kullanıcı tarafından atanan kimlik seçeneğini kullanın.
Oluşturma sihirbazında dağıtım Temel kimlik doğrulaması Devre Dışı Bırak ve Sürekli dağıtım Etkinleştir olarak ayarlandığında GitHub Actions, kullanıcı tarafından atanan kimlik seçeneği (OpenID Bağlan) ile yapılandırılır.
App Service Derleme Hizmeti ile Azure Repos İşe yaramıyor.
BitBucket İşe yaramıyor.
AzureWebApp ile Azure Pipelines görevi Çalışır.
AzureRmWebAppDeployment ile Azure Pipelines görevi - Geri dönüş davranışı elde etmek için en son AzureRmWebAppDeployment görevini kullanın.
- Temel kimlik doğrulaması kullandığından Yayımlama Profili (PublishProfile) bağlantı türü çalışmıyor. Bağlantı türünü Azure Resource Manager (AzureRM)olarak değiştirin.
- Windows Pipelines olmayan aracılarda kimlik doğrulaması çalışır.
- Windows aracılarında, görev tarafından kullanılan dağıtım yönteminin değiştirilmesi gerekebilir. Web Dağıtımı kullanıldığında (DeploymentType: 'webDeploy') ve temel kimlik doğrulaması devre dışı bırakıldığında, görev bir Microsoft Entra belirteci ile kimlik doğrulaması yapar. Aracıyı kullanmıyorsanız veya şirket içinde barındırılan windows-latest bir aracı kullanıyorsanız ek gereksinimler vardır. Daha fazla bilgi için bkz. Windows aracımdan Microsoft Entra kimlik doğrulamasını kullanarak Azure Uygulaması Hizmetime Web Dağıtamıyorum.
- Zip dağıtımı veya paketten çalıştırma gibi diğer dağıtım yöntemleri çalışır.

Temel kimlik doğrulaması için izinleri olmayan özel bir rol oluşturma

Daha düşük maliyetli bir kullanıcının herhangi bir uygulama için temel kimlik doğrulamasını etkinleştirmesini önlemek için özel bir rol oluşturabilir ve kullanıcıyı role atayabilirsiniz.

  1. Azure portalının üst menüsünde, özel rolü oluşturmak istediğiniz aboneliği arayın ve seçin.

  2. Sol gezinti bölmesinden Erişim Denetimi (IAM)>Özel rol ekle'yi>seçin.

  3. Temel sekmesini istediğiniz gibi ayarlayın ve İleri'yi seçin.

  4. İzinler sekmesinde İzinleri dışla'yı seçin.

  5. Microsoft Web Apps'i bulup seçin, ardından aşağıdaki işlemleri arayın:

    Operasyon Açıklama
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp App Service uygulamaları için FTP yayımlama kimlik bilgileri.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm App Service uygulamaları için SCM yayımlama kimlik bilgileri.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp App Service yuvaları için FTP yayımlama kimlik bilgileri.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm App Service yuvaları için SCM yayımlama kimlik bilgileri.
  6. Bu işlemlerin her birinin altında, Yazma kutusunu seçin ve ardından Ekle'yi seçin. Bu adım, işlemi rol için NotActions olarak ekler.

    İzinler sekmeniz aşağıdaki ekran görüntüsüne benzer olmalıdır:

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

  7. Gözden Geçir + oluştur’u ve sonra da Oluştur’u seçin.

  8. Artık bu rolü kuruluşunuzun kullanıcılarına atayabilirsiniz.

Daha fazla bilgi için bkz. Azure portalını kullanarak Azure özel rolleri oluşturma veya güncelleştirme

Temel kimlik doğrulama girişimlerini izleme

Başarılı ve denenen tüm oturum açma işlemleri Azure İzleyici AppServiceAuditLogs günlük türüne kaydedilir. FTP ve WebDeploy'da denenen ve başarılı oturum açma adımlarını denetlemek için Günlükleri Azure İzleyici'ye gönderme ve günlük türünün gönderilmesini AppServiceAuditLogs etkinleştirme bölümündeki adımları izleyin.

Günlüklerin seçtiğiniz hizmetlere gönderildiğini onaylamak için FTP veya WebDeploy aracılığıyla oturum açmayı deneyin. Aşağıdaki örnekte Depolama Hesap günlüğü gösterilmektedir.

{
  "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 İlkesi, kuruluş standartlarını zorunlu kılmanıza ve uygun ölçekte uyumluluğu değerlendirmenize yardımcı olabilir. Azure İlkesi kullanarak, hala temel kimlik doğrulaması kullanan tüm uygulamaları denetleyebilir ve uyumsuz kaynakları düzeltebilirsiniz. App Service'te temel kimlik doğrulamasını denetlemeye ve düzeltmeye yönelik yerleşik ilkeler aşağıdadır:

Yuvalar için karşılık gelen ilkeler şunlardır:

Sık sorulan sorular

Visual Studio'da neden temel kimlik doğrulamasının devre dışı bırakıldığını belirten bir uyarı alıyorum?

Visual Studio, Azure Uygulaması Hizmetine dağıtmak için temel kimlik doğrulaması gerektirir. Uyarı, uygulamanızdaki yapılandırmanın değiştiğini ve artık buna dağıtamayabileceğinizi anımsatır. Uygulamada temel kimlik doğrulamasını kendiniz devre dışı bırakmış veya kuruluş ilkeniz App Service uygulamaları için temel kimlik doğrulamasının devre dışı bırakıldığını zorunlu kılmıştır.