Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- Java Development Kit (JDK) 8 nebo novější
- Odborník
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.
Vaše aplikace je nakonfigurovaná s těmito atributy.
Krok 2: Stažení projektu Java
Poznámka:
Enter_the_Supported_Account_Info_Here
Krok 3: Souhlas správce
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: Správce cloudových aplikací 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í:
Správce cloudové aplikace
Pokud jste správcem cloudové aplikace vašeho tenanta, přejděte na stránku Oprávnění rozhraní API a vyberte Udělení souhlasu správce pro Enter_the_Tenant_Name_Here.
Standardní uživatel
Pokud jste standardním uživatelem vašeho tenanta, musíte požádat správce cloudových aplikací 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 příkazového 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 knihovnu MSAL Java s démonickými aplikacemi, 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 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_SECRETJe klientský tajný klíč vytvořený pro aplikaci v portálu Azure. CLIENT_IDJe ID aplikace (klienta), kterou jste zaregistrovali na webu Azure Portal. Tuto hodnotu najdete na stránce Přehled aplikace na webu Azure Portal. AUTHORITYKoncový bod STS pro ověřování uživatelů. 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 SCOPEObsahuje požadované obory. Pro důvěrné klienty by měl být použit formát podobný {Application ID URI}/.default, aby označil, že požadované obory jsou ty, které jsou staticky definovány v objektu aplikace nastaveném v Azure portálu (pro Microsoft Graph{Application ID URI}odkazuje nahttps://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.