与外部进程建立可复原接口
本文介绍如何在用户旅程中规划和实现 RESTful API,以及如何使应用程序更能应对 API 故障。
确保正确放置 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 不可用的问题,可能会呈现更精简的体验。
主动监视并使用持续集成/持续交付 (CICD),轮换技术配置文件引擎使用的 API 访问凭据,例如密码和证书。
API 管理 - 最佳做法
部署 REST API 和配置 RESTful 技术配置文件时,遵循建议的最佳做法可帮助你避免犯一些常见错误和忽略某些事情。
如何管理 API
API 管理 (APIM) 可发布、管理和分析 API。 APIM 还可处理身份验证,以提供对后端服务和微服务的安全访问。 使用 API 网关可横向扩展 API 部署、缓存和负载均衡。
建议在用户旅程开始时获取正确的令牌(而不是为每个 API 调用多次),并保护 Azure APIM API。