Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 CredentialUnavailableExceptiondeneyebilir/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 CredentialUnavailableExceptionoluş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 DefaultAzureCredential, isteğe bağlı olarak için CredentialUnavailableExceptiondeneyebilir/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_IDve AZURE_CLIENT_SECRET değişkenlerinin AZURE_CLIENT_IDdüzgün ayarlandığından emin olun. - Sertifika kullanarak bir hizmet sorumlusunun kimliğini doğrulamak için , , AZURE_TENANT_IDAZURE_CLIENT_CERTIFICATE_PATHve değişkenlerinin AZURE_CLIENT_IDisteğ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 DefaultAzureCredential, isteğe bağlı olarak için CredentialUnavailableExceptiondeneyebilir/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 (IMDS) 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. |
IMDS uç noktasına yönelik istek bir ağ geçidi hatası, 502 veya 504 durum kodu nedeniyle başarısız oldu. | IMDS, ara sunucu veya ağ geçidi üzerinden yapılan çağrıları desteklemez. IMDS uç noktasına yapılan çağrılar için VM'de çalışan proxy'leri veya ağ geçitlerini devre dışı bırakma http://169.254.169.254/ |
No response received from the managed identity endpoint. |
IMDS 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. - VM'de IMDS uç noktasına ulaşılabilir 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. |
IMDS 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. - VM'de IMDS uç noktasına ulaşılabilir olduğunu doğrulayın. Daha fazla bilgi için sonraki bölüme bakın. |
VM'de IMDS'nin kullanılabilir olduğunu doğrulayın
VM'ye erişiminiz varsa, aşağıdaki örnekte gösterildiği gibi kullanarak komut satırı curlaracı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 DefaultAzureCredential, isteğe bağlı olarak için CredentialUnavailableExceptiondeneyebilir/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. Aşağıdaki örnekte gösterildiği gibi yönetilen kimliğin kullanılabilir olduğunu doğrulamak için kullanın curl :
curl "$IDENTITY_ENDPOINT?resource=https://management.core.windows.net&api-version=2019-08-01" -H "X-IDENTITY-HEADER: $IDENTITY_HEADER"
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 DefaultAzureCredential, isteğe bağlı olarak için CredentialUnavailableExceptiondeneyebilir/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 DefaultAzureCredential, isteğe bağlı olarak için CredentialUnavailableExceptiondeneyebilir/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.