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 számos hitelesítő adattípus érhető el a Java Azure SDK, ez a hibaelhárítási útmutató használati forgatókönyv alapján szakaszokra oszlik. 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 azt a hibaelhárítási áttekintés Java szakaszának Azure SDK kivételkezelésében is említettük, a Java Azure SDK a kivételek és hibakódok átfogó készletét hozhatják létre. A Azure Identitás esetében fontos néhány fontos kivételtípus megértése.
ClientAuthenticationException
Bármely szolgáltatásügyfél-módszer, amely kérést küld a szolgáltatáshoz, kivételeket okozhat a hitelesítési hibák alól. Ezek a kivételek azért fordulhatnak elő, mert a jogkivonatot a rendszer a hitelesítő adatokból kéri a szolgáltatás első hívásakor, valamint a szolgáltatásnak a jogkivonat frissítéséhez szükséges minden további kérése 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. 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: . Ezzel a kivételtípussal jelezheti, 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 azt is jelzi a láncba kapcsolt hitelesítőadat-típusoknak, például a DefaultAzureCredential és a ChainedTokenCredential típusnak, hogy a láncba kapcsolt hitelesítő adatnak a lánc későbbi elemeinél továbbra is meg kell próbálnia más hitelesítőadat-típusokat.
Engedélyproblémák
Azok a szolgáltatáskliensekhez intézett hívások, amelyek HttpResponseException eredményeznek 401-es vagy 403-as StatusCode mellett, gyakran azt jelzik, hogy a hívó nem rendelkezik elegendő jogosultsággal a megadott API használatá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 megkapja a megfelelő szerepköröket az erőforráson.
Releváns információk keresése a kivételüzenetekben
A ClientAuthenticationException kivétel akkor jelenik meg, ha váratlan hibák lépnek fel a hitelesítő adatok hitelesítése közben. 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 olyan információkat tartalmaznak, amelyek segítenek a diagnózisban. 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-ből visszaadott hibakód és üzenet – ebben az esetben ez az információ bemutatja a
AADSTS7000215: Invalid client secret provided.kérés sikertelen voltának konkrét okát. Ebben a konkrét esetben például 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
A Java Azure SDK egységes 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. A 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 túlzottan részletes, és minden személyes adatot tartalmaz, 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 tenni 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 ügyfélkódtárainak használata során felmerülő problémákat, jelentsen be egy problémát az Azure SDK for Java GitHub-adattárban.