Azure tarafından barındırılan uygulama kimlik doğrulaması sorunlarını giderme
Bu makale, çeşitli TokenCredential
uygulamalar aracılığıyla Azure'da barındırılan Java uygulamaları için Azure SDK'sı kimlik doğrulaması yaparken karşılaşılan sorunlarla ilgili rehberlik sağlar. Daha fazla bilgi için bkz . Azure tarafından barındırılan Java uygulamalarının kimliğini doğrulama.
DefaultAzureCredential sorunlarını giderme
kullandığınızda DefaultAzureCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Hata iletisi | Açıklama | Risk azaltma |
---|---|---|
CredentialUnavailableException raised with message "DefaultAzureCredential failed to retrieve a token from the included credentials." |
Zincirdeki DefaultAzureCredential tüm kimlik bilgileri bir belirteç alamadı ve her biri bir CredentialUnavailableException oluşturamadı. |
Denenen kimlik bilgilerini doğrulamak ve daha fazla tanılama bilgisi almak için günlüğe kaydetmeyi etkinleştirin. Daha fazla bilgi için aşağıdaki temel alınan kimlik bilgileri türlerinden biri için sorun giderme kılavuzuna bakın: - EnvironmentCredential - ManagedIdentityCredential - VisualStudioCodeCredential - AzureCLICredential - AzurePowershellCredential |
HttpResponseException raised from the client with a status code of 401 or 403 |
Kimlik doğrulaması başarılı oldu ancak yetkili Azure hizmeti 401 (Kimlik Doğrulaması) veya 403 (Yasak) durum koduyla yanıt verdi. Bu sorun genellikle, hedeflenen hesap dışındaki bir hesabın kimliğini doğruladığında veya hedeflenen hesabın atanmış doğru izinlere veya rollere sahip olmadığı durumlarda DefaultAzureCredential oluşur. |
Zincirdeki kimlik doğrulama belirtecini döndüren kimlik bilgilerini belirlemek için günlüğe kaydetmeyi etkinleştirin. Beklenenden farklı bir kimlik bilgilerinin belirteç döndürmesi durumunda, ilgili geliştirme aracının oturumunu kapatarak bu sorunu atlamayı deneyin. Kullanılan hesaba doğru rolün atandığından emin olun. Örneğin, abonelik Sahibi rolü yerine hizmete özgü bir rol. |
EnvironmentCredential sorunlarını giderme
kullandığınızda EnvironmentCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Hata iletisi | Açıklama | Risk azaltma |
---|---|---|
Environment variables aren't fully configured. |
Ortam değişkenlerinin geçerli bir bileşimi ayarlanmadı. | Aşağıdaki listede açıklandığı gibi, hedeflenen kimlik doğrulama yöntemi için uygulama başlatmadan önce uygun ortam değişkenlerinin ayarlandığından emin olun: - İstemci gizli dizisini kullanarak bir hizmet sorumlusunun kimliğini doğrulamak için , AZURE_TENANT_ID ve AZURE_CLIENT_SECRET değişkenlerinin AZURE_CLIENT_ID düzgün ayarlandığından emin olun. - Sertifika kullanarak bir hizmet sorumlusunun kimliğini doğrulamak için , , AZURE_TENANT_ID AZURE_CLIENT_CERTIFICATE_PATH ve değişkenlerinin AZURE_CLIENT_ID isteğe bağlı olarak AZURE_CLIENT_CERTIFICATE_PASSWORD düzgün ayarlandığından emin olun. - Parola kullanarak kullanıcının kimliğini doğrulamak için değişkenlerin AZURE_USERNAME ve AZURE_PASSWORD değerlerinin düzgün ayarlandığından emin olun. |
ManagedIdentityCredential sorunlarını giderme
ManagedIdentityCredential
yönetilen kimlik sağlayan çeşitli Azure konaklarında çalışacak şekilde tasarlanmıştır. Yönetilen kimliği yapılandırma ve sorun giderme hataları konaktan konağa farklılık gösterir. Aşağıdaki liste, yönetilen kimlik atayabileceğiniz ve ManagedIdentityCredential
destekleyen Azure konak ortamlarını gösterir:
- Azure Uygulaması Hizmeti ve Azure İşlevleri - yapılandırma - sorunlarını giderme
- Azure Arc - yapılandırma
- Azure Kubernetes Service - yapılandırma - sorunlarını giderme
- Azure Service Fabric -configuration
- Azure Sanal Makineler ve Ölçek Kümeleri -yapılandırma - sorunlarını giderme
Azure Sanal Makine Yönetilen Kimliği
kullandığınızda ManagedIdentityCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Hata iletisi | Açıklama | Risk azaltma |
---|---|---|
The requested identity hasn't been assigned to this resource. |
Azure Örnek Meta Veri Hizmeti (I AVH) uç noktası, istenen kimliğin sanal makineye (VM) atanmadığını belirten 400 durum koduyla yanıt verdi. | Kullanıcı tarafından atanan bir kimlik kullanıyorsanız, belirtilen clientId kimliğin doğru olduğundan emin olun. Sistem tarafından atanan bir kimlik kullanıyorsanız, düzgün etkinleştirdiğinizden emin olun. Daha fazla bilgi için Azure portalını kullanarak bir VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma'nın Mevcut bir VM'de sistem tarafından atanan yönetilen kimliği etkinleştirme bölümüne bakın. |
The request failed due to a gateway error. |
I AVH uç noktasına yapılan istek bir ağ geçidi hatası, 502 veya 504 durum kodu nedeniyle başarısız oldu. | AVH ara sunucu veya ağ geçidi üzerinden yapılan çağrıları desteklemiyorum. I AVH uç noktasına yapılan çağrılar için VM'de çalışan proxy'leri veya ağ geçitlerini devre dışı bırakmahttp://169.254.169.254/ |
No response received from the managed identity endpoint. |
I AVH isteği için yanıt alınmadı veya istek zaman aşımına uğradı. | - VM'de yönetilen kimliği düzgün yapılandırdığınızdan emin olun. Daha fazla bilgi için bkz . Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma. - I AVH uç noktasının VM'de erişilebilir olduğunu doğrulayın. Daha fazla bilgi için sonraki bölüme bakın. |
Multiple attempts failed to obtain a token from the managed identity endpoint. |
I AVH uç noktasından belirteç almaya yönelik yeniden denemeler tükendi. | - Belirli hatalar hakkında daha fazla bilgi için iç özel durum iletilerine bakın. Veriler kesilmişse, günlükler toplanarak daha fazla ayrıntı elde edilebilir. - VM'de yönetilen kimliği düzgün yapılandırdığınızdan emin olun. Daha fazla bilgi için bkz . Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma. - I AVH uç noktasının VM'de erişilebilir olduğunu doğrulayın. Daha fazla bilgi için sonraki bölüme bakın. |
VM'de AVH kullanılabilir olduğunu doğrulayın
VM'ye erişiminiz varsa, aşağıdaki örnekte gösterildiği gibi kullanarak komut satırı curl
aracılığıyla yönetilen kimlik uç noktasının kullanılabilir olduğunu doğrulayabilirsiniz:
curl 'http://169.254.169.254/metadata/identity/oauth2/token?resource=https://management.core.windows.net&api-version=2018-02-01' -H "Metadata: true"
Uyarı
Bu komutun çıktısı geçerli bir erişim belirteci içeriyor. Hesap güvenliğinin tehlikeye atılmasını önlemek için bu erişim belirtecini paylaşmayın.
Azure App Service ve Azure İşlevleri Yönetilen Kimliği
kullandığınızda ManagedIdentityCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Hata iletisi | Açıklama | Risk azaltma |
---|---|---|
ManagedIdentityCredential authentication unavailable. |
App Services konağı tarafından yapılandırılan ortam değişkenleri mevcut değildi. | - App Service örneğinde yönetilen kimliği düzgün yapılandırdığınızdan emin olun. Daha fazla bilgi için bkz. App Service ve Azure İşlevleri için yönetilen kimlikleri kullanma. - App Service ortamını düzgün yapılandırdığınızdan ve yönetilen kimlik uç noktasının kullanılabilir olduğundan emin olun. Daha fazla bilgi için sonraki bölüme bakın. |
App Service Yönetilen Kimlik uç noktasının kullanılabilir olduğunu doğrulayın
SSH'ye App Service örneğine erişiminiz varsa, yönetilen kimliğin ortamda kullanılabilir olduğunu doğrulayabilirsiniz. İlk olarak, ortam değişkenlerini MSI_ENDPOINT
ve MSI_SECRET
ortamda ayarladığınızdan emin olun. Ardından, aşağıdaki örnekte gösterildiği gibi yönetilen kimlik uç noktasının kullanarak curl
kullanılabilir olduğunu doğrulayabilirsiniz:
curl 'http://169.254.169.254/metadata/identity/oauth2/token?resource=https://management.core.windows.net&api-version=2018-02-01' -H "Metadata: true"
Uyarı
Bu komutun çıktısı geçerli bir erişim belirteci içeriyor. Hesap güvenliğinin tehlikeye atılmasını önlemek için bu erişim belirtecini paylaşmayın.
Azure Kubernetes Service Yönetilen Kimliği
Kubernetes için Pod Kimliği
kullandığınızda ManagedIdentityCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Hata iletisi | Açıklama | Risk azaltma |
---|---|---|
No Managed Identity endpoint found |
Uygulama, pod'a bir kimlik atanmadan önce kimlik doğrulaması yapmaya çalıştı. | Pod'un doğru etiketlendiğini doğrulayın. Bu sorun, doğru etiketli bir pod kimlik hazır olmadan önce kimlik doğrulaması gerçekleştirdiğinde de oluşur. Başlatma yarışlarını önlemek için NMI'yi yanıtlarında üst bilgiyi ayarleyecek şekilde Retry-After yapılandırın. Daha fazla bilgi için Pod Kimliği belgelerindeki NMI yanıtında Yeniden Deneme-Sonra üst bilgisini ayarlama bölümüne bakın. |
WorkloadIdentityCredential sorunlarını giderme
kullandığınızda WorkloadIdentityCredential
, isteğe bağlı olarak için CredentialUnavailableException
deneyebilir/yakalayabilirsiniz. Aşağıdaki tabloda, bu özel durumun gösterdiği hatalar ve azaltma yöntemleri gösterilmektedir:
Sonraki adımlar
Bu makaledeki sorun giderme kılavuzu Java istemci kitaplıkları için Azure SDK'sını kullanırken karşılaşılan sorunları çözmeye yardımcı olmazsa, Java github için Azure SDK deposunda bir sorun bildirmenizi öneririz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin