Sdílet prostřednictvím


Rychlý start: Získání tokenu a volání rozhraní Microsoft Graph API z konzolové aplikace v Javě pomocí identity aplikace

Vítejte Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:

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

Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.

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.

Požadavky

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

Stažení a konfigurace aplikace pro rychlý start

Krok 1: Konfigurace aplikace na webu Azure Portal

Aby ukázkový kód pro tento rychlý start fungoval, musíte vytvořit tajný klíč klienta a přidat oprávnění aplikace User.Read.All rozhraní Graph API.

Already configured Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení projektu Java

Poznámka:

Enter_the_Supported_Account_Info_Here

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 aplikace vyžaduje souhlas Správa: globální Správa istrator 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áva istrator, přejděte na stránku Oprávnění rozhraní API a vyberte Udělit souhlas správce pro Enter_the_Tenant_Name_Here.

Standardní uživatel

Pokud jste standardním uživatelem vašeho tenanta, musíte požádat globálního Správa istratora 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

Krok 4: 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 soubor msal-client-credential-secret-1.0.0.jar v adresáři /targets. 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 na webu Azure Portal.
CLIENT_ID Je ID aplikace (klienta), kterou jste zaregistrovali na webu Azure Portal. Tuto hodnotu najdete na stránce Přehled aplikace na webu Azure Portal.
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 to mělo být ve formátu podobném {Application ID URI}/.default označení, že požadované obory jsou ty, které jsou staticky definované v objektu aplikace nastaveném na webu Azure Portal (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í na webu Azure Portal.

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.