다음을 통해 공유


Playwright 작업 영역에 대한 인증 및 권한 부여 관리

이 문서에서는 Playwright 작업 영역에 대한 인증 및 권한 부여를 관리하는 방법을 알아봅니다. 클라우드 호스팅 브라우저에서 Playwright 테스트를 실행하려면 인증이 필요합니다.

기본적으로 Microsoft Entra ID가 인증에 사용됩니다. 이 방법은 보다 안전하며 권장되는 인증 방법입니다. Microsoft Entra ID를 사용한 인증은 비활성화할 수 없습니다. 그러나 액세스 토큰을 사용하여 인증 및 권한 부여를 수행할 수도 있습니다.

배경

극작가 작업 영역은 극작가 오픈 소스 프레임워크를 기반으로 합니다. 클라우드 호스팅 브라우저에서 Playwright 테스트를 실행합니다.

서비스를 사용하려면 클라이언트가 서비스에 인증하여 브라우저에 액세스해야 합니다. 이 서비스는 Microsoft Entra ID와 액세스 토큰이라는 두 가지 인증 방법을 제공합니다.

Microsoft Entra ID는 Azure 자격 증명을 사용하여 보안 액세스를 위해 Azure 계정에 로그인해야 합니다. 아니면 Playwright 작업 영역에서 액세스 토큰을 생성하고 설정에서 사용할 수 있습니다. 그러나 보안이 강화된 Microsoft Entra ID를 인증에 사용하는 것이 좋습니다. 액세스 토큰은 편리하기는 하지만 수명이 긴 암호처럼 작동하며 손상되기 쉽습니다.

액세스 토큰을 사용하여 인증 사용

기본적으로 Playwright 작업 영역은 인증에 Microsoft Entra ID를 사용하는 것이 좋습니다. 액세스 토큰 인증은 지원되지만 보안이 떨어지므로 기본적으로 사용하지 않도록 설정됩니다. 액세스 토큰을 사용하려면 작업 영역에 대해 이 옵션을 명시적으로 사용하도록 설정해야 합니다.

주의

작업 영역 액세스 토큰은 Playwright 작업 영역의 암호와 유사합니다. 항상 액세스 토큰을 보호하도록 주의해야 합니다. 액세스 토큰을 다른 사용자에게 배포하거나 하드 코딩하거나 다른 사용자가 액세스할 수 있는 일반 텍스트로 저장하지 않도록 합니다. 토큰이 손상되었다고 생각되면 토큰을 해지하고 다시 생성하세요.

액세스 토큰을 사용한 인증을 활성화하려면 다음을 수행합니다.

  1. Azure 계정으로 Azure Portal 에 로그인하고 작업 영역으로 이동합니다.

  2. 설정 섹션에서 액세스 관리를 선택합니다.

  3. Playwright 서비스 액세스 토큰을 사용하도록 설정하려면 확인란을 선택합니다.

액세스 토큰을 사용하여 인증을 켜는 것을 보여 주는 스크린샷

주의

액세스 토큰을 사용한 인증은 보안 수준이 좀 더 낮습니다. 액세스 토큰을 관리하는 방법에 대해 알아보기

액세스 토큰을 사용하여 인증 설정

  1. 테스트를 실행하는 동안 설정의 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
    }));
    
  1. 테스트를 실행하는 동안 설치 파일에서 액세스 토큰 인증을 사용하도록 설정합니다.

    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
        }
    }
    
  1. 액세스 토큰을 만듭니다.

    단계에 따라 액세스 토큰을 만듭니다. 생성된 액세스 토큰의 값을 복사합니다.

환경을 설정합니다.

환경을 설정하려면 이전 단계에서 얻은 값으로 환경 변수를 구성 PLAYWRIGHT_SERVICE_ACCESS_TOKEN 합니다. 테스트를 실행하는 설정에서 이 환경 변수를 사용할 수 있는지 확인합니다.

환경을 관리하려면 dotenv 모듈을 사용하는 것이 좋습니다. dotenv를 사용하면 .env 파일에 환경 변수를 정의합니다.

  1. 프로젝트에 dotenv 모듈을 추가합니다.

    npm i --save-dev dotenv
    
  2. 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