你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何管理 Playwright 工作区的身份验证和授权。 在云托管的浏览器中运行 Playwright 测试需要身份验证。
默认情况下,使用 Microsoft Entra ID 进行身份验证。 该方法更安全,是推荐使用的身份验证方法。 不能禁用使用 Microsoft Entra ID 的身份验证。 但是,也可使用访问令牌进行身份验证和授权。
背景
Playwright Workspaces 基于 Playwright 开源框架构建。 它在云托管的浏览器中运行 Playwright 测试。
若要使用服务,客户端必须通过服务进行身份验证才能访问浏览器。 该服务提供两种身份验证方法:Microsoft Entra ID 和访问令牌。
Microsoft Entra ID 使用 Azure 凭据,需要登录到 Azure 帐户进行安全访问。 你也可以从 Playwright 工作区生成访问令牌并在设置中使用它。 但是,我们强烈建议使用 Microsoft Entra ID 进行身份验证,因为它具有增强的安全性。 访问令牌虽然很方便使用,但其功能类似于长期密码,因此更容易泄露。
使用访问令牌启用身份验证
默认情况下,Playwright Workspaces 使用 Microsoft Entra ID 进行身份验证,这是建议的方法。 尽管支持访问令牌身份验证,但它默认处于禁用状态,因为它不太安全。 若要使用访问令牌,必须为工作区显式启用此选项。
谨慎
工作区访问令牌类似于 Playwright 工作区的密码。 请务必小心保护访问令牌。 避免将访问令牌分发给其他用户、对其进行硬编码或将其以纯文本形式保存在其他人可以访问的任何位置。 如果认为令牌已泄露,请撤销并重新创建令牌。
若要使用访问令牌启用身份验证,请执行以下操作:
使用 Azure 帐户登录到 Azure 门户,并导航到工作区。
在“设置”部分中,选择“访问管理”。
勾选“Playwright 服务访问令牌”的框以启用它。
谨慎
使用访问令牌进行身份验证的安全性较低。 了解如何管理访问令牌
使用访问令牌设置身份验证
运行测试时,请在设置的
playwright.service.config.ts文件中启用访问令牌身份验证。import { createAzurePlaywrightConfig, ServiceAuth } from '@azure/playwright'; /* Learn more about service configuration at https://aka.ms/pww/docs/config */ export default defineConfig(config, createAzurePlaywrightConfig( config, { serviceAuthType: ServiceAuth.ACCESS_TOKEN }));
运行测试时,请在安装文件中启用访问令牌身份验证。
using Azure.Developer.Playwright.NUnit; using Azure.Developer.Playwright; using Azure.Identity; using System.Runtime.InteropServices; using System; namespace PlaywrightService.SampleTests; // Remember to change this as per your project namespace [SetUpFixture] public class PlaywrightServiceNUnitSetup : PlaywrightServiceBrowserNUnit { public PlaywrightServiceNUnitSetup() : base( credential: new DefaultAzureCredential(), options: new PlaywrightServiceBrowserClientOptions() { ServiceAuth = ServiceAuthType.AccessToken } ) { // no-op } }
创建访问令牌。
按步骤创建访问令牌。 复制生成的访问令牌的值。
设置环境。
若要设置环境,需要使用在前面步骤中获取的值配置 PLAYWRIGHT_SERVICE_ACCESS_TOKEN 环境变量。 请确保在运行测试的安装程序中提供了此环境变量。
建议使用dotenv模块管理环境。 使用dotenv,可以在.env文件中定义环境变量。
将
dotenv模块添加到项目:npm i --save-dev dotenv在 Playwright 项目中的
.env文件旁边创建playwright.config.ts文件:PLAYWRIGHT_SERVICE_ACCESS_TOKEN={MY-ACCESS-TOKEN}请务必将
{MY-ACCESS-TOKEN}文本占位符替换为之前复制的值。
若要设置环境,需要使用在前面步骤中获取的值配置 PLAYWRIGHT_SERVICE_ACCESS_TOKEN 环境变量。 请确保在运行测试的安装程序中提供了此环境变量。
在服务上运行测试
使用上面创建的配置针对云托管的浏览器运行 Playwright 测试。
npx playwright test --config=playwright.service.config.ts --workers=20
dotnet test -- NUnit.NumberOfTestWorkers=20
相关内容
- 详细了解如何管理访问令牌。