Aracılığıyla paylaş


Hızlı Başlangıç: Python daemon uygulamasından belirteç alma ve Microsoft Graph'ı çağırma

Bu hızlı başlangıçta, Python 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.

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

Önkoşullar

Bu örneği çalıştırmak için şunları yapmanız gerekir:

Hızlı başlangıç uygulamanızı kaydetme ve indirme

1. Adım: Uygulamanızı kaydetme

İpucu

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

Uygulamanızı kaydetmek ve uygulama kayıt bilgilerinizi çözümünüze el ile eklemek için şu adımları izleyin:

  1. Microsoft Entra yönetim merkezinde oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, dizinler + abonelikler menüsünden uygulamayı kaydetmek istediğiniz kiracıya geçmek için üst menüdeki Ayarlar simgesini kullanın.
  3. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları Yeni kayıt'ı seçin.
  4. Uygulamanız için bir Ad girin, örneğin Daemon-console. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
  5. Kaydet'i seçin.
  6. Yönet'in altında Sertifikalar ve gizli diziler'i seçin.
  7. İstemci gizli dizileri'nin altında Yeni istemci gizli dizisi'ni seçin, bir ad girin ve ekle'yi seçin. Gizli dizi değerini daha sonraki bir adımda kullanmak üzere güvenli bir konuma kaydedin.
  8. Yönet'in altında API İzinleri>İzin ekle'yi seçin. Microsoft Graph'ı seçin.
  9. Uygulama izinleri'ni seçin.
  10. Kullanıcı düğümü altında User.Read.All öğesini ve ardından İzin ekle'yi seçin.

2. Adım: Python projesini indirme

Python daemon projesini indirme

3. Adım: Python projesini yapılandırma

  1. Zip dosyasını diskin köküne yakın bir yerel klasöre (örneğin C:\Azure-Samples) ayıklayın.

  2. 1-Call-MsGraph-WithSecret alt klasörüne gidin.

  3. parameters.json düzenleyin ve , client_idve secret alanlarının authoritydeğerlerini aşağıdaki kod parçacığıyla değiştirin:

    "authority": "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
    "client_id": "Enter_the_Application_Id_Here",
    "secret": "Enter_the_Client_Secret_Here"
    

    Where:

    • Enter_the_Application_Id_Here - kaydettiğiniz uygulamanın Uygulama (istemci) Kimliği değeridir.
    • Enter_the_Tenant_Id_Here- bu değeri Kiracı Kimliği veya Kiracı adıyla değiştirin (örneğin, contoso.microsoft.com)
    • Enter_the_Client_Secret_Here - bu değeri 1. adımda oluşturulan istemci gizli dizisiyle değiştirin.

İpucu

Uygulama (istemci) kimliği, Dizin (kiracı) kimliği değerlerini bulmak için Microsoft Entra yönetim merkezinde uygulamanın Genel Bakış sayfasına gidin. Yeni bir anahtar oluşturmak için Sertifikalar ve gizli diziler sayfasına gidin.

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 Genel Yönetici istratörü uygulamanız için onay vermelidir. Rolünüze bağlı olarak aşağıdaki seçeneklerden birini belirleyin:

Genel kiracı yöneticisi

Genel kiracı yöneticisiyseniz, Microsoft Entra yönetim merkezindeki Uygulama kayıtları API İzinleri sayfasına gidin ve {Kiracı Adı} için yönetici onayı ver'i seçin (Burada {Kiracı Adı} dizininizin adıdır).

Standart kullanıcı

Kiracınızın standart kullanıcısıysanız, genel yöneticiden uygulamanız için yönetici onayı vermesini isteyin. 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

Where:

  • Enter_the_Tenant_Id_Here- bu değeri Kiracı Kimliği veya Kiracı adıyla değiştirin (örneğin, contoso.microsoft.com)
  • Enter_the_Application_Id_Here- daha önce kaydettiğiniz uygulamanın Uygulama (istemci) kimliğidir.

5. Adım: Uygulamayı çalıştırma

Bu örneğin bağımlılıklarını bir kez yüklemeniz gerekir.

pip install -r requirements.txt

Ardından, komut istemi veya konsol aracılığıyla uygulamayı çalıştırın:

python confidential_client_secret_sample.py parameters.json

Konsol çıkışında Microsoft Entra dizininizdeki kullanıcıların listesini temsil eden bir JSON parçası görmeniz gerekir.

Önemli

Bu hızlı başlangıç uygulaması, kendisini gizli istemci olarak tanımlamak için bir gizli dizi 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 deposunda, ancak 2-Call-MsGraph-WithCertificate klasöründeki bu yönergelere bakın.

Daha Fazla Bilgi

MSAL Python

MSAL Python, 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ıç belirteçleri temsilci izinleri yerine uygulamanın kendi kimliğini kullanarak istemektedir. Bu durumda kullanılan kimlik doğrulama akışı, istemci kimlik bilgileri oauth akışı olarak bilinir. MSAL Python'ı daemon uygulamalarıyla kullanma hakkında daha fazla bilgi için bu makaleye bakın.

Aşağıdaki pip komutunu çalıştırarak MSAL Python'ı yükleyebilirsiniz.

pip install msal

MSAL başlatma

Şu kodu ekleyerek MSAL başvurusunu ekleyebilirsiniz:

import msal

Sonra da şu kodu kullanarak MSAL başlatın:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Where: Açıklama
config["secret"] Microsoft Entra yönetim merkezinde uygulama için oluşturulan istemci gizli dizisidir.
config["client_id"] Microsoft Entra yönetim merkezinde kayıtlı uygulamanın Uygulama (istemci) kimliğidir. Bu değeri Microsoft Entra yönetim merkezindeki uygulamanın Genel Bakış sayfasında bulabilirsiniz.
config["authority"] Kimlik doğrulaması yapılacak kullanıcı 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.

Daha fazla bilgi için lütfen için ConfidentialClientApplicationbaşvuru belgelerine bakın.

Belirteç isteme

Uygulamanın kimliğini kullanarak belirteç istemek için yöntemini kullanın AcquireTokenForClient :

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from AAD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Where: Açıklama
config["scope"] İstenen kapsamları içerir. Gizli istemciler için bu, istenen kapsamların Microsoft Entra yönetim merkezinde ayarlanan uygulama nesnesinde statik olarak tanımlanan kapsamlar olduğunu belirtmek için benzer {Application ID URI}/.default bir biçim kullanmalıdır (Microsoft Graph için işaret {Application ID URI} eder https://graph.microsoft.com). Özel web API'leri için, {Application ID URI} Microsoft Entra yönetim merkezindeki Uygulama kayıtları API'yi kullanıma sunma bölümünde tanımlanır.

Daha fazla bilgi için lütfen için AcquireTokenForClientbaşvuru belgelerine bakın.

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.