与外部进程建立可复原接口

本文介绍如何在用户旅程中规划和实现 RESTful API,以及如何使应用程序更能应对 API 故障。

Image shows interfaces with external process components

确保正确放置 API

Identity Experience Framework (IEF) 策略允许你使用 RESTful API 技术配置文件来调用外部系统。 外部系统不受 IEF 运行时环境的控制,并且是潜在的故障点。

如何使用 API ​​管理外部系统

  • 调用接口访问某些数据时,请检查这些数据是否将驱动身份验证决策。 评估这些信息是否对应用程序的核心功能至关重要。 例如,电子商务与辅助功能(比如管理)。 如果进行身份验证时不需要这些信息,而仅在辅助方案中需要,则考虑将调用移至应用程序逻辑。

  • 如果身份验证所需的数据相对静态且较小,并且没有其他业务原因要从目录外部化,则考虑将其放在目录中。

  • 尽可能从预验证路径中删除 API 调用。 如果不能,则必须在 API 前面设置严格的保护措施,以防拒绝服务 (DoS) 分布式拒绝服务 (DDoS) 攻击。 攻击者可以加载登录页面,试图用 DoS 攻击淹没 API,并禁用你的应用程序。 例如,通过在登录中使用 CAPTCHA,注册流可以提供帮助。

  • 在注册期间与标识提供者进行联合之后或创建用户之前,尽可能使用内置注册用户流的 API 连接器以与 Web API 集成。 由于用户流已经过广泛测试,因此可能无需执行用户流级别的功能、性能或缩放测试。 你仍需测试应用程序的功能、性能和缩放。

  • Azure AD B2C RESTful API 技术配置文件不提供任何缓存行为。 相反,RESTful API 配置文件实现了策略中内置的重试逻辑和超时。

  • 对于需要写入数据的 API,可将任务排入队列,让后台辅助角色执行此类任务。 可以使用诸如 Azure 队列之类的服务。 这种做法将使 API 高效返回,从而提高策略执行性能。

API 错误处理

由于这些 API 位于 Azure AD B2C 系统外部,因此需要在技术配置文件中进行正确的错误处理。 确保最终用户得到适当的通知,应用程序可以妥善处理故障。

如何妥善处理 API 错误

  • API 可能会因各种原因而失败,让你的应用程序能够应对此类故障。 如果 API 无法完成请求,则返回 HTTP 4XX 错误消息。 在 Azure AD B2C 策略中,尝试妥善处理 API 不可用的问题,可能会呈现更精简的体验。

  • 妥善处理暂时性错误。 使用 RESTful API 配置文件可以为各种断路器配置错误消息。

  • 主动监视并使用持续集成/持续交付 (CICD),轮换技术配置文件引擎使用的 API 访问凭据,例如密码和证书。

API 管理 - 最佳做法

部署 REST API 和配置 RESTful 技术配置文件时,遵循建议的最佳做法可帮助你避免犯一些常见错误和忽略某些事情。

如何管理 API

  • API 管理 (APIM) 可发布、管理和分析 API。 APIM 还可处理身份验证,以提供对后端服务和微服务的安全访问。 使用 API 网关可横向扩展 API 部署、缓存和负载均衡。

  • 建议在用户旅程开始时获取正确的令牌(而不是为每个 API 调用多次),并保护 Azure APIM API

后续步骤