测试引擎中的身份验证安全体系结构(预览版)

备注

预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前已经可用,以便客户可以抢先体验并提供反馈。

本技术文档概述了测试引擎中 Power Apps 身份验证机制的安全架构。 有关选择和配置身份验证方法的以用户为中心的指南,请参阅 身份验证指南

身份验证方法概述

测试引擎支持两种主要身份验证方法:

  • 存储状态身份验证 - 基于持久性浏览器 cookie 和存储状态
  • 基于证书的身份验证 - 基于 X.509 证书和 Dataverse 集成

这两种方法都旨在支持新式安全要求,包括多重身份验证(MFA)和条件访问策略。

存储状态认证架构

存储状态身份验证方法使用 Playwright 的浏览器上下文管理来安全地存储和重用身份验证令牌。

测试引擎中的身份验证流程概述

Windows 数据保护实现

本地存储状态实现使用 Windows 数据保护 API(DPAPI)进行安全存储:

使用本地 Windows 数据保护 API(DPAPI)进行身份验证概述

安全注意事项

存储状态安全架构提供:

  • 使用 DPAPI 加密保护静态身份验证令牌
  • 支持 Microsoft Entra MFA 和条件访问策略
  • 通过 Playwright 的浏览器上下文进行沙盒隔离
  • 符合 Microsoft Entra 会话生存期策略

基于证书的身份验证体系结构

基于证书的身份验证与 Dataverse X.509 证书集成并使用 X.509 证书来增强静态信息的安全性和加密。

使用 Dataverse

Dataverse 存储实现

该 Dataverse 实现使用自定义 XML 存储库来安全存储保护密钥:

值存储概述 Dataverse

加密技术

以下部分介绍测试引擎用于保护静态和传输中的身份验证数据的加密算法和密钥管理方法。

AES-256-CBC + HMACSHA256

默认情况下,数据值使用 AES-256-CBC 和 HMACSHA256 的组合进行加密:

使用 ASP.Net 数据保护 API 进行加密概述 Dataverse

此方法提供:

  1. 通过 AES-256 加密实现机密性
  2. 通过 HMAC 验证实现完整性
  3. 数据源的身份验证

数据保护 API 集成

测试引擎与 Core 的数据保护 API 集成 ASP.NET ,用于密钥管理和加密:

数据保护 API 使用概述 Dataverse

自定义 XML 存储库实现

测试引擎实现了用于集成的 Dataverse 自定义 IXmlRepository:

数据保护 API 自定义 xml 提供程序概述

条件访问和 MFA 兼容性

测试引擎的身份验证体系结构旨在与条件访问策略无缝 Microsoft Entra 协作:

条件访问策略和多重身份验证概述

高级安全注意事项

以下部分重点介绍其他安全功能和集成,这些功能和集成可增强对身份验证数据的保护并支持企业环境中的安全作。

Dataverse 安全模型集成

Test Engine 使用 Dataverse强大的安全模型:

  • 记录级安全性 - 控制对存储的身份验证数据的访问
  • 共享模型 - 支持测试身份验证上下文的安全共享
  • 审核 - 跟踪对敏感身份验证数据的访问
  • 列级安全性 - 为敏感字段提供精细保护

Azure CLI 令牌管理

对于 Dataverse 身份验证,测试引擎会安全地获取访问令牌:

基于 Azure 命令行(CLI)的身份验证概述

安全性最佳实践

实施测试引擎身份验证时,请考虑以下安全最佳实践:

  • 最低权限访问 - 向测试帐户授予最低限度的必要权限
  • 定期证书轮换 - 定期更新证书
  • 保护 CI/CD 变量 - 保护包含敏感数据的管道变量
  • 审核访问 - 监视对身份验证资源的访问
  • 环境隔离 - 使用单独的环境进行测试

未来的安全增强功能

身份验证安全架构的未来潜在增强功能包括:

  • 与 Azure Key Vault 集成以增强机密管理
  • 支持 Azure 环境中的托管标识
  • 增强的日志记录和安全监控功能
  • 更多跨平台方案的保护提供程序

核心数据 ASP.NET 保护
Windows 数据保护 API
Microsoft Entra 认证
Dataverse 安全模型
基于 X.509 证书的身份验证