Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hoş geldiniz! Bu muhtemelen beklediğiniz sayfa değildir. Bir düzeltme üzerinde çalışırken bu bağlantı sizi doğru makaleye götürmelidir:
Hızlı Başlangıç: Java daemon uygulamasından belirteç alma ve Microsoft Graph'ı çağırma
Bu sorun için özür dileriz ve bu sorunu çözmek için çalışırken sabrınızı takdir ediyoruz.
Bu hızlı başlangıçta, Bir Java uygulamasının Microsoft Graph API'sini çağırmak ve dizindeki kullanıcıların listesini görüntülemek için uygulamanın kimliğini kullanarak nasıl erişim belirteci alabileceğini gösteren bir kod örneği indirip çalıştıracaksınız. Kod örneği, katılımsız bir işin veya Windows hizmetinin kullanıcı kimliği yerine uygulama kimliğiyle nasıl çalışabileceğini gösterir.
Önkoşullar
Bu örneği çalıştırmak için şunları yapmanız gerekir:
- Java Development Kit (JDK) 8 veya üzeri
- Maven
Hızlı başlangıç uygulamasını indirme ve yapılandırma
1. Adım: Uygulamayı Azure portalında yapılandırma
Bu hızlı başlangıcın kod örneğinin çalışabilmesi için bir istemci sırrı oluşturmanız ve Graph API'sinin User.Read.All uygulama iznini eklemeniz gerekir.
Uygulamanız bu özniteliklerle yapılandırıldı.
2. Adım: Java projesini indirme
Not
Enter_the_Supported_Account_Info_Here
3. Adım: Yönetici onayı
Uygulamayı bu noktada çalıştırmayı denerseniz HTTP 403 - Yasak hatası alırsınız: Insufficient privileges to complete the operation. Bu hata, yalnızca uygulama izinlerinin yönetici onayı gerektirmesi nedeniyle oluşur: Dizininizin Bulut Uygulama Yöneticisi uygulamanıza onay vermelidir. Rolünüze bağlı olarak aşağıdaki seçeneklerden birini belirleyin:
Bulut Uygulaması Yöneticisi
Kiracınızın Bulut Uygulaması Yöneticisiyseniz API İzinleri sayfasına gidip Enter_the_Tenant_Name_Here için yönetici onayı ver'i seçin.
Standart kullanıcı
Kiracınızın standart kullanıcısıysanız, bulut uygulaması yöneticisinden uygulamanız için yönetici onayı vermesini istemeniz gerekir. Bunu yapmak için yöneticinize aşağıdaki URL'yi verin:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
4. Adım: Uygulamayı çalıştırma
IDE'nizden ClientCredentialGrant.java ana yöntemini çalıştırarak örneği doğrudan test edebilirsiniz.
Shell veya komut satırından:
$ mvn clean compile assembly:single
Bu, /targets dizininizde bir msal-client-credential-secret-1.0.0.jar dosyası oluşturur. Aşağıdaki gibi Java yürütülebilir dosyanızı kullanarak bunu çalıştırın:
$ java -jar msal-client-credential-secret-1.0.0.jar
Çalıştırdıktan sonra, uygulamanın yapılandırılan kiracıdaki kullanıcı listesini görüntülemesi gerekir.
Önemli
Bu hızlı başlangıç uygulaması, kendisini gizli bir istemci olarak tanımlamak için bir istemci sırrı kullanır. İstemci gizli dizisi proje dosyalarınıza düz metin olarak eklendiğinden, güvenlik nedeniyle, uygulamayı üretim uygulaması olarak değerlendirmeden önce istemci gizli dizisi yerine bir sertifika kullanmanız önerilir. Sertifika kullanma hakkında daha fazla bilgi için, bu örnek için aynı GitHub deposundaki bu yönergelere, ancak ikinci klasörde msal-client-credential-certificate bölümüne bakın.
Daha Fazla Bilgi
MSAL Java
MSAL Java, kullanıcılarda oturum açmak ve Microsoft kimlik platformu tarafından korunan bir API'ye erişmek için kullanılan belirteçleri istemek için kullanılan kitaplıktır. Açıklandığı gibi, bu hızlı başlangıç kılavuzu, belirteçleri temsilci izinleri yerine uygulamanın kendi kimliğini kullanarak istemekte. Bu durumda kullanılan kimlik doğrulama akışı, istemci kimlik bilgileri oauth akışı olarak bilinir. MSAL Java'yı daemon uygulamalarıyla kullanma hakkında daha fazla bilgi için bu makaleye bakın.
Uygulamanın pom.xml (Maven) veya build.gradle (Gradle) dosyasında aşağıdaki değişiklikleri yaparak bağımlılıklarınızı yönetmek için Maven veya Gradle kullanarak uygulamanıza MSAL4J ekleyin.
pom.xml dosyasında:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
build.gradle dosyasında:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
MSAL (Microsoft Authentication Library) başlatma
MSAL4J kullanacağınız dosyanın en üst kısmına aşağıdaki kodu ekleyerek Java için MSAL referansı ekleyin.
import com.microsoft.aad.msal4j.*;
Sonra da şu kodu kullanarak MSAL başlatın:
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication cca =
ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
Nerede: Açıklama CLIENT_SECRETAzure portalında uygulama için oluşturulmuş istemci gizli anahtarıdır. CLIENT_IDUygulama (istemci) Kimliği, Azure portalda kayıtlı uygulamadır. Bu değeri Azure portalda uygulamanın Genel bakış sayfasında bulabilirsiniz. AUTHORITYKullanıcı kimlik doğrulaması için STS uç noktası. Genellikle https://login.microsoftonline.com/{tenant}genel bulut için, burada {tenant} kiracınızın adı veya kiracı kimliğinizdir.
Belirteç talep etme
Uygulamanın kimliğini kullanarak belirteç istemek için acquireToken yöntemini kullanın.
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;
Nerede: Açıklama SCOPEİstenen kapsamları içerir. Gizli istemciler için, istenen kapsamların Azure portalında ayarlanan uygulama nesnesinde statik olarak tanımlanan kapsamlar olduğunu belirtmek için şu biçimi kullanmalıdır: {Application ID URI}/.default(Microsoft Graph için,{Application ID URI},https://graph.microsoft.comöğesine işaret eder). Özel web API'leri için,{Application ID URI}Azure portalındaki Uygulama kayıtları API'yikullanıma sunma bölümünde tanımlanır.
Yardım ve destek
Yardıma ihtiyacınız varsa, bir sorunu bildirmek veya destek seçenekleriniz hakkında bilgi edinmek istiyorsanız bkz . Geliştiriciler için yardım ve destek.
Sonraki adımlar
Daemon uygulamaları hakkında daha fazla bilgi edinmek için senaryo giriş sayfasına bakın.