共用方式為


增加您所開發精靈應用程式中驗證和授權的復原能力

瞭解如何使用Microsoft身分識別平臺和Microsoft Entra標識符,以提高精靈應用程式的復原能力。 尋找背景進程、服務、伺服器到伺服器應用程式的相關信息,以及沒有使用者的應用程式。

請參閱什麼是 Microsoft身分識別平臺?

下圖說明對Microsoft身分識別平台進行呼叫的精靈應用程式。

對Microsoft身分識別平台進行呼叫的精靈應用程式。

適用於 Azure 資源的受控識別

如果您要在 Microsoft Azure 上建置精靈應用程式,請使用 Azure 資源的受控識別,以處理秘密和認證。 此功能可藉由處理憑證到期、輪替或信任來改善復原能力。

請參閱 什麼是 Azure 資源的受控識別?

受控識別會使用來自Microsoft身分識別平臺的長期存取令牌和資訊,在令牌到期之前取得新的令牌。 您的應用程式會在取得新令牌時執行。

受控識別會使用區域端點,藉由合併服務相依性來協助防止區域外失敗。 區域端點可協助保留地理區域中的流量。 例如,如果您的 Azure 資源位於 WestUS2 中,所有流量都會保留在 WestUS2 中。

Microsoft 驗證資源庫

如果您開發精靈應用程式,但未使用受控識別,請使用 Microsoft 驗證連結庫 (MSAL) 進行驗證和授權。 MSAL 可簡化提供客戶端認證的程式。 例如,您的應用程式不需要使用憑證型認證來建立或簽署 JSON Web Token 斷言。

請參閱 Microsoft驗證連結庫概觀 (MSAL)

適用於 .NET 開發人員的 Microsoft.Identity.Web

如果您在 ASP.NET Core 上開發精靈應用程式,請使用 Microsoft.Identity.Web 連結庫來簡化授權。 它包含分散式令牌快取策略,適用於在多個區域中執行的分散式應用程式。

瞭解更多資訊:

暫存和儲存令牌

如果您未使用 MSAL 進行驗證和授權,則快取和儲存令牌有最好的方法。 MSAL 會實作並遵循這些最佳做法。

應用程式會從識別提供者 (IdP) 取得令牌,以授權應用程式呼叫受保護的 API。 當您的應用程式收到令牌時,包含令牌的回應中會有一個 expires\_in 屬性,這個屬性用來告知應用程式令牌應該快取和重複使用的時長。 請確定應用程式會使用 expires\_in 屬性來判斷令牌生命週期。 確認應用程式不會嘗試譯碼 API 存取令牌。 使用快取令牌可防止應用程式與Microsoft身分識別平台之間不必要的流量。 使用者會在令牌有效期間持續登入您的應用程式。

Microsoft Entra ID 備份驗證系統可為使用支援的通訊協定和流程的應用程式提供復原能力。 如需應用程式需求以受益於備份驗證的詳細資訊,請參閱 備份驗證系統的應用程式需求

HTTP 429 和 5xx 錯誤碼

使用下列各節來瞭解 HTTP 429 和 5xx 錯誤碼

HTTP 429

有會影響復原能力的 HTTP 錯誤。 如果您的應用程式收到 HTTP 429 錯誤碼「太多要求」,Microsoft 身分識別平臺正在對要求進行節流,這可防止您的應用程式接收令牌。 請確定您的應用程式不會嘗試取得令牌,直到 [重試後 回應] 字段中的時間到期。 429 錯誤通常表示應用程式不會正確快取和重複使用令牌。

HTTP 5xx

如果應用程式收到 HTTP 5x 錯誤碼,應用程式不得輸入快速重試迴圈。 請確定應用程式會等到 [重試後] 字段到期為止。 如果回應未提供 Retry-After 標頭,請使用指數退避重試,第一次重試應在回應後至少 5 秒進行。

當要求逾時時,請確認應用程式不會立即重試。 使用先前引用的指數退避重試。

後續步驟