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.
Windows bir uygulama oluşturuyorsanız, kullanıcıların kimlik doğrulama aracısının yardımıyla kimlik doğrulamasını basitleştirmeyi düşünebilirsiniz. Web Hesabı Yöneticisi (WAM), MSAL Python ile çalışan bir kimlik doğrulama aracısıdır. WAM yalnızca Windows 10 ve üzeri ile Windows Server 2019 ve üzerinde kullanılabilir.
Kimlik doğrulama aracısı kullanmanın avantajları hakkında daha fazla bilgi için MSAL.NET belgelerindeki Aracı nedir? konusuna bakın.
Kullanım
Aracıyı kullanmak için, PyPI'den MSAL çekirdek paketine ek olarak aracıyla ilgili paketleri de yüklemeniz gerekir:
pip install msal[broker]>=1.20,<2
Broker ile ilgili paketler yüklü değilse ve kimlik doğrulama broker'ını kullanmayı denerseniz, ImportError: Bağımlılığı şu komutla yüklemeniz gerekir: pip install "msal[broker]>=1.20,<2" hatasını alırsınız.
Ardından yeni bir PublicClientApplication örneği oluşturun ve enable_broker_on_windows öğesini True olarak ayarlayın. Bu, MSAL'nin yeni bir tarayıcı penceresi oluşturmak yerine WAM ile iletişim kurmaya çalışmasını sağlar. Platformlar arası bir uygulama yazıyorsanız, enable_broker_on_mac makalesinde açıklandığı gibi de kullanmanız gerekir.
from msal import PublicClientApplication
app = PublicClientApplication(
"CLIENT_ID",
authority="https://login.microsoftonline.com/common",
enable_broker_on_windows=True)
Artık acquire_token_interactive öğesini çağırıp parent_window_handle aracılığıyla bir üst pencere tutamacı belirterek bir belirteç alabilirsiniz:
result = app.acquire_token_interactive(["User.ReadBasic.All"],
parent_window_handle=app.CONSOLE_WINDOW_HANDLE)
WAM, iletişim kutusunun isteği yapan pencerenin üzerinde doğru şekilde görüntülenmesini sağlamak için bir üst pencere tutamacı gerektirir. MSAL, WAM'nin hangi pencereye bağlanması gerektiğini etkileyebilecek birçok değişken olduğu ve uygulama oluşturan geliştiricilerin hangi pencere olması gerektiğine karar vermek için en uygun olduğu için bunu doğrudan çıkarmaz.
Konsol uygulamaları için MSAL, terminal için pencere tutamacını almak için kullanıma hazır bir çözüm sunarak bunu kolaylaştırır . CONSOLE_WINDOW_HANDLE Masaüstü uygulamalarında, pencere tutamacını almak için Windows API'siyle daha fazla çalışma gerekebilir.
pywin32 gibi yardımcı paketler API çağrılarına yardımcı olabilir.
Uygulamanızı yürütmeden önce masaüstü uygulaması için yeniden yönlendirme URL'sini yapılandırdığınızdan emin olun:
Windows aracısını kullanmak için uygulamanızın Azure portal doğru yeniden yönlendirme URL'sinin şu şekilde yapılandırılmış olması gerekir:
ms-appx-web://microsoft.aad.brokerplugin/YOUR_CLIENT_ID
Yeniden yönlendirme URL'si yapılandırılmamışsa (pii) benzeri bir broker_error alırsınız. Durum: Response_Status.Status_ApiContractViolation, Hata kodu: 3399614473, Etiket: 557973642.
Yapılandırma ve örnekleme doğruysa, uygulamayı çalıştırdıktan sonra kimlik doğrulama aracısının devreye girip kullanıcının kimlik doğrulaması yapmak istediği hesabı seçmesine izin vermelisiniz.
Şunu belirtmekte fayda var: Aracı tabanlı kimlik doğrulamasını kullanmaya geçerseniz, kullanıcı daha önce oturum açtıysa ve oturum durumu hâlâ geçerliyse, acquire_token_interactive çağrısı yine de sessizce bir belirteç almaya çalışır ve yalnızca gerektiğinde istem gösterir. Her zaman istemde bulunmak isterseniz, bu isteğe bağlı parametresini prompt="select_account"kullanabilirsiniz.
Aracı deneyimi farklılıkları
PublicClientApplication örneği oluşturulurken belirtilen yetkiye bağlı olarak, broker kullanıcı arayüzü farklı olabilir.
/Tüketici
Yalnızca kişisel Microsoft hesaplarında kimlik doğrulaması için kullanılır.
/Ortak
Kişisel Microsoft hesaplarının yanı sıra iş ve okul hesaplarıyla kimlik doğrulaması için kullanılır.
/kuruluşlar
Yalnızca iş ve okul hesaplarında kimlik doğrulaması için kullanılır.
login_hint sağlanmışsa ancak hesap wam'a henüz kaydedilmemişse, ipucu e-posta veya telefon alanına otomatik olarak doldurulur.
/TENANT_ID
Yalnızca belirtilen kiracıdaki iş ve okul hesaplarıyla kimlik doğrulaması için kullanılır.
login_hint sağlanmışsa ancak hesap wam'a henüz kaydedilmemişse, ipucu e-posta veya telefon alanına otomatik olarak doldurulur.