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.
Python için Microsoft Authentication Library (MSAL) kitaplığı, kullanıcıların veya uygulamaların Microsoft kimlikleriyle (Microsoft Entra ID, Microsoft Hesapları ve Microsoft Entra ID hesapları) oturum açmasını sağlar. MSAL Python kullanarak Microsoft Graph, diğer Microsoft API'leri veya kendi API'leriniz gibi korumalı web API'lerini çağırmak için Microsoft Entra ID belirteçleri alabilirsiniz.
Prerequisites
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- 3.6+ Python.
Paketi yükle
Python paketi için MSAL'yi yükleyin. PyPI'da MSAL Python bulabilirsiniz.
pip install msal
Kimlik kavramları
MSAL Python, Microsoft kimlik platformu ekosisteminin bir parçasıdır. Uygulamalarınızı ve API'lerinizi korumak için MSAL Python etkili bir şekilde kullanmak için aşağıdaki kavramlar hakkında bilgi sahibi olun:
- Kimlik ve erişim yönetimi
- Kimlik doğrulama ve yetkilendirme
- Microsoft kimlik platformunda OAuth 2.0 ve OpenID Connect (OIDC)
- Microsoft kimlik platformu gizli ve genel istemci hesapları
- Güvenlik belirteçleri
Kullanım senaryoları
MSAL Python'ı kullanmak için Microsoft kimlik platformuna bir uygulama kaydedin. Etkin aboneliği olan bir Azure hesabınız olması gerekir. Hesabınız yoksa ücretsiz bir hesap oluşturun. Uygulamanızı bir müşteri kiracısında veya iş gücü kiracısında kaydedebilirsiniz.
Uygulamalar, korumalı API'lere erişim belirteçleri almak için MSAL Python kullanabilir. Farklı uygulama türleri, farklı kimlik doğrulama akışları kullanarak belirteçler alır. Desteklenen uygulama türleri arasında masaüstü uygulamaları, web uygulamaları, web API'leri ve tarayıcısı olmayan cihazlarda (IoT cihazları gibi) çalışan uygulamalar bulunur.
MSAL Python uygulamalar aşağıdaki gibi kategorilere ayrılır:
- Genel istemci uygulamaları (masaüstü ve mobil). Bu tür uygulamalar uygulama gizli dizilerini güvenli bir şekilde depolayamaz.
- Gizli istemci uygulamaları (web uygulamaları, web API'leri ve daemon uygulamaları). Bu tür uygulamalar, Microsoft Entra ID’ye kayıtlı bir gizli anahtarı güvenli bir şekilde saklar.
Daha fazla bilgi için Microsoft kimlik platformu genel istemci ve gizli istemci uygulamaları ile farklı uygulama türleri ve bunların kimlik doğrulama akışları hakkındaki belgelere bakın.
Uygulamanızın genel veya gizli bir istemci uygulaması olup olmadığını belirledikten sonra, farklı senaryolara yönelik belirteçleri almak için MSAL Python kullanabilirsiniz.
Temel kullanım
MSAL Python ile belirteçlerin alınması üç adımlı bir deseni izler. Farklı akışlar için bazı varyasyonlar olacaktır. Bunların nasıl çalıştığını görmek isterseniz örneklerimizi indirin.
MSAL, genel istemci ve gizli istemci uygulamaları arasında temiz bir ayrım sağlar. Bu nedenle, bir
PublicClientApplicationveyaConfidentialClientApplicationörneği oluşturun ve uygulamanızın yaşam döngüsü boyunca yeniden kullanın. Örneğin, genel istemci uygulaması için başlatma kodu şu şekilde görünebilir:from msal import PublicClientApplication app = PublicClientApplication( "your_client_id", authority="https://login.microsoftonline.com/common")Yetkili değeri, oturum açmakta olduğunuz hesapların türüne ve uygulamanızın kayıtlı olduğu kiracı türüne bağlı olarak değişir. Örneğin, iş gücü kiracılarında (Microsoft Entra ID) sağlanmış hem iş hem de kişisel Microsoft hesaplarında oturum açmak için
https://login.microsoftonline.com/commonkullanırsınız. Müşteri kiracıları içinde oluşturulan müşteri hesapları için yetkinizhttps://<subdomain>.ciamlogin.combiçiminde olur. Daha fazla bilgi için belirteç sağlayıcısının belgelerine bakın.İlk olarak belirteçleri önbellekten almayı deneyin. MSAL'deki API modeli, belirteç önbelleğini kullanma konusunda size açık denetim sağlar. Önbelleğe alma bölümü teknik olarak isteğe bağlı olsa da, bunu uygulamanızda kullanmanızı kesinlikle öneririz. Önbelleği kullanarak fazladan API çağrısı yapmadığınızdan emin olabilir ve belirteç yenileme işlemini otomatik olarak gerçekleştirebilirsiniz.
# initialize result variable to hole the token response result = None # We now check the cache to see # whether we already have some accounts that the end user already used to sign in before. accounts = app.get_accounts() if accounts: # If so, you could then somehow display these accounts and let end user choose print("Pick the account you want to use to proceed:") for a in accounts: print(a["username"]) # Assuming the end user chose this one chosen = accounts[0] # Now let's try to find a token in cache for this account result = app.acquire_token_silent(["User.Read"], account=chosen)Önbellekte uygun belirteç yoksa veya önceki adımı atlamayı seçtiyseniz, belirteç almak için Microsoft Entra ID bir istek gönderin. İstemci türünüz ve senaryonuza göre farklı yöntemler vardır, ancak örneğin
acquire_token_interactivekullanım amacı doğrultusunda kullanıcıdan kimlik bilgilerini sağlamasını ister.if not result: # So no suitable token exists in cache. Let's get a new one from Azure AD. result = app.acquire_token_interactive(scopes=["User.Read"]) if "access_token" in result: print(result["access_token"]) # Yay! else: print(result.get("error")) print(result.get("error_description")) print(result.get("correlation_id")) # You may need this when reporting a bugKodu msaltest.py gibi yerel olarak bir Python dosyasına kaydedin.
komutunu yürüterek
python .\msalpytest.pykodu çalıştırın. Aşağıdaki görselde bu örnek için oturum açma deneyimi gösterilmektedir.
Kimlik doğrulaması tamamlandıktan ve tarayıcıyı kapattıktan sonra erişim belirtecinin terminalde yazdırıldığını görebilmeniz gerekir.
Sağlam bir kurumsal kullanıma hazır uygulama için en iyi yöntemler
MSAL Python kullanarak korumalı bir Web API'si için belirteç alabilirsiniz. Ayrıca yenileme belirteçlerini kendiniz de işlemeniz gerekmez. Ancak sağlam ve kurumsal kullanıma hazır uygulamalar oluşturmak için biraz daha fazla işlem yapmanız gerekir. Örneğin, şunu yapmak istersiniz:
Hem belirteç aldığınızda hem de korumalı Web API'sini çağırdığınızda özel durumları işleyebilirsiniz. Özellikle, uygulamanız kiracı yöneticilerinin Birden Çok Faktörlü Kimlik Doğrulaması 'nı (MFA) zorunlu kılmak için Koşullu Erişim ilkeleri ayarladığı bir Microsoft Entra kiracısında çalışıyorsa, bir Talep sınamasını işlemeniz gerekir.
Uygulamanızın sorunlarını gidermek ve kullanıcılarınızın gizliliğine saygı ve GDPR ile uyumlu olmaları için Günlüğe Kaydetme özelliğini etkinleştirmek isteyebilirsiniz.
Samples
MSAL Python kullanmaya başlamak için kullanabileceğiniz birkaç örnek vardır.
- Kitaplık deposundan örnekler. Bu örnekler, MSAL Python kullanarak uyguladığınız farklı yapılandırmaları ve kimlik doğrulama akışlarını gösterir.
- Belgelerimizde kullanılan örnekleri içeren tek bir depo. Bu örnekler, bunları sıfırdan oluşturmanıza ve çoğaltmanıza yardımcı olacak destekleyici belgelere sahiptir.
References
Ayrıca bakınız
- MSAL Python kullanarak uygulamanızın örneğini oluşturma
- MSAL Python kullanarak belirteçleri edinin