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_ID AZURE_TENANT_ID AZURE_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_ID AZURE_TENANT_ID AZURE_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-alkalmazás Service és Azure Functions – konfigurációs - hibaelhárítás
- Azure Arc – konfiguráció
- Azure Kubernetes Service – konfigurációs - hibaelhárítás
- Azure Service Fabric –konfiguráció
- Azure-beli virtuális gépek és méretezési csoportok – konfigurációs - hibaelhárítás
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 curl
keresztü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 curl
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.
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:
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: