呼叫 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/nativeclient
或http://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,請將它設定為公用用戶端應用程式。 若要達成此設定:
在 Microsoft Entra 系統管理中心中,在 應用程式註冊 中選取您的應用程式,然後選取 [驗證]。
在 [進階設定>允許公用用戶端流程>啟用下列行動和桌面流程]:,選取 [是]。
API 權限
傳統型應用程式會呼叫登入使用者的 API。 他們需要要求委派的許可權。 它們無法要求應用程式許可權,這些許可權只會在 精靈應用程式中處理。
下一步
請移至此案例中的下一篇文章應用程式 程式代碼設定。