Aracılığıyla paylaş


Öğretici: Korumalı API çağırma ve sonuçları görüntüleme

Önceki öğreticide, uygulamaya oturum açma ve oturum kapatma deneyimlerini eklediniz. Artık oturum açmış kullanıcıların korumalı bir web API'sini çağırmasına izin vermek için bu işlevleri temel alabilirsiniz. Bu öğreticinin amaçları doğrultusunda Microsoft Graph API'sini çağırır ve oturum açmış kullanıcının profil bilgilerini görüntülersiniz.

Bu öğreticide:

  • Korumalı aşağı akış API'sini çağırmak için kod ekleme
  • Uygulamayı çalıştırma ve test edin

API'yi çağırma ve sonuçları görüntüleme

Korumalı BIR API'yi çağırmak için önce aşağıdaki gibi arayarak auth.get_token_for_user geçerli kullanıcı için bir erişim belirteci almanız gerekir:

@app.route("/call_downstream_api")
def call_downstream_api():
    token = auth.get_token_for_user(app_config.SCOPE)
    if "error" in token:
        return redirect(url_for("login"))
    # Use access token to call downstream api
    api_result = requests.get(
        app_config.ENDPOINT,
        headers={'Authorization': 'Bearer ' + token['access_token']},
        timeout=30,
    ).json()
    return render_template('display.html', result=api_result)

Kullanıcı URL yoluna gittiği /call_downstream_api zaman Flask, ilk olarak kullanarak auth.get_token_for_user(app_config.SCOPE)bir erişim belirteci almayı deneyen işlevi çağırırcall_downstream_api(). Belirteçte bir kimlik doğrulama sorunu veya herhangi bir hata varsa, kullanıcıyı yeniden kimlik doğrulaması için oturum açma sayfasına yönlendirin.

Uygulama başarıyla bir erişim belirteci alırsa, yöntemini kullanarak aşağı akış API'sine requests.get(...) bir HTTP isteğinde bulunur. İstekte, aşağı akış API'si URL'miz içinde app_config.ENDPOINTbelirtilir. Ayrıca erişim belirtecini Authorization istek üst bilgisinin alanına geçirirsiniz.

Aşağı akış API'sine (Microsoft Graph API) yönelik başarılı bir istek, bir değişkende depolanan ve işleme için şablona display.html geçirilen bir api_result JSON yanıtı döndürür.

Uygulamayı çalıştırmak için kod ekleme

Uygulamanızı çalıştırmak için app.py dosyanızın sonuna aşağıdaki kod parçacığını ekleyin.

if __name__ == "__main__":
    app.run()

Uygulamayı test etme

Web uygulamanızda oturum açma, API çağırma ve oturumu kapatma deneyimlerini test etmek için şu adımları izleyin:

  1. Henüz yapmadıysanız, .env.sample dosyasındaki yer tutucu değerlerini Microsoft Entra uygulama kayıt ayrıntılarınızla (istemci kimliği, istemci gizli dizisi ve yetkili URL'si) değiştirin

  2. Uygulama için sanal ortam oluşturma:

    py -m venv .venv
    .venv\scripts\activate
    
  3. kullanarak pipgereksinimleri yükleyin:

    pip install -r requirements.txt
    
  4. Uygulamayı komut satırından çalıştırın. Uygulamanızın daha önce yapılandırdığınız yeniden yönlendirme URI'sinin aynı bağlantı noktasında çalıştığından emin olun.

    flask run --host=localhost --port=5000
    
  5. Terminalde görüntülenen https URL'sini (örneğin, https://localhost:5000) kopyalayın ve bir tarayıcıya yapıştırın. Özel veya gizli bir tarayıcı oturumu kullanmanızı öneririz.

  6. Oturum açma penceresi göründükten sonra oturum açmak için hesabı sağlayın ve İleri'yi seçin:

    Oturum açma ekranını gösteren ekran görüntüsü.

  7. Tarayıcınız, hesabınız için bir parola sağlamanız için sizi yeniden yönlendirir. Parolayı girin ve Oturum aç'ı seçin.

    Bu noktada oturum açma akışı, kuruluşunuzun gerektirdiği güvenlik bilgilerine (örneğin, bir kimlik doğrulayıcı uygulaması kullanarak çok faktörlü kimlik doğrulaması) bağlı olarak farklılık gösterebilir.

  8. Oturumunuz açık kalsın için Hayır veya Evet'i seçebilirsiniz.

  9. Uygulama, erişim verdiğiniz verilere erişimi korumak, oturum açmak ve profilinizi okumak için izin istemektedir. Bu izinlere onay vermek için Kabul Et'i seçin.

  10. Uygulamada oturum açtığınızı gösteren aşağıdaki ekran görüntüsü görüntülenir:

    Oturum açmış bir kullanıcıyı gösteren ekran görüntüsü.

  11. Korumalı BIR API'yi çağırmak ve sonuçları göstermek için Aşağı akış API'sini çağır'ı seçin. Microsoft Graph API'sine yapılan başarılı bir çağrı, oturum açmış kullanıcı hakkındaki bilgileri aşağıdaki gibi döndürür:

    Başarılı bir API çağrısının sonuçlarını gösteren ekran görüntüsü.

Uygulama oturumunu kapatma

  1. Oturumu kapat'ı seçerek uygulamanın oturumunu kapatın.
  2. Oturumu kapatmak için bir hesap seçmeniz istenir. Oturum açmak için kullandığınız hesabı seçin.
  3. Oturumunuz kapatıldığını belirten bir ileti görüntülenir. Artık tarayıcı penceresini kapatabilirsiniz.

Ayrıca bkz.

Oluşturduğunuz uygulama, Python için Microsoft Kimlik Doğrulama Kitaplığı'nın (MSAL) çoğu ayrıntısını özetleyen kimlik kitaplığını kullanır. MSAL Python'ı farklı senaryolarda kullanma hakkında daha fazla bilgi için MSAL Python belgelerine bakın.