Megosztás a következőn keresztül:


Az Azure által üzemeltetett alkalmazáshitelesítés hibaelhárítása

Ez a cikk útmutatást nyújt az Azure-ban üzemeltetett Java-alkalmazásokhoz készült Azure SDK hitelesítése során felmerülő problémák különböző implementációkon keresztül TokenCredential történő kezeléséhez. További információ: Az Azure által üzemeltetett Java-alkalmazások hitelesítése.

DefaultAzureCredential hibaelhárítása

Ha használja DefaultAzureCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
CredentialUnavailableException raised with message "DefaultAzureCredential failed to retrieve a token from the included credentials." A lánc összes hitelesítő adata nem tudta lekérni a DefaultAzureCredential jogkivonatot, és mindegyik egy CredentialUnavailableException. Engedélyezze a naplózást a kipróbált hitelesítő adatok ellenőrzéséhez, és további diagnosztikai információkhoz juthat.

További információkért tekintse meg a következő hitelesítő adatok egyikének hibaelhárítási útmutatóját:
- EnvironmentCredential
- ManagedIdentityCredential
- VisualStudioCodeCredential
- AzureCLICredential
- AzurePowershellCredential
HttpResponseException raised from the client with a status code of 401 or 403 A hitelesítés sikeres volt, de az engedélyező Azure-szolgáltatás 401 (Hitelesítés) vagy 403 (Tiltott) állapotkóddal válaszolt. Ez a probléma gyakran akkor fordul elő, ha DefaultAzureCredential a kívánt fióktól eltérő fiókot hitelesít, vagy a kívánt fiók nem rendelkezik a megfelelő engedélyekkel vagy szerepkörök hozzárendelésével. Engedélyezze a naplózást annak megállapításához, hogy a lánc melyik hitelesítő adatai adva vissza a hitelesítő jogkivonatot.

Abban az esetben, ha a várttól eltérő hitelesítő adat egy jogkivonatot ad vissza, a megfelelő fejlesztői eszközből való kijelentkezéssel megkerülheti ezt a problémát.

Győződjön meg arról, hogy a megfelelő szerepkör van hozzárendelve a használt fiókhoz. Például az előfizetés tulajdonosi szerepköre helyett egy szolgáltatásspecifikus szerepkör.

EnvironmentCredential hibaelhárítása

Ha használja EnvironmentCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
Environment variables aren't fully configured. A környezeti változók érvényes kombinációja nincs beállítva. Győződjön meg arról, hogy a megfelelő környezeti változók az alkalmazás indítása előtt be vannak állítva a kívánt hitelesítési módszerhez, az alábbi listában leírtak szerint:
– A szolgáltatásnév ügyfélkóddal történő hitelesítéséhez győződjön meg arról, hogy a változók AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_CLIENT_SECRET megfelelően vannak beállítva.
– A szolgáltatásnév tanúsítvány használatával történő hitelesítéséhez győződjön meg arról, hogy a változók AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_CLIENT_CERTIFICATE_PATH, és opcionálisan AZURE_CLIENT_CERTIFICATE_PASSWORD megfelelően vannak beállítva.
– Ha jelszóval szeretne hitelesíteni egy felhasználót, győződjön meg arról, hogy a változók AZURE_USERNAME megfelelően AZURE_PASSWORD vannak beállítva.

ManagedIdentityCredential hibaelhárítása

ManagedIdentityCredential A rendszer úgy lett kialakítva, hogy a felügyelt identitást biztosító különböző Azure-gazdagépeken működjön. A felügyelt identitás konfigurálása és a hibaelhárítási hibák gazdagépenként eltérőek. Az alábbi lista azokat az Azure-gazdagépkörnyezeteket mutatja be, amelyekhez hozzárendelhet egy felügyelt identitást, és amelyek ManagedIdentityCredential támogatják:

Azure Virtual Machine Managed Identity

Ha használja ManagedIdentityCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
The requested identity hasn't been assigned to this resource. Az Azure Instance Metadata Service (IMDS) végpontja egy 400-os állapotkóddal válaszolt, amely azt jelzi, hogy a kért identitás nincs hozzárendelve a virtuális géphez (VM). Ha felhasználó által hozzárendelt identitást használ, győződjön meg arról, hogy a megadott clientId helyes.

Ha rendszer által hozzárendelt identitást használ, győződjön meg arról, hogy megfelelően engedélyezte. További információ: A rendszer által hozzárendelt felügyelt identitás engedélyezése egy meglévő virtuálisgép-szakaszban , amely a felügyelt identitások Azure-erőforrásokhoz való konfigurálását ismerteti az Azure Portal használatával.
The request failed due to a gateway error. Az IMDS-végpontra irányuló kérés átjáróhiba, 502 vagy 504 állapotkód miatt meghiúsult. Az IMDS nem támogatja a proxyn vagy átjárón keresztüli hívásokat. A virtuális gépen futó proxyk vagy átjárók letiltása az IMDS-végpontra irányuló hívásokhoz http://169.254.169.254/
No response received from the managed identity endpoint. Nem érkezett válasz az IMDS-nek küldött kérésre vagy a kérés időtúllépésére. - Győződjön meg arról, hogy megfelelően konfigurálta a felügyelt identitást a virtuális gépen. További információ: Felügyelt identitások konfigurálása Azure-erőforrásokhoz virtuális gépen az Azure Portal használatával.
- Ellenőrizze, hogy az IMDS-végpont elérhető-e a virtuális gépen. További információkért lásd a következő szakaszt.
Multiple attempts failed to obtain a token from the managed identity endpoint. A rendszer újrapróbálkozott egy jogkivonat lekéréséhez az IMDS-végpontról. – Az egyes hibákról további információt a belső kivételüzenetekben talál. Ha az adatokat csonkították, részletesebben a naplók gyűjtésével szerezhető be.
- Győződjön meg arról, hogy megfelelően konfigurálta a felügyelt identitást a virtuális gépen. További információ: Felügyelt identitások konfigurálása Azure-erőforrásokhoz virtuális gépen az Azure Portal használatával.
- Ellenőrizze, hogy az IMDS-végpont elérhető-e a virtuális gépen. További információkért lásd a következő szakaszt.

Ellenőrizze, hogy az IMDS elérhető-e a virtuális gépen

Ha rendelkezik hozzáféréssel a virtuális géphez, ellenőrizheti, hogy a rugalmas identitásvégpont elérhető-e a parancssoron curlkeresztül a következő példában látható módon:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?resource=https://management.core.windows.net&api-version=2018-02-01' -H "Metadata: true"

Figyelmeztetés

A parancs kimenete érvényes hozzáférési jogkivonatot tartalmaz. A fiókbiztonság veszélyeztetésének elkerülése érdekében ne ossza meg ezt a hozzáférési jogkivonatot.

Azure App Service and Azure Functions Managed Identity

Ha használja ManagedIdentityCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
ManagedIdentityCredential authentication unavailable. Az App Services-gazdagép által konfigurált környezeti változók nem voltak jelen. - Győződjön meg arról, hogy megfelelően konfigurálta a felügyelt identitást az App Service-példányon. További információ: Felügyelt identitások használata az App Service-ben és az Azure Functionsben.
– Ellenőrizze, hogy megfelelően konfigurálta-e az App Service-környezetet, és hogy elérhető-e a felügyelt identitásvégpont. További információkért lásd a következő szakaszt.

Ellenőrizze, hogy az App Service felügyelt identitás végpontja elérhető-e

Ha hozzáfér az SSH-hoz az App Service-példányban, ellenőrizheti, hogy a felügyelt identitás elérhető-e a környezetben. Először győződjön meg arról, hogy beállította a környezeti változókat MSI_ENDPOINT és MSI_SECRET a környezetet. Ezután ellenőrizheti, hogy a felügyelt identitásvégpont elérhető-e curla következő példában látható módon:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?resource=https://management.core.windows.net&api-version=2018-02-01' -H "Metadata: true"

Figyelmeztetés

A parancs kimenete érvényes hozzáférési jogkivonatot tartalmaz. A fiókbiztonság veszélyeztetésének elkerülése érdekében ne ossza meg ezt a hozzáférési jogkivonatot.

Felügyelt Azure Kubernetes Service-identitás

Pod Identity for Kubernetes

Ha használja ManagedIdentityCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
No Managed Identity endpoint found Az alkalmazás megpróbált hitelesítést végezni, mielőtt identitást rendeltek hozzá a podhoz. Ellenőrizze, hogy a pod megfelelően van-e címkézve. Ez a probléma akkor is előfordul, ha egy megfelelően címkézett pod hitelesíti magát, mielőtt az identitás készen áll. Az inicializálási verseny megakadályozása érdekében konfigurálja az NMI-t úgy, hogy a fejlécet a Retry-After válaszaiban állítsa be. További információ: Az ÚJRApróbálkozási utófej beállítása AZ NMI-válaszban a Pod Identity dokumentációjában.

A WorkloadIdentityCredential hibaelhárítása

Ha használja WorkloadIdentityCredential, tetszés szerint kipróbálhatja/elkaphatja a következőt CredentialUnavailableException: . Az alábbi táblázat azokat a hibákat mutatja be, amelyeket ez a kivétel jelez, valamint a kockázatcsökkentés módszereit:

Hibaüzenet Leírás Mitigation
WorkloadIdentityCredential authentication unavailable. The workload options aren't fully configured. WorkloadIdentityCredential szükséges clientId, tenantId és tokenFilePath hitelesíteni kell a Microsoft Entra-azonosítóval. Ha használja DefaultAzureCredential, akkor:
- Győződjön meg arról, hogy az ügyfélazonosító a workloadIdentityClientId beállítón vagy a AZURE_CLIENT_ID környezeti változón keresztül van megadva.
- Győződjön meg arról, hogy a bérlőazonosító a AZURE_TENANT_ID környezeti változón keresztül van megadva.
- Győződjön meg arról, hogy a környezeti változón keresztül adta meg a AZURE_FEDERATED_TOKEN_FILE jogkivonatfájl elérési útját.
- Győződjön meg arról, hogy a szolgáltató gazdagép a AZURE_AUTHORITY_HOST környezeti változón keresztül van megadva.

Ha használja WorkloadIdentityCredential, akkor:
- Győződjön meg arról, hogy a bérlőazonosító a tenantId hitelesítőadat-készítőn vagy a AZURE_TENANT_ID környezeti változón keresztül van megadva.
- Győződjön meg arról, hogy az ügyfél-azonosító a clientId hitelesítőadat-készítőn vagy a AZURE_CLIENT_ID környezeti változón található beállítón keresztül van megadva.
- Győződjön meg arról, hogy a tokenfájl elérési útja a tokenFilePath hitelesítőadat-készítőn vagy a AZURE_FEDERATED_TOKEN_FILE környezeti változón keresztül van megadva.
– További problémákat a termék hibaelhárítási útmutatójában talál.

További lépések

Ha a cikkben szereplő hibaelhárítási útmutató nem segít megoldani az Azure SDK for Java ügyfélkódtárak használatakor jelentkező problémákat, javasoljuk, hogy küldjön egy hibát a Java-hoz készült Azure SDK GitHub-adattárban.