PublicClientApplication Kelas
Sama seperti <xref:ClientApplication.__init__>, kecuali parameter tersebut client_credential akan tetap None.
Note
Apa itu broker, dan mengapa menggunakannya?
Broker adalah komponen yang diinstal pada perangkat Anda.
Broker secara implisit memberi perangkat Anda identitas. Dengan menggunakan broker,
perangkat Anda menjadi faktor yang dapat memenuhi MFA (Autentikasi multifaktor).
Faktor ini akan menjadi wajib
jika admin penyewa mengaktifkan kebijakan Akses Bersyarah (CA) yang sesuai.
Kehadiran broker memungkinkan platform identitas Microsoft
untuk memiliki keyakinan yang lebih tinggi bahwa token dikeluarkan ke perangkat Anda,
dan yang lebih aman.
Manfaat tambahan broker adalah,
ini berjalan sebagai proses berumur panjang dengan OS perangkat Anda,
dan memelihara cachenya sendiri,
sehingga aplikasi berkemampuan broker Anda (bahkan CLI)
dapat secara otomatis SSO dari sesi masuk yang dibuat sebelumnya.
Bagaimana cara memilih menggunakan broker?
Anda dapat mengatur kombinasi parameter keikutsertaan berikut ke true:
Bendera keikutsertaan
Jika aplikasi akan berjalan
Aplikasi telah mendaftarkan ini sebagai URI pengalihan platform Desktop di portal Azure
enable_broker_on_windows
Windows 10+
ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id
enable_broker_on_wsl
WSL
ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id
enable_broker_on_mac
Mac dengan Company Portal terinstal
msauth.com.msauth.unsignedapp://auth
enable_broker_on_linux
Linux dengan Intune terinstal
https://login.microsoftonline.com/common/oauth2/nativeclient (HARUS diaktifkan)
Menginstal dependensi broker,
misalnya pip install msal[broker]>=1.33,2<.
Uji dengan acquire_token_interactive() dan acquire_token_silent().
Perilaku fallback dukungan broker MSAL Python
MSAL akan mengalami kesalahan, atau mundur secara diam-diam ke alur non-broker.
MSAL akan mengabaikan enable_broker_... dan bypass broker
pada alur autentikasi yang diketahui TIDAK didukung oleh broker.
Ini termasuk ADFS, B2C, dll..
Untuk skenario "can-use-broker" lainnya, silakan lihat di bawah ini.
Kesalahan MSAL keluar saat pengembang aplikasi memilih untuk menggunakan broker
tetapi paket "tingkat menengah" dependensi langsung tidak diinstal.
Pesan kesalahan memandu pengembang aplikasi untuk mendeklarasikan dependensi yang benar
msal[broker].
Kami kesalahan di sini karena kesalahan dapat ditindakkan oleh pengembang aplikasi.
MSAL secara diam-diam "menonaktifkan" broker dan mundur ke non-broker,
ketika ikut serta, dependensi yang diinstal namun gagal diinisialisasi.
Kami mengantisipasi hal ini akan terjadi pada perangkat yang OS-nya terlalu tua
atau komponen broker yang mendasar entah bagaimana tidak tersedia.
Tidak banyak pengembang aplikasi atau pengguna akhir yang dapat melakukannya di sini.
Pada akhirnya, kebijakan akses bersyarah harus
memaksa pengguna untuk beralih ke perangkat lain.
Kesalahan MSAL keluar ketika broker memilih masuk, diinstal, diinisialisasi,
tetapi permintaan token berikutnya gagal.
Konstruktor
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)
Parameter
| Nama | Deskripsi |
|---|---|
|
enable_broker_on_windows
Diperlukan
|
<xref:boolean>
Pengaturan ini hanya efektif jika aplikasi Anda berjalan di Windows 10+. Parameter ini default ke Tidak Ada, yang berarti MSAL tidak akan menggunakan broker. Baru di MSAL Python 1.25.0. |
|
enable_broker_on_mac
Diperlukan
|
<xref:boolean>
Pengaturan ini hanya efektif jika aplikasi Anda berjalan di Mac. Parameter ini default ke Tidak Ada, yang berarti MSAL tidak akan menggunakan broker. Baru di MSAL Python 1.31.0. |
|
enable_broker_on_linux
Diperlukan
|
<xref:boolean>
Pengaturan ini hanya efektif jika aplikasi Anda berjalan di Linux, termasuk WSL. Parameter ini default ke Tidak Ada, yang berarti MSAL tidak akan menggunakan broker. Baru di MSAL Python 1.33.0. |
|
enable_broker_on_wsl
Diperlukan
|
<xref:boolean>
Pengaturan ini hanya efektif jika aplikasi Anda berjalan di WSL. Parameter ini default ke Tidak Ada, yang berarti MSAL tidak akan menggunakan broker. Baru di MSAL Python 1.33.0. |
|
client_id
Diperlukan
|
|
|
client_credential
|
Nilai default: None
|
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
enable_broker_on_windows
|
Nilai default: None
|
|
enable_broker_on_mac
|
Nilai default: None
|
|
enable_broker_on_linux
|
Nilai default: None
|
|
enable_broker_on_wsl
|
Nilai default: None
|
Metode
| acquire_token_by_device_flow |
Dapatkan token oleh objek aliran perangkat, dengan efek polling yang dapat disesuaikan. |
| acquire_token_interactive |
Memperoleh token secara interaktif yaitu melalui browser lokal. Prasyarat: Dalam portal Azure, konfigurasikan URI Pengalihan "Aplikasi Seluler dan Desktop" Anda sebagai |
| initiate_device_flow |
Mulai instans Aliran Perangkat, yang akan digunakan di acquire_token_by_device_flow. |
acquire_token_by_device_flow
Dapatkan token oleh objek aliran perangkat, dengan efek polling yang dapat disesuaikan.
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
Parameter
| Nama | Deskripsi |
|---|---|
|
flow
Diperlukan
|
Dict yang sebelumnya dihasilkan oleh initiate_device_flow. Secara default, efek polling metode ini akan memblokir utas saat ini. Anda dapat membatalkan perulangan polling kapan saja, dengan mengubah nilai kunci "expires_at" alur menjadi 0. |
|
claims_challenge
|
Parameter claims_challenge meminta klaim tertentu yang diminta oleh penyedia sumber daya dalam bentuk arahan claims_challenge di header www-authenticate untuk dikembalikan dari Titik Akhir UserInfo dan/atau di Token ID dan/atau Token Akses. Ini adalah string objek JSON yang berisi daftar klaim yang diminta dari lokasi ini. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Dict yang mewakili respons json dari Microsoft Entra:
|
acquire_token_interactive
Memperoleh token secara interaktif yaitu melalui browser lokal.
Prasyarat: Dalam portal Azure, konfigurasikan URI Pengalihan "Aplikasi Seluler dan Desktop" Anda sebagai http://localhost.
Jika Anda memilih untuk menggunakan broker selama PublicClientApplication pembuatan, aplikasi Anda juga memerlukan URI Pengalihan ini: 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)
Parameter
| Nama | Deskripsi |
|---|---|
|
scopes
Diperlukan
|
Ini adalah daftar string peka huruf besar/kecil. |
|
prompt
|
Secara default, tidak ada nilai prompt yang akan dikirim, bahkan string Nilai default: None
|
|
login_hint
|
Optional. Pengidentifikasi pengguna. Umumnya Nama Prinsipal Pengguna (UPN). Nilai default: None
|
|
domain_hint
|
Dapat menjadi salah satu "konsumen" atau "organisasi" atau domain penyewa Anda "contoso.com". Jika disertakan, ini akan melewati proses penemuan berbasis email yang dilalui pengguna di halaman masuk, yang mengarah ke pengalaman pengguna yang sedikit lebih efisien. Informasi selengkapnya tentang kemungkinan nilai yang tersedia di dokumen Auth Code Flow dan dokumen domain_hint. Nilai default: None
|
|
claims_challenge
|
Parameter claims_challenge meminta klaim tertentu yang diminta oleh penyedia sumber daya dalam bentuk arahan claims_challenge di header www-authenticate untuk dikembalikan dari Titik Akhir UserInfo dan/atau di Token ID dan/atau Token Akses. Ini adalah string objek JSON yang berisi daftar klaim yang diminta dari lokasi ini. Nilai default: None
|
|
timeout
|
Metode ini akan memblokir utas saat ini.
Parameter ini menentukan nilai batas waktu dalam detik.
Nilai Nilai default: None
|
|
port
|
Port yang akan digunakan untuk mendengarkan respons autentikasi masuk.
Secara default, kita akan menggunakan port yang dialokasikan sistem.
(Sisa redirect_uri dikodekan secara permanen sebagai Nilai default: None
|
|
extra_scopes_to_consent
|
"Cakupan ekstra untuk disepakat" adalah konsep yang hanya tersedia dalam Microsoft Entra. Ini mengacu pada sumber daya lain yang mungkin ingin Anda minta untuk disetujui, dalam interaksi yang sama, tetapi untuk itu Anda tidak akan mendapatkan kembali token untuk dalam operasi khusus ini. Nilai default: None
|
|
max_age
|
OPSIONAL. Usia Autentikasi Maksimum. Menentukan waktu yang diperbolehkan berlalu dalam detik sejak terakhir kali End-User secara aktif diautentikasi. Jika waktu yang berlalu lebih besar dari nilai ini, platform identitas Microsoft akan secara aktif mengautentikasi ulang Pengguna Akhir. Python MSAL juga akan secara otomatis memvalidasi auth_time dalam token ID. Baru dalam versi 1.15. Nilai default: None
|
|
parent_window_handle
|
OPSIONAL.
Sebagian besar skrip Python adalah aplikasi konsol. Baru dalam versi 1.20.0. Nilai default: None
|
|
on_before_launching_ui
|
<xref:function>
Panggilan balik dengan bentuk Baru dalam versi 1.20.0. Nilai default: None
|
|
auth_scheme
|
Anda dapat memberikan Baru dalam versi 1.26.0. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
initiate_device_flow
Mulai instans Aliran Perangkat, yang akan digunakan di acquire_token_by_device_flow.
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
Parameter
| Nama | Deskripsi |
|---|---|
|
scopes
|
Cakupan yang diminta untuk mengakses API yang dilindungi (sumber daya). Nilai default: None
|
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
claims_challenge
|
Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Dict yang mewakili objek Aliran Perangkat yang baru dibuat.
|
Atribut
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'