Rövid útmutató: Jogkivonat beszerzése és a Microsoft Graph API meghívása Egy Java-konzolalkalmazásból az alkalmazás identitásával
Üdvözöljük! Valószínűleg nem ez az a lap, amire számított. Amíg dolgozunk a javításon, ez a hivatkozás a megfelelő cikkre viszi:
Rövid útmutató: Jogkivonat beszerzése és a Microsoft Graph meghívása Java-démonalkalmazásból
Elnézést kérünk a kellemetlenségért, és köszönjük türelmét, amíg dolgozunk a probléma megoldásán.
Ebben a rövid útmutatóban letölthet és futtathat egy kódmintát, amely bemutatja, hogy egy Java-alkalmazás hogyan szerezhet be hozzáférési jogkivonatot az alkalmazás identitásával a Microsoft Graph API meghívásához és a címtárban lévő felhasználók listájának megjelenítéséhez. A kódminta bemutatja, hogy egy felügyelet nélküli feladat vagy Windows-szolgáltatás hogyan futtatható alkalmazásidentitással a felhasználó identitása helyett.
Előfeltételek
A minta futtatásához a következőkre van szükség:
- Java Development Kit (JDK) 8 vagy újabb
- Maven
A gyorsútmutató-alkalmazás letöltése és konfigurálása
1. lépés: Az alkalmazás konfigurálása az Azure Portalon
Ahhoz, hogy a rövid útmutató kódmintája működjön, létre kell hoznia egy titkos ügyfélkulcsot, és hozzá kell adnia a Graph API User.Read.All alkalmazásengedélyét.
Az alkalmazás konfigurálva van ezekkel az attribútumokkal.
2. lépés: A Java-projekt letöltése
Feljegyzés
Enter_the_Supported_Account_Info_Here
3. lépés: Rendszergazdai hozzájárulás
Ha ezen a ponton próbálja futtatni az alkalmazást, HTTP 403 – Tiltott hiba jelenik meg: Insufficient privileges to complete the operation
. Ez a hiba azért fordul elő, mert minden csak alkalmazásra vonatkozó engedély rendszergazdai hozzájárulást igényel: A címtár felhőalkalmazás-rendszergazdájának beleegyezést kell adnia az alkalmazáshoz. Szerepkörétől függően válasszon az alábbi lehetőségek közül:
Felhőalkalmazás-rendszergazda
Ha Ön a bérlő felhőalkalmazás-rendszergazdája, lépjen az API-engedélyek lapra, és válassza a Rendszergazdai hozzájárulás megadása Enter_the_Tenant_Name_Here lehetőséget.
Standard felhasználó
Ha Ön a bérlő szokásos felhasználója, akkor meg kell kérnie egy felhőalkalmazás-rendszergazdát, hogy adjon rendszergazdai hozzájárulást az alkalmazáshoz. Ehhez adja meg a következő URL-címet a rendszergazdának:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
4. lépés: Az alkalmazás futtatása
A mintát közvetlenül az IDE-ből ClientCredentialGrant.java fő metódusának futtatásával tesztelheti.
A rendszerhéjból vagy a parancssorból:
$ mvn clean compile assembly:single
Ez létrehoz egy msal-client-credential-secret-1.0.0.jar fájlt a /targets könyvtárban. Futtassa ezt a Java-végrehajtható fájllal az alábbi módon:
$ java -jar msal-client-credential-secret-1.0.0.jar
A futtatás után az alkalmazásnak meg kell jelenítenie a felhasználók listáját a konfigurált bérlőben.
Fontos
Ez a rövid útmutató alkalmazás egy ügyfél titkos kódjával azonosítja magát bizalmas ügyfélként. Mivel az ügyfélkulcs egyszerű szövegként van hozzáadva a projektfájlokhoz, biztonsági okokból javasoljuk, hogy az alkalmazás éles alkalmazásként való használata előtt az ügyfélkulcs helyett tanúsítványt használjon. A tanúsítvány használatával kapcsolatos további információkért tekintse meg ezeket az utasításokat ugyanabban a GitHub-adattárban ebben a mintában, de a második mappában , az msal-client-credential-certificate mappában.
További információ
MSAL Java
Az MSAL Java az a kódtár, amellyel bejelentkezhet a felhasználókba, és jogkivonatokat kérhet le a Microsoft Identitásplatform által védett API-k eléréséhez. A leírás szerint ez a rövid útmutató a jogkivonatokat delegált engedélyek helyett az alkalmazás saját identitásával kéri le. Az ebben az esetben használt hitelesítési folyamatot ügyfél-hitelesítő adatok oauth folyamatának nevezzük. Az MSAL Java démonalkalmazásokkal való használatáról ebben a cikkben olvashat bővebben.
MSAL4J hozzáadása az alkalmazáshoz a Maven vagy a Gradle használatával a függőségek kezeléséhez az alkalmazás pom.xml (Maven) vagy build.gradle (Gradle) fájljának alábbi módosításával.
A pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
A build.gradle-ben:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Az MSAL inicializálása
Adjon hozzá egy hivatkozást az MSAL for Java-hoz, ha hozzáadja a következő kódot a fájl tetejére, ahol az MSAL4J-t fogja használni:
import com.microsoft.aad.msal4j.*;
Ezután inicializálja az MSAL-t az alábbi kóddal:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication cca =
ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
Ahol: Leírás CLIENT_SECRET
Az azure portalon létrehozott ügyfélkulcs az alkalmazáshoz. CLIENT_ID
Az Azure Portalon regisztrált alkalmazás alkalmazásazonosítója (ügyfél-azonosítója). Ezt az értéket az alkalmazás Áttekintés oldalán találja az Azure Portalon. AUTHORITY
A felhasználó által hitelesítendő STS-végpont. Általában https://login.microsoftonline.com/{tenant}
nyilvános felhő esetén, ahol a(z) {tenant} a bérlő vagy a bérlőazonosító neve.
Jogkivonatok lekérése
Ha jogkivonatot szeretne lekérni az alkalmazás identitásával, használja a következő acquireToken
módszert:
IAuthenticationResult result;
try {
SilentParameters silentParameters =
SilentParameters
.builder(SCOPE)
.build();
// try to acquire token silently. This call will fail since the token cache does not
// have a token for the application you are requesting an access token for
result = cca.acquireTokenSilently(silentParameters).join();
} catch (Exception ex) {
if (ex.getCause() instanceof MsalException) {
ClientCredentialParameters parameters =
ClientCredentialParameters
.builder(SCOPE)
.build();
// Try to acquire a token. If successful, you should see
// the token information printed out to console
result = cca.acquireToken(parameters).join();
} else {
// Handle other exceptions accordingly
throw ex;
}
}
return result;
Ahol: Leírás SCOPE
A kért hatóköröket tartalmazza. Bizalmas ügyfelek esetén ennek a formátumnak hasonlónak {Application ID URI}/.default
kell lennie ahhoz, hogy jelezze, hogy a kért hatókörök statikusan vannak definiálva az Azure Portalon beállított alkalmazásobjektumban (a Microsoft Graph{Application ID URI}
esetében erre mutat).https://graph.microsoft.com
Az egyéni webes API-khoz{Application ID URI}
az Azure Portal Alkalmazásregisztrációk API-k elérhetővé tétele szakaszában van definiálva.
Súgó és támogatás
Ha segítségre van szüksége, szeretne jelentést készíteni egy problémáról, vagy szeretne többet megtudni a támogatási lehetőségekről, olvassa el a súgót és a fejlesztők támogatását.
Következő lépések
A démonalkalmazásokkal kapcsolatos további információkért tekintse meg a forgatókönyv kezdőlapján.