Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a hibavizsgálati technikákat, az Azure Identity Java-ügyfélkódtár hitelesítő adatainak típusaival kapcsolatos gyakori hibákat és a hibák elhárításának lépéseit ismerteti. Mivel a Java Azure SDK-ban számos hitelesítő adattípus érhető el, a hibaelhárítási útmutatót használati forgatókönyv alapján szakaszokra osztottuk. A következő szakaszok állnak rendelkezésére:
- Az Azure által üzemeltetett alkalmazáshitelesítés hibaelhárítása
- Fejlesztési környezet hitelesítésének hibaelhárítása
- Szolgáltatási főszereplő hitelesítésének hibaelhárítása
- Több-bérlős hitelesítés hibaelhárítása
A cikk további része általános hibaelhárítási technikákat és útmutatást tartalmaz, amelyek az összes hitelesítő adattípusra vonatkoznak.
Azure Identity-kivételek kezelése
Amint az a Hibaelhárítási áttekintésAzure SDK for Java szakaszában található kivételkezelésben szerepel, az Azure SDK for Java számos kivételt és hibakódot tartalmaz, amelyeket a Java-hoz készült Azure SDK képes dobni. Konkrétan az Azure Identity esetében van néhány fontos kivételtípus, amelyeket fontos megérteni.
ClientAuthenticationException
Bármely szolgáltatás kliens metódus, amely kérést küld a szolgáltatáshoz, kivételeket okozhat, amelyek a hitelesítési hibákból származnak. Ezek a kivételek azért lehetségesek, mert a jogkivonatot a rendszer a hitelesítő adatoktól kéri a szolgáltatás első hívásakor, valamint a szolgáltatáshoz érkező, a jogkivonat frissítéséhez szükséges kérések esetén.
Az Azure Identity osztályok ClientAuthenticationException-t emelnek ki, hogy megkülönböztessék ezeket a hibákat a szolgáltatási kliens hibáitól, a hiba forrásának részleteivel a kivételüzenetben és esetleg a hibaüzenetben. Az alkalmazástól függően előfordulhat, hogy ezek a hibák helyreállíthatók vagy nem állíthatók helyre. Az alábbi kód egy példát mutat be az elkapására ClientAuthenticationException:
// Create a secret client using the DefaultAzureCredential
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://myvault.vault.azure.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
try {
KeyVaultSecret secret = client.getSecret("secret1");
} catch (ClientAuthenticationException e) {
//Handle Exception
e.printStackTrace();
}
CredentialUnavailableException (HitelesítésiAdatNemElérhetőKivétel)
CredentialUnavailableException egy speciális kivételtípus, amely a következőből ClientAuthenticationExceptionszármazik: . Ez a kivételtípus azt jelzi, hogy a hitelesítő adatok nem hitelesíthetők az aktuális környezetben a szükséges konfiguráció vagy beállítás hiánya miatt. Ez a kivétel jelzésként használatos a láncolt hitelesítési adatok típusai, például a DefaultAzureCredential és ChainedTokenCredential számára, hogy a lánc későbbi részében folytassák a többi hitelesítési adatforma kipróbálását.
Engedélyekkel kapcsolatos problémák
A HttpResponseExceptionStatusCode szolgáltatásügyfelek hívásai, amelyek 401 vagy 403 kódot eredményeznek, gyakran azt jelzik, hogy a hívó nem rendelkezik a megfelelő engedélyekkel a megadott API-hoz. Ellenőrizze a szolgáltatás dokumentációjában, hogy mely szerepkörök szükségesek az adott kéréshez. Győződjön meg arról, hogy a hitelesített felhasználó vagy szolgáltatásnév megkapta a megfelelő szerepköröket az erőforráson.
Releváns információk keresése a kivételüzenetekben
ClientAuthenticationException dobásra kerül, amikor a hitelesítés során váratlan hibák lépnek fel. Ezek a hibák tartalmazhatnak a Microsoft Entra biztonsági jogkivonat-szolgáltatáshoz (STS) érkező kérésekből érkező hibákat, és gyakran tartalmaznak a diagnózishoz hasznos információkat. Vegye figyelembe a következő ClientAuthenticationException üzenetet:
ClientSecretCredential authentication failed: A configuration issue is preventing authentication - check the error message from the server for details. You can modify the configuration in the application registration portal. See https://aka.ms/msal-net-invalid-client for details.
Original exception:
AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.
Trace ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Correlation ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Timestamp: 2022-01-01 00:00:00Z
Ez a hibaüzenet a következő információkat tartalmazza:
Sikertelen hitelesítő adattípus: Az a hitelesítő adattípus, amelyet nem sikerült hitelesíteni – ebben az esetben.
ClientSecretCredentialEz az információ hasznos lehet a láncolt hitelesítő adatok típusaival kapcsolatos problémák diagnosztizálásakor, példáulDefaultAzureCredentialvagyChainedTokenCredentialesetén.STS-hibakód és üzenet: A Microsoft Entra STS által visszaadott hibakód és üzenet –
AADSTS7000215: Invalid client secret provided.ebben az esetben ez az információ betekintést nyújt a kérés sikertelenségének konkrét okába. Ebben a konkrét esetben például azért, mert a megadott ügyfélkód helytelen. Az STS-hibakódokkal kapcsolatos további információkért tekintse meg a Microsoft Entra hitelesítési és engedélyezési hibakódjainakAADSTS hibakódokkal foglalkozó szakaszát.Korrelációs azonosító és időbélyeg: A kérés kiszolgálóoldali naplókban való azonosításához használt korrelációs azonosító és hívásidőbélyeg. Ez az információ hasznos a mérnökök támogatásához a váratlan STS-hibák diagnosztizálásakor.
Naplózás engedélyezése és konfigurálása
Az Azure SDK for Java konzisztens naplózási történetet kínál az alkalmazáshibák elhárításához és a megoldás felgyorsításához. Az előállított naplók rögzítik az alkalmazás folyamatát, mielőtt elérnék a terminálállapotot, hogy segítsenek megtalálni a gyökérproblémát. A naplózással kapcsolatos útmutatásért tekintse meg a Naplózás konfigurálása az Azure SDK for Java-ban és a Hibaelhárítás a nézetben című témakört.
A mögöttes MSAL-kódtár, az MSAL4J is részletes naplózással rendelkezik. Ez a naplózás rendkívül részletes, és az összes személyes adatot tartalmazza, beleértve a tokeneket is. Ez a naplózás különösen hasznos, amikor a terméktámogatással dolgozik. Az 1.10.0-s verziótól a naplózást biztosító hitelesítő adatok rendelkeznek egy úgynevezett metódussal enableUnsafeSupportLogging().
Figyelmeztetés
Az Azure Identity-kódtárban található kérések és válaszok bizalmas információkat tartalmaznak. A fiókbiztonság veszélyeztetésének elkerülése érdekében óvintézkedéseket kell tennie a naplók védelme érdekében a kimenet testreszabása során.
Következő lépések
Ha a cikkben található hibaelhárítási útmutató nem segít megoldani az Azure SDK for Java könyvtárak használatakor felmerülő problémákat, javasoljuk, hogy jelezzen egy problémát az Java-hoz készült Azure SDK GitHub-adattárában.