Rychlý start: Získání tokenu a volání Microsoft Graphu z aplikace démon Java

V tomto rychlém startu stáhnete a spustíte ukázku kódu, která ukazuje, jak aplikace v Javě může získat přístupový token pomocí identity aplikace k volání rozhraní Microsoft Graph API a zobrazení seznamu uživatelů v adresáři. Ukázka kódu ukazuje, jak může bezobslužná úloha nebo služba Systému Windows běžet s identitou aplikace místo identity uživatele.

Diagram znázorňující, jak funguje ukázková aplikace generovaná v tomto rychlém startu

Požadavky

Ke spuštění této ukázky potřebujete:

Registrace a stažení aplikace pro rychlý start

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Krok 1: Registrace aplikace

Pokud chcete zaregistrovat aplikaci a ručně přidat informace o registraci aplikace ke svému řešení, postupujte následovně:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.
  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
  3. Přejděte k registracím> aplikací identit.>
  4. Vyberte Nová registrace.
  5. Zadejte název aplikace, například Daemon-console. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
  6. Vyberte Zaregistrovat.
  7. V části Spravovat vyberte Certifikáty a tajné kódy.
  8. V části Tajné kódy klienta vyberte Nový tajný klíč klienta, zadejte název a pak vyberte Přidat. Poznamenejte si hodnotu tajného kódu v bezpečném umístění pro použití v pozdějším kroku.
  9. V části Spravovat vyberte Oprávnění>rozhraní API Přidat oprávnění. Vyberte Microsoft Graph.
  10. Vyberte Oprávnění aplikace.
  11. V části Uzel uživatele vyberte User.Read.All a pak vyberte Přidat oprávnění.

Krok 2: Stažení projektu Java

Stažení projektu démona v Javě

Krok 3: Konfigurace projektu Java

  1. Extrahujte soubor ZIP do místní složky blízko kořenového adresáře disku, například C:\Azure-Samples.
  2. Přejděte do msal-client-credential-secret podsložky.
  3. Upravte a nahraďte src\main\resources\application.properties hodnoty polí AUTHORITYCLIENT_IDa SECRET následujícím fragmentem kódu:
  AUTHORITY=https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/
  CLIENT_ID=Enter_the_Application_Id_Here
  SECRET=Enter_the_Client_Secret_Here

Kde:

  • Hodnota Enter_the_Application_Id_Here je ID aplikace (klienta), kterou jste zaregistrovali.
  • Enter_the_Tenant_Id_Here– tuto hodnotu nahraďte ID tenanta nebo názvem tenanta (například contoso.microsoft.com).
  • Enter_the_Client_Secret_Here – tuto hodnotu nahraďte tajným kódem klienta vytvořeným v kroku 1.

Tip

Pokud chcete najít hodnoty ID aplikace (klienta), ID adresáře (tenanta), přejděte na stránku Přehled aplikace. Pokud chcete vygenerovat nový klíč, přejděte na stránku Certifikáty a tajné kódy .

Pokud se v tomto okamžiku pokusíte spustit aplikaci, zobrazí se chyba HTTP 403 – Zakázáno : Insufficient privileges to complete the operation. K této chybě dochází, protože jakékoli oprávnění jen pro aplikaci vyžaduje souhlas správce: Globální správce vašeho adresáře musí udělit souhlas s vaší aplikací. V závislosti na vaší roli vyberte jednu z následujících možností:

Globální správce tenanta

Pokud jste globální správce tenanta, přejděte na stránku Oprávnění rozhraní API v Registrace aplikací a vyberte Udělit souhlas správce pro {Název tenanta} (Kde {Název tenanta} je název vašeho adresáře).

Standardní uživatel

Pokud jste standardním uživatelem tenanta, musíte požádat globálního správce o udělení souhlasu správce pro vaši aplikaci. Chcete-li to provést, dejte správci následující adresu URL:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Kde:

  • Enter_the_Tenant_Id_Here– tuto hodnotu nahraďte ID tenanta nebo názvem tenanta (například contoso.microsoft.com).
  • Hodnota Enter_the_Application_Id_Here je ID aplikace (klienta), kterou jste zaregistrovali.

Krok 5: Spuštění aplikace

Ukázku můžete otestovat přímo spuštěním hlavní metody ClientCredentialGrant.java z integrovaného vývojového prostředí ( IDE).

Z prostředí nebo příkazového řádku:

$ mvn clean compile assembly:single

Tím se vygeneruje msal-client-credential-secret-1.0.0.jar soubor ve vašem /targets adresáři. Spusťte tento příkaz pomocí spustitelného souboru Java, jak je znázorněno níže:

$ java -jar msal-client-credential-secret-1.0.0.jar

Po spuštění by aplikace měla zobrazit seznam uživatelů v nakonfigurovaném tenantovi.

Důležité

Tato aplikace pro rychlý start používá tajný klíč klienta k identifikaci samotného jako důvěrného klienta. Vzhledem k tomu, že tajný klíč klienta se do souborů projektu přidá jako prostý text, z bezpečnostních důvodů se doporučuje místo tajného klíče klienta použít certifikát před zvážením aplikace jako produkční aplikace. Další informace o použití certifikátu najdete v těchto pokynech ve stejném úložišti GitHub pro tuto ukázku, ale ve druhé složce MSAL-client-credential-certificate.

Více informací

MSAL v Javě

MSAL Java je knihovna používaná k přihlášení uživatelů a vyžádání tokenů používaných pro přístup k rozhraní API chráněnému platformou Microsoft Identity Platform. Jak je popsáno, tento rychlý start vyžaduje tokeny pomocí vlastní identity aplikace místo delegovaných oprávnění. Tok ověřování použitý v tomto případě se označuje jako tok ověření přihlašovacích údajů klienta. Další informace o tom, jak používat JAZYK MSAL Java s aplikacemi démonů, najdete v tomto článku.

Přidejte do aplikace MSAL4J pomocí Mavenu nebo Gradle ke správě závislostí provedením následujících změn v souboru pom.xml aplikace (Maven) nebo build.gradle (Gradle).

V pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

V build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Inicializace knihovny MSAL

Přidejte odkaz na MSAL pro Javu přidáním následujícího kódu na začátek souboru, kde budete používat MSAL4J:

import com.microsoft.aad.msal4j.*;

Potom inicializujte knihovnu MSAL pomocí následujícího kódu:

IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);

ConfidentialClientApplication cca =
        ConfidentialClientApplication
                .builder(CLIENT_ID, credential)
                .authority(AUTHORITY)
                .build();
Kde: Popis
CLIENT_SECRET Je tajný klíč klienta vytvořený pro aplikaci.
CLIENT_ID Je ID aplikace (klienta) registrované aplikace. Tuto hodnotu najdete na stránce Přehled aplikace.
AUTHORITY Koncový bod služby tokenů zabezpečení pro uživatele k ověření, Obvykle https://login.microsoftonline.com/{tenant} pro veřejný cloud, kde {tenant} je název vašeho tenanta nebo ID tenanta.

Žádosti o tokeny

Pokud chcete požádat o token pomocí identity aplikace, použijte acquireToken metodu:

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;
Kde: Popis
SCOPE Obsahuje požadované obory. U důvěrných klientů by se měl použít formát podobný {Application ID URI}/.default označení, že požadované obory jsou ty, které jsou staticky definované v objektu aplikace (pro Microsoft Graph, {Application ID URI} odkazuje na https://graph.microsoft.com). Pro vlastní webová rozhraní API {Application ID URI} je definována v části Vystavení rozhraní API v Registrace aplikací.

Nápověda a podpora

Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.

Další kroky

Další informace o aplikacích démona najdete na cílové stránce scénáře.