提高您開發的精靈應用程式中,驗證和授權的復原能力
了解如何使用 Microsoft 身分識別平台和 Microsoft Entra ID,提升精靈應用程式的復原能力。 尋找背景流程、服務、伺服器到伺服器應用程式,以及不含使用者的應用程式相關資訊。
下圖說明對 Microsoft 身分識別平台進行呼叫的精靈應用程式。
適用於 Azure 資源的受控識別
如果您要在 Microsoft Azure 上建置精靈應用程式,請使用 Azure 資源的受控識別來處理秘密和認證。 此功能可藉由處理憑證到期、輪替或信任來改善復原能力。
受控識別會使用來自 Microsoft 身分識別平台的長期存取權杖和資訊,在權杖到期之前取得新權杖。 您的應用程式會在取得新權杖時執行。
受控識別會使用區域端點,藉由合併服務相依性來協助防止區域外失敗。 區域端點可協助保留地理區域中的流量。 例如,如果您的 Azure 資源位於 WestUS2,則所有流量都會保留在 WestUS2 中。
Microsoft 驗證資源庫
如果您開發精靈應用程式,但未使用受控識別,請使用 Microsoft 驗證程式庫 (MSAL) 進行驗證和授權。 MSAL 可簡化提供用戶端認證的流程。 例如,您的應用程式不需要使用憑證型認證來建立和簽署 JSON Web 權杖判斷提示。
適用於 .NET 開發人員的 Microsoft.Identity.Web
如果您在 ASP.NET Core 上開發精靈應用程式,請使用 Microsoft.Identity.Web 程式庫來簡化授權。 其包含適用於分散式應用程式的分散式權杖快取策略,可在多個區域中執行。
深入了解:
快取和儲存區權杖
如果您未使用 MSAL 進行驗證和授權,則有最佳做法可快取和儲存權杖。 MSAL 會實行並遵循這些最佳做法。
應用程式會從身分識別提供者 (IdP) 取得權杖,並以授權應用程式呼叫受保護的 API。 當您的應用程式收到權杖時,含有權杖的回應會包含 expires\_in
屬性,告訴應用程式快取和重複使用權杖的時間長度。 確保應用程式使用 expires\_in
屬性來判斷權杖生命週期。 確認應用程式不會嘗試將 API 存取權杖解碼。 使用快取的權杖可防止您的應用程式與 Microsoft 身分識別平台之間不必要的流量。 使用者會在權杖的存留期間登入您的應用程式。
HTTP 429 和 5xx 錯誤碼
使用下列各節來了解 HTTP 429 和 5xx 錯誤碼
HTTP 429
有一些 HTTP 錯誤會影響復原能力。 如果您的應用程式收到 HTTP 429 錯誤碼「太多要求」,Microsoft 身分識別平台正對您的要求進行節流,以防止您的應用程式接收權杖。 確保直到 Retry-After 回應欄位中的時間過期,您的應用程式才會嘗試取得權杖。 429 錯誤通常表示應用程式不會正確快取和重複使用權杖。
HTTP 5xx
如果應用程式收到 HTTP 5xx 錯誤碼,則應用程式不得進入快速重試迴圈。 確保應用程式會等到 Retry-After 欄位到期為止。 如果回應未提供 Retry-After 標頭,請使用指數輪詢重試,在回應後至少 5 秒進行第一次重試。
當要求逾時,請確認應用程式不會立即重試。 使用先前引用的指數輪詢重試。