ConfidentialClientApplication class

Kelas ini akan digunakan untuk memperoleh token untuk aplikasi klien rahasia (webApp, webAPI). Aplikasi klien rahasia akan mengonfigurasi rahasia aplikasi, sertifikat/pernyataan klien sebagaimana berlaku

Memperluas

Konstruktor

ConfidentialClientApplication(Configuration)

Konstruktor untuk ConfidentialClientApplication

Atribut yang diperlukan dalam objek Konfigurasi adalah:

  • clientID: ID aplikasi aplikasi Anda. Anda dapat memperolehnya dengan mendaftarkan aplikasi Anda dengan portal pendaftaran aplikasi kami
  • otoritas: URL otoritas untuk aplikasi Anda.
  • kredensial klien: Harus mengatur rahasia klien, sertifikat, atau pernyataan untuk klien rahasia. Anda dapat memperoleh rahasia klien dari portal pendaftaran aplikasi.

Dalam Azure AD, otoritas adalah URL yang menunjukkan formulir 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.

Dalam Azure B2C, otoritas adalah formulir https://{instance}/tfp/{tenant}/{policyName}/ Fungsionalitas B2C penuh akan tersedia di pustaka ini dalam versi mendatang.

Metode

acquireTokenByClientCredential(ClientCredentialRequest)

Memperoleh token dari otoritas untuk aplikasi (bukan untuk pengguna akhir).

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Memperoleh token dari otoritas untuk aplikasi.

Digunakan dalam skenario di mana aplikasi saat ini adalah layanan tingkat menengah yang dipanggil dengan token yang mewakili pengguna akhir. Aplikasi saat ini dapat menggunakan token (oboAssertion) untuk meminta token lain untuk mengakses API web hilir, atas nama pengguna tersebut.

Aplikasi tingkat menengah saat ini tidak memiliki interaksi pengguna untuk mendapatkan persetujuan. Lihat cara mendapatkan persetujuan di muka untuk aplikasi tingkat menengah Anda dari artikel ini. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

SetAppTokenProvider(IAppTokenProvider)

Titik ekstensibilitas ini hanya berfungsi untuk alur client_credential, yaitu acquireTokenByClientCredential dan dimaksudkan untuk Azure SDK untuk meningkatkan dukungan Identitas Terkelola.

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

acquireTokenSilent(SilentFlowRequest)

Memperoleh token secara diam-diam ketika pengguna menentukan akun yang diminta token.

API ini mengharapkan pengguna untuk menyediakan objek akun dan melihat ke cache untuk mengambil token jika ada. Ada juga boolean "forceRefresh" opsional yang dapat dikirim pengguna untuk melewati cache untuk access_token dan id_token. Jika refresh_token kedaluwarsa atau tidak ditemukan, kesalahan dilemparkan dan panduannya adalah agar pengguna memanggil API akuisisi token interaktif (misalnya: acquireTokenByCode()).

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

ConfidentialClientApplication(Configuration)

Konstruktor untuk ConfidentialClientApplication

Atribut yang diperlukan dalam objek Konfigurasi adalah:

  • clientID: ID aplikasi aplikasi Anda. Anda dapat memperolehnya dengan mendaftarkan aplikasi Anda dengan portal pendaftaran aplikasi kami
  • otoritas: URL otoritas untuk aplikasi Anda.
  • kredensial klien: Harus mengatur rahasia klien, sertifikat, atau pernyataan untuk klien rahasia. Anda dapat memperoleh rahasia klien dari portal pendaftaran aplikasi.

Dalam Azure AD, otoritas adalah URL yang menunjukkan formulir 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.

Dalam Azure B2C, otoritas adalah formulir https://{instance}/tfp/{tenant}/{policyName}/ Fungsionalitas B2C penuh akan tersedia di pustaka ini dalam versi mendatang.

new ConfidentialClientApplication(configuration: Configuration)

Parameter

configuration
Configuration

Detail Metode

acquireTokenByClientCredential(ClientCredentialRequest)

Memperoleh token dari otoritas untuk aplikasi (bukan untuk pengguna akhir).

function acquireTokenByClientCredential(request: ClientCredentialRequest): Promise<null | AuthenticationResult>

Parameter

Mengembalikan

Promise<null | AuthenticationResult>

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Memperoleh token dari otoritas untuk aplikasi.

Digunakan dalam skenario di mana aplikasi saat ini adalah layanan tingkat menengah yang dipanggil dengan token yang mewakili pengguna akhir. Aplikasi saat ini dapat menggunakan token (oboAssertion) untuk meminta token lain untuk mengakses API web hilir, atas nama pengguna tersebut.

Aplikasi tingkat menengah saat ini tidak memiliki interaksi pengguna untuk mendapatkan persetujuan. Lihat cara mendapatkan persetujuan di muka untuk aplikasi tingkat menengah Anda dari artikel ini. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

function acquireTokenOnBehalfOf(request: OnBehalfOfRequest): Promise<null | AuthenticationResult>

Parameter

Mengembalikan

Promise<null | AuthenticationResult>

SetAppTokenProvider(IAppTokenProvider)

Titik ekstensibilitas ini hanya berfungsi untuk alur client_credential, yaitu acquireTokenByClientCredential dan dimaksudkan untuk Azure SDK untuk meningkatkan dukungan Identitas Terkelola.

function SetAppTokenProvider(provider: IAppTokenProvider)

Parameter

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

acquireTokenSilent(SilentFlowRequest)

Memperoleh token secara diam-diam ketika pengguna menentukan akun yang diminta token.

API ini mengharapkan pengguna untuk menyediakan objek akun dan melihat ke cache untuk mengambil token jika ada. Ada juga boolean "forceRefresh" opsional yang dapat dikirim pengguna untuk melewati cache untuk access_token dan id_token. Jika refresh_token kedaluwarsa atau tidak ditemukan, kesalahan dilemparkan dan panduannya adalah agar pengguna memanggil API akuisisi token interaktif (misalnya: acquireTokenByCode()).

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

Parameter

Mengembalikan

Diwarisi dariClientApplication.acquireTokenSilent

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