PublicClientApplication Sınıf

<xref:ClientApplication.__init__>parametresinin kalması Nonedışında client_credential ile aynıdır.

Note

Aracı nedir ve neden kullanılır?

Aracı, cihazınızda yüklü bir bileşendir.

Aracı, cihazınıza örtük olarak bir kimlik verir. Aracı kullanarak,

cihazınız MFA'ya (Çok faktörlü kimlik doğrulaması) uygun bir faktör haline gelir.

Bu faktör zorunlu hale gelir

kiracının yöneticisi ilgili Koşullu Erişim (CA) ilkesini etkinleştirirse.

Aracının varlığı Microsoft kimlik platformu

belirteçlerin cihazınıza verildiğine daha fazla güvenmek için,

ve bu daha güvenlidir.

Aracının ek bir avantajı,

cihazınızın işletim sistemiyle uzun süreli bir işlem olarak çalışır,

ve kendi önbelleğini korur,

böylece aracı özellikli uygulamalarınız (CLI bile)

önceden oluşturulmuş bir oturumdan otomatik olarak SSO olabilir.

Aracıyı kullanmayı nasıl kabul edebilirsiniz?

Aşağıdaki kabul etme parametrelerinin herhangi bir bileşimini true olarak ayarlayabilirsiniz:

Kabul etme bayrağı

Uygulama çalıştırılacaksa

Uygulama bunu Azure portal'de Masaüstü platformu yeniden yönlendirme URI'si olarak kaydetti

enable_broker_on_windows

Windows 10+

ms-appx-web://Microsoft. ACAR. BrokerPlugin/your_client_id

enable_broker_on_wsl

WSL

ms-appx-web://Microsoft. ACAR. BrokerPlugin/your_client_id

enable_broker_on_mac

Şirket Portalı yüklü Mac

msauth.com.msauth.unsignedapp://auth

enable_broker_on_linux

Intune yüklü Linux

https://login.microsoftonline.com/common/oauth2/nativeclient (ETKINLEŞTIRILMESİ GEREKİDİ)

Aracı bağımlılığını yükleyin,

Örneğin pip install msal[broker]>=1.33,2<.

acquire_token_interactive() ve acquire_token_silent() ile test edin.

MSAL Python aracı desteğinin geri dönüş davranışları

MSAL hataya neden olur veya aracı olmayan akışlara sessizce geri dönüş sağlar.

MSAL enable_broker_ yoksayacak... ve atlama aracısı

aracı tarafından desteklenmediği bilinen bu kimlik doğrulama akışlarında.

Buna ADFS, B2C vb. dahildir.

Diğer "kullanılabilir aracı" senaryoları için lütfen aşağıya bakın.

Uygulama geliştirici aracı kullanmayı kabul ettiğinde MSAL hataları

ancak doğrudan bağımlılık "orta katman" paketi yüklü değildir.

Hata iletisi, uygulama geliştiricisinin doğru bağımlılığı bildirmesine yol gösterir

msal[broker].

Hata uygulama geliştiricileri için eyleme dönüştürülebilir olduğundan burada hata yapıyoruz.

MSAL, aracıyı sessizce "devre dışı bırakır" ve aracı olmayana geri dönüş,

kabul edildiğinde, bağımlılık henüz yüklenemedi.

Bunun işletim sistemi çok eski olan bir cihazda gerçekleşeceğini tahmin ediyoruz

veya temel aracı bileşeni bir şekilde kullanılamıyor.

Bir uygulama geliştiricisi veya son kullanıcı burada çok fazla şey yapamaz.

Sonunda, koşullu erişim ilkesi

kullanıcıyı farklı bir cihaza geçmeye zorlar.

Aracı kabul edildiğinde, yüklendiğinde, başlatıldığında MSAL hataları

ancak sonraki belirteç istekleri başarısız oldu.

Oluşturucu

PublicClientApplication(client_id, client_credential=None, *, enable_broker_on_windows=None, enable_broker_on_mac=None, enable_broker_on_linux=None, enable_broker_on_wsl=None, **kwargs)

Parametreler

Name Description
enable_broker_on_windows
Gerekli
<xref:boolean>

Bu ayar yalnızca uygulamanız Windows 10+ üzerinde çalışıyorsa geçerlidir. Bu parametre varsayılan olarak None olarak belirlenir ve bu da MSAL'nin aracı kullanmayacağı anlamına gelir.

MSAL Python 1.25.0 sürümündeki yenilikler.

enable_broker_on_mac
Gerekli
<xref:boolean>

Bu ayar yalnızca uygulamanız Mac'te çalışıyorsa geçerlidir. Bu parametre varsayılan olarak None olarak belirlenir ve bu da MSAL'nin aracı kullanmayacağı anlamına gelir.

MSAL Python 1.31.0 sürümündeki yenilikler.

enable_broker_on_linux
Gerekli
<xref:boolean>

Bu ayar yalnızca uygulamanız WSL de dahil olmak üzere Linux üzerinde çalışıyorsa geçerlidir. Bu parametre varsayılan olarak None olarak belirlenir ve bu da MSAL'nin aracı kullanmayacağı anlamına gelir.

MSAL Python 1.33.0 sürümündeki yenilikler.

enable_broker_on_wsl
Gerekli
<xref:boolean>

Bu ayar yalnızca uygulamanız WSL üzerinde çalışıyorsa geçerlidir. Bu parametre varsayılan olarak None olarak belirlenir ve bu da MSAL'nin aracı kullanmayacağı anlamına gelir.

MSAL Python 1.33.0 sürümündeki yenilikler.

client_id
Gerekli
client_credential
Default value: None

Yalnızca Anahtar Sözcük Parametreleri

Name Description
enable_broker_on_windows
Default value: None
enable_broker_on_mac
Default value: None
enable_broker_on_linux
Default value: None
enable_broker_on_wsl
Default value: None

Yöntemler

acquire_token_by_device_flow

Özelleştirilebilir yoklama etkisiyle bir cihaz akışı nesnesi tarafından belirteç alın.

acquire_token_interactive

Yerel bir tarayıcı üzerinden etkileşimli olarak belirteç alma.

Ön koşul: Azure portal'de "Mobil ve Masaüstü uygulamanızın" Yeniden Yönlendirme URI'sini olarak http://localhostyapılandırın. Oluşturma sırasında PublicClientApplication aracı kullanmayı kabul ederseniz, uygulamanızın bu Yeniden Yönlendirme URI'sine de ihtiyacı vardır: ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID

initiate_device_flow

içinde acquire_token_by_device_flowkullanılacak bir Cihaz Akışı örneği başlatın.

acquire_token_by_device_flow

Özelleştirilebilir yoklama etkisiyle bir cihaz akışı nesnesi tarafından belirteç alın.

acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)

Parametreler

Name Description
flow
Gerekli

daha önce tarafından initiate_device_flowoluşturulan bir dikte. Varsayılan olarak, bu yöntemin yoklama etkisi geçerli iş parçacığını engeller. Akışın "expires_at" anahtarının değerini 0 olarak değiştirerek yoklama döngüsünü istediğiniz zaman durdurabilirsiniz.

claims_challenge

claims_challenge parametresi, kaynak sağlayıcısı tarafından www-authenticate üst bilgisindeki bir claims_challenge yönergesi biçiminde istenen belirli talepleri UserInfo Uç Noktasından ve/veya Kimlik Belirteci ve/veya Erişim Belirteci'nden döndürülmek üzere ister. Bu, bu konumlardan istenen talep listelerini içeren bir JSON nesnesinin dizesidir.

Default value: None

Döndürülenler

Tür Description

Microsoft Entra json yanıtını temsil eden bir dikte:

  • Başarılı bir yanıt "access_token" anahtarı içerebilir,

  • bir hata yanıtı "hata" ve genellikle "error_description" içerebilir.

acquire_token_interactive

Yerel bir tarayıcı üzerinden etkileşimli olarak belirteç alma.

Ön koşul: Azure portal'de "Mobil ve Masaüstü uygulamanızın" Yeniden Yönlendirme URI'sini olarak http://localhostyapılandırın. Oluşturma sırasında PublicClientApplication aracı kullanmayı kabul ederseniz, uygulamanızın bu Yeniden Yönlendirme URI'sine de ihtiyacı vardır: ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID

acquire_token_interactive(scopes, prompt=None, login_hint=None, domain_hint=None, claims_challenge=None, timeout=None, port=None, extra_scopes_to_consent=None, max_age=None, parent_window_handle=None, on_before_launching_ui=None, auth_scheme=None, **kwargs)

Parametreler

Name Description
scopes
Gerekli

Büyük/küçük harfe duyarlı dizelerin listesidir.

prompt
str

Varsayılan olarak, dize "none"bile değil, hiçbir istem değeri gönderilmez. Açıkça bir değer belirtmeniz gerekir. Geçerli değerleri içinde <xref:msal.Prompt>tanımlanan sabitlerdir.

Default value: None
login_hint
str

Optional. Kullanıcının tanımlayıcısı. Genellikle kullanıcı asıl adı (UPN).

Default value: None
domain_hint

"Tüketiciler" veya "kuruluşlar" ya da kiracı etki alanınız "contoso.com" olabilir. Dahil edilirse, kullanıcının oturum açma sayfasından geçtiği e-posta tabanlı bulma işlemini atlar ve bu da biraz daha kolay bir kullanıcı deneyimine yol açar. Kimlik Doğrulama Kodu Akışı belgesinde ve domain_hint belgesinde bulunan olası değerler hakkında daha fazla bilgi.

Default value: None
claims_challenge

claims_challenge parametresi, kaynak sağlayıcısı tarafından www-authenticate üst bilgisindeki bir claims_challenge yönergesi biçiminde istenen belirli talepleri UserInfo Uç Noktasından ve/veya Kimlik Belirteci ve/veya Erişim Belirteci'nden döndürülmek üzere ister. Bu, bu konumlardan istenen talep listelerini içeren bir JSON nesnesinin dizesidir.

Default value: None
timeout
int

Bu yöntem geçerli iş parçacığını engeller. Bu parametre, zaman aşımı değerini saniye olarak belirtir. Varsayılan değer None , süresiz bekleme anlamına gelir.

Default value: None
port
int

Gelen kimlik doğrulama yanıtını dinlemek için kullanılacak bağlantı noktası. Varsayılan olarak, sistem tarafından ayrılmış bir bağlantı noktası kullanacağız. (redirect_uri geri kalanı sabit olarak http://localhostkodlanır.)

Default value: None
extra_scopes_to_consent

"Onay için ek kapsamlar" yalnızca Microsoft Entra'de kullanılabilen bir kavramdır. Aynı etkileşimde onayını almak isteyebileceğiniz ancak bu işlemde için bir belirteci geri almayacağınız diğer kaynakları ifade eder.

Default value: None
max_age
int

OPSİYONEL. En Fazla Kimlik Doğrulama Yaşı. End-User etkin bir şekilde kimliğinin doğrulandığı son zamandan bu yana izin verilebilen süreyi saniye cinsinden belirtir. Geçen süre bu değerden büyükse, Microsoft kimlik platformu son kullanıcının kimliğini etkin bir şekilde yeniden doğrular.

MSAL Python ayrıca kimlik belirtecindeki auth_time otomatik olarak doğrular.

Sürüm 1.15'te yeni.

Default value: None
parent_window_handle
int

OPSİYONEL.

  • Uygulamanız aracı kullanmayı kabul etmiyorsa, burada bir parent_window_handle sağlamanız gerekmez.

  • Uygulamanız aracı kullanmayı kabul ederse gereklidir parent_window_handle .

    • Uygulamanız Windows veya Mac sisteminde çalışan bir GUI uygulamasıysa, oturum açma penceresinin pencerenizin üstünde belirmesi için pencere tutamacını da sağlamanız gerekir.

    • Uygulamanız Windows veya Mac sisteminde çalışan bir konsol uygulamasıysa yer tutucusu PublicClientApplication.CONSOLE_WINDOW_HANDLEkullanabilirsiniz.

çoğu Python betikleri konsol uygulamalarıdır.

Sürüm 1.20.0'da yeni.

Default value: None
on_before_launching_ui
<xref:function>

biçiminde lambda ui="xyz", **kwargs: print("A {} will be launched".format(ui))bir geri çağırma; burada ui "tarayıcı" veya "aracı" olur. Son kullanıcınızı bir açılır pencere beklemesi konusunda bilgilendirmek için kullanabilirsiniz.

Sürüm 1.20.0'da yeni.

Default value: None
auth_scheme

MSAL'nin sizin için bir Sahiplik Kanıtı (POP) belirteci alması için bir nesne sağlayabilirsiniz msal.auth_scheme.PopAuthScheme .

Sürüm 1.26.0'da yeni.

Default value: None

Döndürülenler

Tür Description
  • "Hata" anahtarı içermeyen ve genellikle "access_token" anahtarı içeren bir dikte.

  • Belirteç yenileme başarısız olduğunda "hata" anahtarı içeren bir dikte.

initiate_device_flow

içinde acquire_token_by_device_flowkullanılacak bir Cihaz Akışı örneği başlatın.

initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)

Parametreler

Name Description
scopes

Korumalı API'ye (kaynak) erişmek için istenen kapsamlar.

Default value: None

Yalnızca Anahtar Sözcük Parametreleri

Name Description
claims_challenge
Default value: None

Döndürülenler

Tür Description

Yeni oluşturulan Bir Cihaz Akışı nesnesini temsil eden bir dikte.

  • Başarılı bir yanıt, diğerlerinin arasında "user_code" anahtarı içerebilir

  • bir hata yanıtı başka okunabilir anahtar/değer çiftleri içerebilir.

Öznitelikler

CONSOLE_WINDOW_HANDLE

CONSOLE_WINDOW_HANDLE = <object object>

DEVICE_FLOW_CORRELATION_ID

DEVICE_FLOW_CORRELATION_ID = '_correlation_id'