PublicClientApplication class

此類別用於取得公共客戶端應用程式(桌面、行動裝置)的令牌。 公開用戶端應用程式不被信任能安全儲存應用程式秘密,因此只能以使用者名義請求權杖。

Extends

建構函式

PublicClientApplication(Configuration)

驗證配置物件中的重要屬性包括:

  • clientID:你應用程式的應用程式 ID。 您可以透過我們的申請註冊平台註冊申請來取得。
  • 權威:你申請的權威網址。

AAD 權限的格式 https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}為 。

  • 如果您的應用程式支援在同一組織目錄中的帳戶,請將「Enter_the_Tenant_Info_Here」值替換為租戶 ID 或租戶名稱(例如 contoso.microsoft.com)。
  • 如果你的應用程式支援任何組織目錄中的帳戶,請將「Enter_the_Tenant_Info_Here」值替換成組織。
  • 如果您的應用程式支援任何組織目錄中的帳戶及個人Microsoft帳戶,請將「Enter_the_Tenant_Info_Here」值替換為「common」。
  • 若要限制支援僅限個人Microsoft帳號,請將「Enter_the_Tenant_Info_Here」值替換為消費者。

Azure B2C 權限機構的形式為 https://{instance}/{tenant}/{policy}。 每項政策都被視為獨立的權威。 你必須在客戶應用程式建立時設定所有已知權限。

ADFS 權限的格式為 https://{instance}/adfs。

方法

acquireTokenByDeviceCode(DeviceCodeRequest)

利用 OAuth2.0 裝置程式碼流程從權威機構取得一個令牌。 此流程設計給無法存取瀏覽器或有輸入限制的裝置。 授權伺服器會發出一個包含驗證碼、終端使用者碼及終端使用者驗證 URI 的 DeviceCode 物件。 DeviceCode 物件是透過回撥方式提供,最終使用者應被指示使用其他裝置前往驗證 URI 輸入憑證。 由於用戶端無法接收來信請求,它會反覆輪詢授權伺服器,直到最終使用者完成憑證輸入。

acquireTokenInteractive(InteractiveRequest)

透過瀏覽器透過請求授權碼,然後交換代幣,進行互動式取得令牌。

acquireTokenSilent(SilentFlowRequest)

回傳從快取中取得的權杖,或是透過將刷新權杖換成新的存取權杖來取得。 若啟用經紀,代幣請求將由經紀人處理。

getAllAccounts()

回傳此應用程式所有快取帳號。 若啟用經紀,經紀人將處理此請求。

signOut(SignOutRequest)

移除與該帳號相關的快取產物

繼承的方法

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

透過交換 OAuth2.0 授權碼流程第一步收到的授權碼來取得憑證。

getAuthCodeUrl(AuthorizationCodeUrlRequest) 可用於建立 OAuth2.0 授權碼流程第一步的 URL。 確保 AuthorizationCodeUrlRequest 與 AuthorizationCodeRequest 中 redirectUri 與範圍的值相同。

acquireTokenByRefreshToken(RefreshTokenRequest)

透過將提供的刷新代幣換成一組新的代幣來取得一個代幣。

此 API 僅提供給你想從 ADAL 遷移到 MSAL 的情境。 否則,建議你在無聲場景中使用 acquireTokenSilent() 。 使用 acquireTokenSilent(),MSAL 會自動處理代幣的快取與刷新。

acquireTokenByUsernamePassword(UsernamePasswordRequest)

透過交換用戶端應用程式的使用者名稱與密碼來取得憑證並取得密碼授權

最新的 OAuth 2.0 安全最佳實務完全禁止密碼授權。 關於此建議的更多細節,請參閱 https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoft 的文件與建議頁面:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

clearCache()

清除快取

getAuthCodeUrl(AuthorizationUrlRequest)

建立授權請求的網址,讓使用者輸入憑證並同意應用程式。 該 URL 會鎖定應用程式物件中所設定權威的 /authorize 端點。

一旦使用者輸入憑證並同意,權威機構會對請求中傳送的重定向 URI 回應,並應包含授權碼,該代碼可透過 取得 令牌 acquireTokenByCode(AuthorizationCodeRequest)

getLogger()

回傳記錄器實例

getTokenCache()

取得應用程式的標記快取。

setLogger(Logger)

將設定中的預設記錄器替換為新的記錄器,並有新的設定

建構函式詳細資料

PublicClientApplication(Configuration)

驗證配置物件中的重要屬性包括:

  • clientID:你應用程式的應用程式 ID。 您可以透過我們的申請註冊平台註冊申請來取得。
  • 權威:你申請的權威網址。

AAD 權限的格式 https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}為 。

  • 如果您的應用程式支援在同一組織目錄中的帳戶,請將「Enter_the_Tenant_Info_Here」值替換為租戶 ID 或租戶名稱(例如 contoso.microsoft.com)。
  • 如果你的應用程式支援任何組織目錄中的帳戶,請將「Enter_the_Tenant_Info_Here」值替換成組織。
  • 如果您的應用程式支援任何組織目錄中的帳戶及個人Microsoft帳戶,請將「Enter_the_Tenant_Info_Here」值替換為「common」。
  • 若要限制支援僅限個人Microsoft帳號,請將「Enter_the_Tenant_Info_Here」值替換為消費者。

Azure B2C 權限機構的形式為 https://{instance}/{tenant}/{policy}。 每項政策都被視為獨立的權威。 你必須在客戶應用程式建立時設定所有已知權限。

ADFS 權限的格式為 https://{instance}/adfs。

new PublicClientApplication(configuration: Configuration)

參數

configuration
Configuration

方法詳細資料

acquireTokenByDeviceCode(DeviceCodeRequest)

利用 OAuth2.0 裝置程式碼流程從權威機構取得一個令牌。 此流程設計給無法存取瀏覽器或有輸入限制的裝置。 授權伺服器會發出一個包含驗證碼、終端使用者碼及終端使用者驗證 URI 的 DeviceCode 物件。 DeviceCode 物件是透過回撥方式提供,最終使用者應被指示使用其他裝置前往驗證 URI 輸入憑證。 由於用戶端無法接收來信請求,它會反覆輪詢授權伺服器,直到最終使用者完成憑證輸入。

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

參數

傳回

Promise<null | AuthenticationResult>

acquireTokenInteractive(InteractiveRequest)

透過瀏覽器透過請求授權碼,然後交換代幣,進行互動式取得令牌。

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

參數

傳回

acquireTokenSilent(SilentFlowRequest)

回傳從快取中取得的權杖,或是透過將刷新權杖換成新的存取權杖來取得。 若啟用經紀,代幣請求將由經紀人處理。

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

參數

request
SilentFlowRequest

開發者提供 SilentFlowRequest

傳回

getAllAccounts()

回傳此應用程式所有快取帳號。 若啟用經紀,經紀人將處理此請求。

function getAllAccounts(): Promise<AccountInfo[]>

傳回

Promise<AccountInfo[]>

signOut(SignOutRequest)

移除與該帳號相關的快取產物

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

參數

request
SignOutRequest

開發者提供 SignOutRequest

傳回

Promise<void>

繼承的方法的詳細資料

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

透過交換 OAuth2.0 授權碼流程第一步收到的授權碼來取得憑證。

getAuthCodeUrl(AuthorizationCodeUrlRequest) 可用於建立 OAuth2.0 授權碼流程第一步的 URL。 確保 AuthorizationCodeUrlRequest 與 AuthorizationCodeRequest 中 redirectUri 與範圍的值相同。

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

參數

authCodePayLoad
AuthorizationCodePayload

傳回

繼承自ClientApplication.acquireTokenByCode

acquireTokenByRefreshToken(RefreshTokenRequest)

透過將提供的刷新代幣換成一組新的代幣來取得一個代幣。

此 API 僅提供給你想從 ADAL 遷移到 MSAL 的情境。 否則,建議你在無聲場景中使用 acquireTokenSilent() 。 使用 acquireTokenSilent(),MSAL 會自動處理代幣的快取與刷新。

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

參數

傳回

Promise<null | AuthenticationResult>

繼承自ClientApplication.acquireTokenByRefreshToken

acquireTokenByUsernamePassword(UsernamePasswordRequest)

警告

此 API 現已淘汰。

  • Use a more secure flow instead

透過交換用戶端應用程式的使用者名稱與密碼來取得憑證並取得密碼授權

最新的 OAuth 2.0 安全最佳實務完全禁止密碼授權。 關於此建議的更多細節,請參閱 https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoft 的文件與建議頁面:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

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

參數

request
UsernamePasswordRequest

UsenamePasswordRequest

傳回

Promise<null | AuthenticationResult>

繼承自ClientApplication.acquireTokenByUsernamePassword

clearCache()

清除快取

function clearCache()

繼承自ClientApplication.clearCache

getAuthCodeUrl(AuthorizationUrlRequest)

建立授權請求的網址,讓使用者輸入憑證並同意應用程式。 該 URL 會鎖定應用程式物件中所設定權威的 /authorize 端點。

一旦使用者輸入憑證並同意,權威機構會對請求中傳送的重定向 URI 回應,並應包含授權碼,該代碼可透過 取得 令牌 acquireTokenByCode(AuthorizationCodeRequest)

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

參數

傳回

Promise<string>

Inherited fromClientApplication.getAuthCodeUrl

getLogger()

回傳記錄器實例

function getLogger(): Logger

傳回

Inherited fromClientApplication.getLogger

getTokenCache()

取得應用程式的標記快取。

function getTokenCache(): TokenCache

傳回

繼承自ClientApplication.getTokenCache

setLogger(Logger)

將設定中的預設記錄器替換為新的記錄器,並有新的設定

function setLogger(logger: Logger)

參數

logger
Logger

記錄器實例

Inherited fromClientApplication.setLogger