了解如何使用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标识平台之间发生不必要的流量。 用户在令牌的有效期内已登录您的应用程序。
Microsoft Entra ID 备份身份验证系统为使用支持的协议和流的应用程序提供复原能力。 有关从备份身份验证中受益的应用程序要求的详细信息,请参阅 备份身份验证系统的应用程序要求。
HTTP 429 和 5xx 错误代码
使用以下部分了解 HTTP 429 和 5xx 错误代码
HTTP 429
存在影响复原能力的 HTTP 错误。 如果应用程序收到 HTTP 429 错误代码,则请求过多,Microsoft标识平台会限制请求,从而阻止应用接收令牌。 确保在 “重试后 ”响应字段中的时间过期之前,应用不会尝试获取令牌。 429 错误通常表示应用程序未正确缓存和重复使用令牌。
HTTP 5xx
如果应用程序收到 HTTP 5x 错误代码,则应用不得进入快速重试循环。 确保应用程序等待,直到 “重试后 ”字段过期。 在首次重试时,如果响应未提供 Retry-After 标头,请在响应后至少 5 秒内使用指数退避策略。
请求超时时,请确保应用程序不会立即再次重试。 使用前面提到的指数退避算法进行重试。