PublicClientApplication class

Kelas ini akan digunakan untuk memperoleh token untuk aplikasi klien publik (desktop, seluler). Aplikasi klien publik tidak dipercaya untuk menyimpan rahasia aplikasi dengan aman, dan oleh karena itu hanya dapat meminta token atas nama pengguna.

Memperluas

Konstruktor

PublicClientApplication(Configuration)

Atribut penting dalam objek Konfigurasi untuk autentikasi adalah:

  • clientID: ID aplikasi aplikasi Anda. Anda dapat memperolehnya dengan mendaftarkan aplikasi Anda dengan portal pendaftaran Aplikasi kami.
  • otoritas: URL otoritas untuk aplikasi Anda.

Otoritas AAD berbentuk https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}.

  • Jika aplikasi Anda mendukung Akun dalam satu direktori organisasi, ganti nilai "Enter_the_Tenant_Info_Here" dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com).
  • Jika aplikasi Anda mendukung Akun di direktori organisasi apa pun, ganti nilai "Enter_the_Tenant_Info_Here" dengan organisasi.
  • Jika aplikasi Anda mendukung Akun di direktori organisasi dan akun Microsoft pribadi, ganti nilai "Enter_the_Tenant_Info_Here" dengan umum.
  • Untuk membatasi dukungan hanya untuk akun Microsoft Pribadi, ganti nilai "Enter_the_Tenant_Info_Here" dengan konsumen.

Azure otoritas B2C adalah formulir https://{instance}/{tenant}/{policy}. Setiap kebijakan dianggap sebagai otoritasnya sendiri. Anda harus mengatur semua knownAuthorities pada saat konstruksi aplikasi klien.

Otoritas ADFS adalah formulir https://{instance}/adfs.

Metode

acquireTokenByDeviceCode(DeviceCodeRequest)

Memperoleh token dari otoritas menggunakan alur kode perangkat OAuth2.0. Alur ini dirancang untuk perangkat yang tidak memiliki akses ke browser atau memiliki batasan input. Server otorisasi mengeluarkan objek DeviceCode dengan kode verifikasi, kode pengguna akhir, dan URI verifikasi pengguna akhir. Objek DeviceCode disediakan melalui panggilan balik, dan pengguna akhir harus diinstruksikan untuk menggunakan perangkat lain untuk menavigasi ke URI verifikasi untuk memasukkan kredensial. Karena klien tidak dapat menerima permintaan masuk, klien melakukan polling pada server otorisasi berulang kali hingga pengguna akhir menyelesaikan input kredensial.

acquireTokenInteractive(InteractiveRequest)

Memperoleh token secara interaktif melalui browser dengan meminta kode otorisasi lalu menukarnya dengan token.

acquireTokenSilent(SilentFlowRequest)

Mengembalikan token yang diambil baik dari cache atau dengan bertukar token refresh untuk token akses baru. Jika broker diaktifkan, permintaan token akan dilayankan oleh broker.

getAllAccounts()

Mengembalikan semua akun cache untuk aplikasi ini. Jika broker diaktifkan, permintaan ini akan dilayankan oleh broker.

signOut(SignOutRequest)

Menghapus artefak cache yang terkait dengan akun yang diberikan

Metode yang Diwarisi

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Memperoleh token dengan bertukar Kode Otorisasi yang diterima dari langkah pertama alur Kode Otorisasi OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) dapat digunakan untuk membuat URL untuk langkah pertama alur Kode Otorisasi OAuth2.0. Pastikan bahwa nilai untuk redirectUri dan cakupan di AuthorizationCodeUrlRequest dan AuthorizationCodeRequest sama.

acquireTokenByRefreshToken(RefreshTokenRequest)

Memperoleh token dengan bertukar token refresh yang disediakan untuk sekumpulan token baru.

API ini disediakan hanya untuk skenario di mana Anda ingin bermigrasi dari ADAL ke MSAL. Jika tidak, disarankan agar Anda menggunakan acquireTokenSilent() untuk skenario senyap. Saat menggunakan acquireTokenSilent(), MSAL akan menangani penembolokan dan refresh token secara otomatis.

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Memperoleh token dengan pemberian kata sandi dengan bertukar nama pengguna dan kata sandi aplikasi klien untuk kredensial

Praktik Terbaik Keamanan OAuth 2.0 terbaru melarang pemberian kata sandi sepenuhnya. Detail selengkapnya tentang rekomendasi ini pada https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 dokumentasi dan rekomendasi Microsoft adalah di:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

clearCache()

Menghapus cache

getAuthCodeUrl(AuthorizationUrlRequest)

Membuat URL permintaan otorisasi, membiarkan info masuk input pengguna dan menyetujui aplikasi. URL menargetkan titik akhir /otorisasi otoritas yang dikonfigurasi dalam objek aplikasi.

Setelah pengguna memasukkan kredensial dan persetujuan mereka, otoritas akan mengirim respons ke URI pengalihan yang dikirim dalam permintaan dan harus berisi kode otorisasi, yang kemudian dapat digunakan untuk memperoleh token melalui acquireTokenByCode(AuthorizationCodeRequest).

getLogger()

Mengembalikan instans pencatat

getTokenCache()

Mendapatkan cache token untuk aplikasi.

setLogger(Logger)

Mengganti kumpulan pencatat default dalam konfigurasi dengan Pencatat baru dengan konfigurasi baru

Detail Konstruktor

PublicClientApplication(Configuration)

Atribut penting dalam objek Konfigurasi untuk autentikasi adalah:

  • clientID: ID aplikasi aplikasi Anda. Anda dapat memperolehnya dengan mendaftarkan aplikasi Anda dengan portal pendaftaran Aplikasi kami.
  • otoritas: URL otoritas untuk aplikasi Anda.

Otoritas AAD berbentuk https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}.

  • Jika aplikasi Anda mendukung Akun dalam satu direktori organisasi, ganti nilai "Enter_the_Tenant_Info_Here" dengan Id Penyewa atau Nama penyewa (misalnya, contoso.microsoft.com).
  • Jika aplikasi Anda mendukung Akun di direktori organisasi apa pun, ganti nilai "Enter_the_Tenant_Info_Here" dengan organisasi.
  • Jika aplikasi Anda mendukung Akun di direktori organisasi dan akun Microsoft pribadi, ganti nilai "Enter_the_Tenant_Info_Here" dengan umum.
  • Untuk membatasi dukungan hanya untuk akun Microsoft Pribadi, ganti nilai "Enter_the_Tenant_Info_Here" dengan konsumen.

Azure otoritas B2C adalah formulir https://{instance}/{tenant}/{policy}. Setiap kebijakan dianggap sebagai otoritasnya sendiri. Anda harus mengatur semua knownAuthorities pada saat konstruksi aplikasi klien.

Otoritas ADFS adalah formulir https://{instance}/adfs.

new PublicClientApplication(configuration: Configuration)

Parameter

configuration
Configuration

Detail Metode

acquireTokenByDeviceCode(DeviceCodeRequest)

Memperoleh token dari otoritas menggunakan alur kode perangkat OAuth2.0. Alur ini dirancang untuk perangkat yang tidak memiliki akses ke browser atau memiliki batasan input. Server otorisasi mengeluarkan objek DeviceCode dengan kode verifikasi, kode pengguna akhir, dan URI verifikasi pengguna akhir. Objek DeviceCode disediakan melalui panggilan balik, dan pengguna akhir harus diinstruksikan untuk menggunakan perangkat lain untuk menavigasi ke URI verifikasi untuk memasukkan kredensial. Karena klien tidak dapat menerima permintaan masuk, klien melakukan polling pada server otorisasi berulang kali hingga pengguna akhir menyelesaikan input kredensial.

function acquireTokenByDeviceCode(request: DeviceCodeRequest): Promise<null | AuthenticationResult>

Parameter

Mengembalikan

Promise<null | AuthenticationResult>

acquireTokenInteractive(InteractiveRequest)

Memperoleh token secara interaktif melalui browser dengan meminta kode otorisasi lalu menukarnya dengan token.

function acquireTokenInteractive(request: InteractiveRequest): Promise<AuthenticationResult>

Parameter

Mengembalikan

acquireTokenSilent(SilentFlowRequest)

Mengembalikan token yang diambil baik dari cache atau dengan bertukar token refresh untuk token akses baru. Jika broker diaktifkan, permintaan token akan dilayankan oleh broker.

function acquireTokenSilent(request: SilentFlowRequest): Promise<AuthenticationResult>

Parameter

request
SilentFlowRequest

pengembang menyediakan SilentFlowRequest

Mengembalikan

getAllAccounts()

Mengembalikan semua akun cache untuk aplikasi ini. Jika broker diaktifkan, permintaan ini akan dilayankan oleh broker.

function getAllAccounts(): Promise<AccountInfo[]>

Mengembalikan

Promise<AccountInfo[]>

signOut(SignOutRequest)

Menghapus artefak cache yang terkait dengan akun yang diberikan

function signOut(request: SignOutRequest): Promise<void>

Parameter

request
SignOutRequest

pengembang menyediakan SignOutRequest

Mengembalikan

Promise<void>

Detail Metode yang Diwarisi

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Memperoleh token dengan bertukar Kode Otorisasi yang diterima dari langkah pertama alur Kode Otorisasi OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) dapat digunakan untuk membuat URL untuk langkah pertama alur Kode Otorisasi OAuth2.0. Pastikan bahwa nilai untuk redirectUri dan cakupan di AuthorizationCodeUrlRequest dan AuthorizationCodeRequest sama.

function acquireTokenByCode(request: AuthorizationCodeRequest, authCodePayLoad?: AuthorizationCodePayload): Promise<AuthenticationResult>

Parameter

authCodePayLoad
AuthorizationCodePayload

Mengembalikan

Diwarisi DariClientApplication.acquireTokenByCode

acquireTokenByRefreshToken(RefreshTokenRequest)

Memperoleh token dengan bertukar token refresh yang disediakan untuk sekumpulan token baru.

API ini disediakan hanya untuk skenario di mana Anda ingin bermigrasi dari ADAL ke MSAL. Jika tidak, disarankan agar Anda menggunakan acquireTokenSilent() untuk skenario senyap. Saat menggunakan acquireTokenSilent(), MSAL akan menangani penembolokan dan refresh token secara otomatis.

function acquireTokenByRefreshToken(request: RefreshTokenRequest): Promise<null | AuthenticationResult>

Parameter

Mengembalikan

Promise<null | AuthenticationResult>

Diwarisi DariClientApplication.acquireTokenByRefreshToken

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Peringatan

API ini sudah tidak digunakan lagi.

  • Use a more secure flow instead

Memperoleh token dengan pemberian kata sandi dengan bertukar nama pengguna dan kata sandi aplikasi klien untuk kredensial

Praktik Terbaik Keamanan OAuth 2.0 terbaru melarang pemberian kata sandi sepenuhnya. Detail selengkapnya tentang rekomendasi ini pada https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 dokumentasi dan rekomendasi Microsoft adalah di:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

function acquireTokenByUsernamePassword(request: UsernamePasswordRequest): Promise<null | AuthenticationResult>

Parameter

request
UsernamePasswordRequest

UsenamePasswordRequest

Mengembalikan

Promise<null | AuthenticationResult>

Diwarisi DariClientApplication.acquireTokenByUsernamePassword

clearCache()

Menghapus cache

function clearCache()

Diwarisi DariClientApplication.clearCache

getAuthCodeUrl(AuthorizationUrlRequest)

Membuat URL permintaan otorisasi, membiarkan info masuk input pengguna dan menyetujui aplikasi. URL menargetkan titik akhir /otorisasi otoritas yang dikonfigurasi dalam objek aplikasi.

Setelah pengguna memasukkan kredensial dan persetujuan mereka, otoritas akan mengirim respons ke URI pengalihan yang dikirim dalam permintaan dan harus berisi kode otorisasi, yang kemudian dapat digunakan untuk memperoleh token melalui acquireTokenByCode(AuthorizationCodeRequest).

function getAuthCodeUrl(request: AuthorizationUrlRequest): Promise<string>

Parameter

Mengembalikan

Promise<string>

Diwarisi DariClientApplication.getAuthCodeUrl

getLogger()

Mengembalikan instans pencatat

function getLogger(): Logger

Mengembalikan

Diwarisi DariClientApplication.getLogger

getTokenCache()

Mendapatkan cache token untuk aplikasi.

function getTokenCache(): TokenCache

Mengembalikan

Diwarisi DariClientApplication.getTokenCache

setLogger(Logger)

Mengganti kumpulan pencatat default dalam konfigurasi dengan Pencatat baru dengan konfigurasi baru

function setLogger(logger: Logger)

Parameter

logger
Logger

Instans pencatat

Diwarisi DariClientApplication.setLogger