呼叫 Web API 的桌面應用程式:應用程式註冊

本文涵蓋傳統型應用程式的應用程式註冊細節。

支援的帳戶類型

傳統型應用程式中支援的帳戶類型取決於您想要亮起的體驗。 由於這種關聯性,支援的帳戶類型取決於您要使用的流程。

互動式令牌擷取的物件

如果您的傳統型應用程式使用互動式驗證,您可以從任何 帳戶類型登入使用者。

傳統型應用程式無訊息流程的物件

  • 若要使用整合式 Windows 驗證 或使用者名稱和密碼,您的應用程式必須在您自己的租使用者中登入使用者,例如,如果您是企業營運 (LOB) 開發人員。 或者,在 Microsoft Entra 組織中,如果您的應用程式是 ISV 案例,就必須在自己的租使用者中登入使用者。 Microsoft 個人帳戶不支援這些驗證流程。
  • 如果您使用透過企業對商業(B2C)授權單位和原則的社交身分識別登入使用者,則只能使用互動式和使用者名稱密碼驗證。

重新導向 URI

要在傳統型應用程式中使用的重新導向 URI 取決於您要使用的流程。

在 Microsoft Entra 系統管理中心的 應用程式註冊設定應用程式的平台設定,以指定應用程式的重新導向 URI。

  • 對於使用 Web 驗證管理員 (WAM) 的應用程式,重新導向 URI 不需要在 MSAL 中設定,但必須在應用程式註冊中 設定它們。

  • 針對使用互動式驗證的應用程式:

    • 使用內嵌瀏覽器的應用程式: https://login.microsoftonline.com/common/oauth2/nativeclient (注意:如果您的應用程式會彈出一個通常不包含網址列的視窗,則會使用「內嵌瀏覽器」。
    • 使用系統瀏覽器的應用程式:(注意: http://localhost 如果您的應用程式會攜帶系統的預設瀏覽器(例如 Edge、Chrome、Firefox 等)來流覽 Microsoft 登入入口網站,則會使用「系統瀏覽器」。

    重要

    最佳做法是明確設定 https://login.microsoftonline.com/common/oauth2/nativeclienthttp://localhost 重新導向URI。 某些驗證連結庫,例如 MSAL.NET 未指定其他重新導向 URI 時,使用的預設值 urn:ietf:wg:oauth:2.0:oob ,不建議這麼做。 此預設值會在下一個主要版本中更新為重大變更。

  • 如果您建置適用於 macOS 的原生 Objective-C 或 Swift 應用程式,請使用下列格式,根據應用程式的套件組合識別元註冊重新導向 URI: msauth.<your.app.bundle.id>://auth。 將取代 <your.app.bundle.id> 為應用程式的套件組合識別碼。

  • 如果您建置Node.js電子應用程式,請使用自定義字串通訊協定,而不是一般 Web (https://) 重新導向 URI,以處理授權流程的重新導向步驟,例如 msal{Your_Application/Client_Id}://auth (例如 msalfa29b4c9-7675-4b61-8a0a-bf7b2b4fda91://auth)。 自定義字串通訊協定名稱不應該明顯猜測,而且應該遵循NativeApps OAuth2.0規格中的建議。

  • 如果您的應用程式只使用整合式 Windows 驗證 或使用者名稱和密碼,則不需要註冊應用程式的重新導向 URI。 這些流程會往返 Microsoft 身分識別平台 v2.0 端點。 您的應用程式不會在任何特定的 URI 上重新呼叫。

  • 若要區分裝置程式代碼流程整合式 Windows 驗證,以及使用者名稱和密碼,以及使用精靈應用程式中使用的用戶端認證流程,而不需要重新導向 URI,請將它設定為公用用戶端應用程式。 若要達成此設定:

    1. Microsoft Entra 系統管理中心中,在 應用程式註冊選取您的應用程式,然後選取 [驗證]。

    2. 在 [進階設定>允許公用用戶端流程>啟用下列行動和桌面流程]:,選取 [是]。

      Enable public client setting on Authentication pane in Azure portal

API 權限

傳統型應用程式會呼叫登入使用者的 API。 他們需要要求委派的許可權。 它們無法要求應用程式許可權,這些許可權只會在 精靈應用程式中處理。

下一步

請移至此案例中的下一篇文章應用程式 程式代碼設定