Rövid útmutató: Jogkivonat beszerzése és a Microsoft Graph meghívása Java-démonalkalmazásból

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.

Diagram showing how the sample app generated by this quickstart works.

Előfeltételek

A minta futtatásához a következőkre van szükség:

A rövid útmutató mintaalkalmazásának regisztrálása és letöltése

Tipp.

A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.

1. lépés: Az alkalmazás regisztrálása

Az alkalmazás regisztrálásához és az alkalmazás regisztrációs információinak a megoldáshoz való kézi hozzáadásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásfejlesztőként.
  2. Ha több bérlőhöz is hozzáfér, a felső menü Gépház ikonjávalválthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
  3. Keresse meg az Identitásalkalmazások>>alkalmazásregisztrációit.
  4. Új regisztráció kiválasztása.
  5. Adja meg például Daemon-consoleaz alkalmazás nevét. Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja.
  6. Válassza ki a pénztárgépet.
  7. A Kezelés területen válassza a Tanúsítványok és titkos kódok lehetőséget.
  8. Az Ügyfél titkos kulcsai területen válassza az Új ügyfélkulcs lehetőséget, adjon meg egy nevet, majd válassza a Hozzáadás lehetőséget. Jegyezze fel a titkos kód értékét egy biztonságos helyen egy későbbi lépésben való használatra.
  9. A Kezelés területen válassza az API-engedélyek>Hozzáadása engedélyt. Válassza a Microsoft Graphot.
  10. Válassza ki az alkalmazásengedélyeket.
  11. A Felhasználói csomópont területen válassza a User.Read.All elemet, majd az Engedélyek hozzáadása lehetőséget.

2. lépés: A Java-projekt letöltése

A Java démonprojekt letöltése

3. lépés: A Java-projekt konfigurálása

  1. Bontsa ki a zip-fájlt a lemez gyökeréhez közeli helyi mappába, például C:\Azure-Samples.
  2. Lépjen az msal-client-credential-secret almappára.
  3. Szerkessze src\main\resources\application.properties és cserélje le a mezők AUTHORITYértékeit, CLIENT_IDés SECRET cserélje le a következő kódrészletet:
  AUTHORITY=https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/
  CLIENT_ID=Enter_the_Application_Id_Here
  SECRET=Enter_the_Client_Secret_Here

Ahol:

  • Enter_the_Application_Id_Here – ez a regisztrált alkalmazáshoz tartozó Alkalmazás (ügyfél) azonosítója érték.
  • Enter_the_Tenant_Id_Here- cserélje le ezt az értéket a bérlőazonosítóra vagy a bérlő nevére (például contoso.microsoft.com).
  • Enter_the_Client_Secret_Here - cserélje le ezt az értéket az 1. lépésben létrehozott ügyfélkódra.

Tipp.

Az alkalmazás (ügyfél) azonosítójának (címtár- (bérlői) azonosítójának értékeinek megkereséséhez nyissa meg az alkalmazás Áttekintés lapját. Új kulcs létrehozásához lépjen a Tanúsítványok > titkos kódok lapra.

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élyhez Rendszergazda hozzájárulás szükséges: a címtár globális Rendszergazda istratorának hozzájárulást kell adnia az alkalmazáshoz. Szerepkörétől függően válasszon az alábbi lehetőségek közül:

Globális bérlői rendszergazda

Ha Ön globális bérlői rendszergazda, lépjen a Alkalmazásregisztrációk API-engedélyek lapjára, és válassza a rendszergazdai hozzájárulás megadása a(z) {Tenant Name} számára (ahol a(z) {Tenant Name} a címtár neve).

Standard felhasználó

Ha Ön a bérlő szokásos felhasználója, akkor egy globális Rendszergazda istratort kell kérnie, 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

Ahol:

  • Enter_the_Tenant_Id_Here- cserélje le ezt az értéket a bérlőazonosítóra vagy a bérlő nevére (például contoso.microsoft.com)
  • Enter_the_Application_Id_Here – ez a regisztrált alkalmazáshoz tartozó Alkalmazás (ügyfél) azonosítója érték.

5. 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 címtá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 alkalmazáshoz létrehozott ügyfélkód.
CLIENT_ID A regisztrált alkalmazás (ügyfél) azonosítója. Ezt az értéket az alkalmazás Áttekintés lapján találja.
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 kell lennie ahhoz, {Application ID URI}/.default hogy jelezze, hogy a kért hatókörök statikusan vannak definiálva az alkalmazásobjektumban (a Microsoft Graph {Application ID URI} esetében erre mutat).https://graph.microsoft.com Egyéni webes API-k esetén a Alkalmazásregisztrációk API-k elérhetővé tétele szakaszában van definiálva. {Application ID URI}

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.