Öğ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.ENDPOINT
belirtilir. 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:
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
Uygulama için sanal ortam oluşturma:
py -m venv .venv .venv\scripts\activate
kullanarak
pip
gereksinimleri yükleyin:pip install -r requirements.txt
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
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.
Oturum açma penceresi göründükten sonra oturum açmak için hesabı sağlayın ve İleri'yi seçin:
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.
Oturumunuz açık kalsın için Hayır veya Evet'i seçebilirsiniz.
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.
Uygulamada oturum açtığınızı gösteren aşağıdaki ekran görüntüsü görüntülenir:
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:
Uygulama oturumunu kapatma
- Oturumu kapat'ı seçerek uygulamanın oturumunu kapatın.
- Oturumu kapatmak için bir hesap seçmeniz istenir. Oturum açmak için kullandığınız hesabı seçin.
- 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin