努力让 Playwright 使用 Azure Active Directory 条件访问
Posted
技术标签:
【中文标题】努力让 Playwright 使用 Azure Active Directory 条件访问【英文标题】:Struggling to get Playwright to work with Azure Active Directory Conditional Access 【发布时间】:2022-01-18 18:20:29 【问题描述】:我正在围绕我们的前端 php 应用程序建立一个 Playwright 测试框架,以便为我们的团队建立自动化测试原型。我们的身份验证由具有 2FA 的 Azure Active Directory 以及我们设备的条件访问进行管理。我遇到的问题是条件访问不喜欢 Playwright 使用的伪隐身 Chromium 浏览器。以下是我在 Edge InPrivate 窗口中尝试登录时收到的消息(与 Chromium 相同的错误消息):
我已经浏览了 Playwright 文档中的身份验证部分并进行了搜索,但我没有通过条件访问问题获得任何运气。我目前正在运行的失败的 TypeScript 代码是:
import test from "@playwright/test";
const chromium = require('playwright');
test('Log into Application', async () =>
const userDataDir = '\UserData';
const context = await chromium.launchPersistentContext(userDataDir, headless: false );
const page = await context.newPage();
await page.goto('https://MyApplication.com');
await page.pause();
)
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:-
根据Grant controls | Microsoft Docs 中的最后一个项目符号点。
条件访问不能将 InPrivate 模式下的 Microsoft Edge 视为 合规设备或经批准的客户端应用程序。
-
在普通 chromium 浏览器(非私有模式)下工作,您需要根据您的操作系统安装并运行支持的浏览器。如果您使用的是 Windows 10,则支持的浏览器包括 Microsoft Edge、Internet Explorer 和 Google Chrome。如果您使用的是不同的操作系统,您可以查看supported browsers. 的完整列表
(或)
-
此错误消息可能是因为出于安全原因,全局管理员在您公司的 Office 365 租户中创建了条件访问策略,因此只有在 Azure 中注册的特定设备才允许您使用。因此,在这种情况下,您应该与公司的“IT HelpDesk”部门联系,并要求他们配置并允许那里的所有浏览器。
管理员可以使用访问控制来授予或阻止对资源的访问:Grant controls
您可能需要联系管理员从 Office 365 管理中心提出支持票以进行进一步调查
参考:Troubleshooting compliance error
如果您拥有全局管理员权限,您可以排除意外故障 使用错误消息与条件访问相关的登录结果 和 Azure AD 登录日志。
您可以点击更多详细信息并查看信息。
以全局管理员、安全管理员或全局读者身份登录 Azure 门户
浏览到 Azure Active Directory > 登录。
查找要登录的活动以进行审核。添加或删除过滤器。
条件访问选项卡将显示导致登录中断的一个或多个特定策略。
您可以查看和检查基本信息、是否注册的设备详细信息以及其他不符合政策的详细信息。
有关故障排除的完整详细信息。请查看此Troubleshooting | Microsoft Docs 了解故障排除的完整详细信息。
参考:
You Can’t Get There From Here – Vince's Server Stuff (vincecarbone.com)
【讨论】:
以上是关于努力让 Playwright 使用 Azure Active Directory 条件访问的主要内容,如果未能解决你的问题,请参考以下文章