다음을 통해 공유


개인용 액세스 토큰 사용

Azure DevOps 서비스 | Azure DevOps 서버 2022 - Azure DevOps Server 2019

PAT(개인용 액세스 토큰)는 Azure DevOps에 인증하기 위한 대체 암호로 사용됩니다. 이 PAT는 귀하를 식별하고 접근성 및 액세스 범위를 결정합니다. 암호와 동일한 수준의 주의로 PAT를 처리합니다.

Microsoft 도구를 사용하는 경우 MSA(Microsoft 계정) 또는 Microsoft Entra ID가 인식되고 지원됩니다. Microsoft Entra 계정을 지원하지 않는 도구를 사용하거나 기본 자격 증명을 공유하지 않으려는 경우 대체 인증 방법으로 PAT를 사용하는 것이 좋습니다. 그러나 가능할 때마다 PATs보다 Microsoft Entra 토큰을 사용하는 것이 좋습니다.

중요

위험 수준이 높은 개인용 액세스 토큰보다 더 안전한 Microsoft Entra 토큰을 사용하는 것이 좋습니다. PAT 사용량을 줄이기 위한 노력에 대해 자세히 알아보세요. 인증 지침을 검토하여 요구 사항에 적합한 인증 메커니즘을 선택합니다.

필수 조건

범주 요구 사항
사용 권한 PAT가 관리되는 사용자 설정에 액세스하고 수정할 수 있는 권한입니다.
- 프로필 이동하여 사용자 설정>개인 액세스 토큰선택합니다. 여기에서 PAT를 보고 관리할 수 있는 경우 필요한 권한이 있습니다.
- 프로젝트로 이동하여 프로젝트 설정>사용 권한을 선택합니다. 목록에서 사용자 계정을 찾아 할당된 권한을 확인합니다. 토큰 또는 사용자 설정 관리와 관련된 권한을 찾습니다.
- 조직에 정책이 있는 경우 관리자는 특정 권한을 부여하거나 허용 목록에 추가하여 PAT를 만들고 관리해야 할 수 있습니다.
- PAT는 토큰을 발행한 사용자 계정에 연결됩니다. PAT가 수행하는 작업에 따라 더 많은 권한이 필요할 수 있습니다.
접근 수준 적어도 기본 접근 권한.
작업 필요한 경우에만 개인 액세스 토큰(PAT)을 사용하고 항상 정기적으로 회전시킵니다. PAT를 사용하는 경우 모범 사례에 대한 섹션을 참조하세요.

PAT 만들기

  1. 조직에 로그인합니다(https://dev.azure.com/{Your_Organization}).

  2. 홈페이지에서 사용자 설정 를 연 다음 개인용 액세스 토큰을 선택합니다.

    선택 항목, 개인용 액세스 토큰을 보여 주는 스크린샷

  3. + 새 토큰을 선택합니다.

    선택 영역, 새 토큰을 보여 주는 스크린샷

  4. 토큰 이름을 지정하고, 토큰을 사용할 조직을 선택한 다음, 설정된 일 수 후에 토큰이 자동으로 만료되도록 설정합니다.

    기본 토큰 정보를 입력하는 스크린샷.

  5. 이 토큰의 범위를 선택하여 특정 작업에 대한 권한을 부여합니다.

    예를 들어 Azure DevOps에 인증할 빌드 및 릴리스 에이전트에 대한 토큰을 만들려면 토큰의 범위를 에이전트 풀로 설정합니다(읽기 및 관리). 감사 로그 이벤트를 읽고 스트림을 관리하거나 삭제하려면 감사 로그 읽기를 선택한 다음 만들기를 선택합니다.

    PAT에 대해 선택한 범위를 보여 주는 스크린샷

    참고

    관리자가 전체 범위의 PAT를 만들지 못하도록 제한하거나 패키징 범위 PAT로만 제한할 수 있습니다. 더 많은 범위에 액세스해야 하는 경우 관리자에게 문의하여 허용 목록에 액세스합니다. 예를 들어 vso.governance일부 범위는 널리 퍼블릭용이 아닌 경우 UI에서 사용할 수 없을 수 있습니다.

  6. 완료되면 토큰을 복사하여 안전한 위치에 저장합니다. 보안을 위해 다시 표시되지 않습니다.

    토큰을 클립보드에 복사하는 방법을 보여 주는 스크린샷

Azure DevOps에서 인증을 위해 사용자 자격 증명이 필요한 모든 곳에서 PAT를 사용합니다.

중요

  • 암호와 동일한 주의로 PAT를 처리하고 기밀로 유지합니다. PAT를 공유하지 마세요.
  • Microsoft Entra ID로 지원되는 조직의 경우 90일 이내에 새 PAT로 로그인해야 합니다. 그렇지 않으면 비활성 상태가 됩니다. 자세한 내용은 조건부 액세스에 대한 사용자 로그인 빈도를 참조 하세요.

알림

PAT의 수명 동안 사용자는 PAT가 생성될 때와 만료되기 7일 전에 두 가지 알림을 받습니다.

PAT를 만든 후 다음 예제와 유사한 알림을 받을 수 있습니다. 이 알림은 PAT가 조직에 성공적으로 추가되었음을 확인하는 역할을 합니다.

PAT 생성 알림을 보여 주는 스크린샷.

만료 3일 전에 만료 알림 이메일이 전송됩니다. 관리자가 조직에서 PAT를 만드는 기능을 제거한 경우 전자 메일은 더 이상 PAT를 다시 생성할 수 없음을 나타냅니다. 프로젝트 컬렉션 관리자에게 문의하여 해당 조직에서 계속된 PAT 만들기 권한을 허용 목록에 포함할 수 있습니다.

자세한 내용은 SMTP 서버 구성 및 경고 및 피드백 요청에 대한 전자 메일 사용자 지정을 참조 하세요.

예기치 않은 알림

예기치 않은 PAT 알림이 수신되면 관리자 또는 도구가 PAT를 만든 것일 수 있습니다. 다음은 몇 가지 예입니다.

  • git.exe 통해 Azure DevOps Git 리포지토리에 연결할 때 "git: https://dev.azure.com/{Your_Organization} on YourMachine"이라는 토큰이 만들어집니다.
  • 사용자 또는 관리자가 Azure App Service 웹앱 배포를 설정할 때 "서비스 후크: Azure App Service: 웹앱 배포"라는 토큰이 만들어집니다.
  • 사용자 또는 관리자가 파이프라인의 일부로 웹 부하 테스트를 설정할 때 "WebAppLoadTestCDIntToken"이라는 토큰이 만들어집니다.
  • Microsoft Teams 통합 메시징 확장이 설정되면 "Microsoft Teams Integration"이라는 토큰이 생성됩니다.

경고

  • 오류로 존재한다고 의심되는 경우, PAT을 취소하고 암호를 변경하세요.
  • 조직에 알 수 없는 원본 또는 위치에서 액세스가 있었는지 확인하기 위해 Microsoft Entra 사용자라면 관리자에게 문의하세요.
  • 퍼블릭 GitHub 리포지토리에 대한 실수로 인한 PAT 체크 인에 대한 FAQ를 검토합니다.

PAT을 사용하세요.

PAT는 암호와 마찬가지로 디지털 ID 역할을 합니다. 일회성 요청을 수행하거나 애플리케이션을 로컬로 프로토타입하는 빠른 방법으로 PAT를 사용할 수 있습니다. 코드의 PAT를 사용하여 REST API 요청을 인증하고 요청의 권한 부여 헤더에 PAT를 포함하여 워크플로를 자동화합니다.

중요

앱 코드가 작동되면, Microsoft Entra OAuth로 전환하여 앱 사용자의 토큰을 받거나 또는 서비스 주체나 관리 ID로 애플리케이션으로서 토큰을 받으세요. PAT를 장기적으로 사용하여 앱 또는 스크립트를 계속 실행하는 것은 권장되지 않습니다. PAT가 사용되는 모든 위치에서 Microsoft Entra 토큰을 사용할 수 있습니다. 임시 요청을 위해 Azure CLI를 통해 Microsoft Entra 토큰을 획득 하는 것이 좋습니다.

HTTP 헤더를 통해 PAT를 제공하려면 먼저 문자열로 Base64 변환해야 합니다. 그런 다음, 다음 형식으로 HTTP 헤더로 제공할 수 있습니다.


Authorization: Basic BASE64_USERNAME_PAT_STRING

PAT 수정

다음 단계를 수행합니다.

  • PAT를 다시 생성하여 이전 토큰을 무효화하는 새 토큰을 만듭니다.
  • PAT를 확장하여 유효 기간을 늘린다.
  • PAT의 범위를 변경하여 권한을 변경합니다.
  1. 홈페이지에서 사용자 설정 를 연 다음 개인용 액세스 토큰을 선택합니다.

  2. 수정할 토큰을 선택한 다음 편집합니다.

    PAT를 수정하는 강조 표시된 편집 단추를 보여 주는 스크린샷

  3. 토큰 이름, 토큰 만료 또는 토큰과 연결된 액세스 범위를 편집한 다음 저장을 선택합니다.

    수정된 PAT를 보여 주는 스크린샷

PAT 해지

다음과 같은 이유로 언제든지 PAT를 해지할 수 있습니다.

  • 보안 위반: 로그 또는 공용 리포지토리에 손상, 유출 또는 노출된 것으로 의심되는 경우 PAT를 즉시 해지합니다.
  • 더 이상 필요하지 않음: 만든 프로젝트, 서비스 또는 통합이 완료되거나 중단될 때 PAT를 해지합니다.
  • 정책 준수: PAT를 해지하여 보안 정책, 규정 준수 요구 사항 또는 조직 토큰 회전 일정을 적용합니다.
  • 사용자 변경: 팀 구성원이 조직을 떠나거나 역할을 변경하고 더 이상 액세스할 필요가 없는 경우 PAT를 해지합니다.
  • 범위 감소: 액세스 기능을 제한해야 하는 경우 권한이 감소된 PAT를 취소하고 다시 만듭니다.
  • 정기 유지 관리: 일상적인 보안 위생 및 토큰 수명 주기 관리의 일환으로 PAT를 해지합니다.

PAT를 해지하려면 다음 단계를 수행합니다.

  1. 홈페이지에서 사용자 설정 를 연 다음 개인용 액세스 토큰을 선택합니다.

  2. 보안에서 개인 액세스 토큰을 선택합니다. 액세스를 취소할 토큰을 선택한 다음, 해지(Revoke)를 선택합니다.

    단일 토큰 또는 모든 토큰을 해지하기 위한 선택을 보여 주는 스크린샷

  3. 확인 대화 상자에서 취소를 선택합니다.

    PAT를 해지하는 확인 화면을 보여 주는 스크린샷

PAT 수명 주기 관리 API

PAT 수명 주기 관리 API는 UI를 통해 대량의 토큰을 유지 관리할 수 없는 경우에 유용할 수 있습니다. PAT 회전을 프로그래밍 방식으로 관리하면 정기적으로 PAT를 회전하고 기본 수명을 단축할 수 있습니다. Microsoft Entra 테넌트와 Azure DevOps 조직과 함께 설정할 수 있는 저희 샘플 Python 앱입니다.

이러한 API에 대해 유의해야 할 몇 가지 사항은 다음과 같습니다.

  • 이 API에 액세스하려면 Microsoft Entra 액세스 토큰이 필요하며, 일반적으로 새 토큰을 만들 때 더 강력한 형태의 인증이 권장됩니다.
  • "사용자 대신" 흐름을 사용하는 사용자 또는 앱만 PAT를 생성할 수 있습니다. Microsoft Entra 액세스 토큰을 발급하지 않는 "On-Behalf-of Application" 흐름 또는 인증 흐름을 사용하는 앱은 이 API에서 사용할 수 없습니다. 따라서 서비스 주체 또는 관리 ID 는 PAT를 만들거나 관리할 수 없습니다.
  • 이전에는 PAT 수명 주기 관리 API가 user_impersonation 범위만 지원했지만 이제 vso.pats 범위가 사용 가능하며 이러한 API에서 권장되는 범위입니다. 이전에 user_impersonation에 의존하여 이러한 API를 호출했던 모든 앱의 다운스코프를 합니다.

서식 변경

2024년 7월을 기준으로 유출된 PAT 검색 도구 및 파트너 제품에서 비밀 검색을 개선하기 위해 PAT 문자열 형식을 업데이트했습니다. 이 새로운 PAT 형식에는 이러한 검색 도구에서 가양성 검색 속도를 개선하고 감지된 누출을 더 빠르게 완화하기 위해 식별 가능한 비트가 더 많이 포함되어 있습니다.

  • 새 토큰은 이제 84 자 길이이며, 52자가 임의 데이터이므로 전체 엔트로피가 향상되어 토큰이 무차별 암호 대입 공격에 더 강합니다.
  • 서비스에서 발급한 토큰에는 위치 76-80의 고정 AZDO 서명이 포함됩니다.

해당 데이터 전에 발급된 PAT를 사용하는 경우 PAT를 다시 생성합니다. PAT와 통합하고 PAT 유효성 검사가 기본 제공된 경우 새 토큰 길이와 기존 토큰 길이를 모두 수용하도록 유효성 검사 코드를 업데이트합니다.

경고

두 형식 모두 당분간 유효합니다. 새 형식의 채택이 증가함에 따라 이전 52자 PAT를 사용 중지할 수 있습니다.

PAT 사용에 대한 모범 사례

대안 고려

  • 수명이 긴 PAT를 발행하는 대신 임시 요청을 위해 Azure CLI를 통해 Microsoft Entra 토큰을 획득합니다.
  • Git Credential Manager 또는 Azure Artifacts Credential Manager와 같은 자격 증명 관리자를 사용하여 인증을 설정하거나 Microsoft Entra 토큰으로 자격 증명 관리를 간소화합니다.

PAT 생성하기

  • PAT 이름에 개인 데이터를 넣지 마세요. 실제 PAT 토큰의 일부 또는 전부를 포함하도록 PAT 이름의 이름을 바꾸지 마세요.
  • 모든 조직에서 필요한 경우가 아니면 전역 PAT를 만들지 마세요.
  • 흐름 또는 사용자 사례별로 다른 토큰을 사용합니다.
  • 각 PAT에 필요한 최소 범위만 선택합니다. 특정 작업에 필요한 최소 권한을 부여하고 광범위한 단일 토큰을 사용하는 대신 다른 워크플로에 대해 제한된 범위의 개별 PAT를 만듭니다. PAT에 읽기 전용 권한이 필요한 경우 필요할 때까지 쓰기 권한을 제공하지 마세요.
  • PAT 수명을 짧게 유지합니다(매주가 이상적이며, 더 짧을수록 좋습니다).

PAT 관리

  • PAT를 공유하지 마세요!
  • AZURE KeyVault와 같은 보안 키 관리 솔루션에 PAT를 저장합니다.
  • UI 또는 PAT 수명 주기 관리 API를 통해 정기적으로 PAT를 회전하거나 다시 생성합니다.
  • 더 이상 필요하지 않은 경우 PAT를 해지합니다.
  • 자사 도구를 통한 유출된 비밀 검색 및 해지를 위해 새 PAT 형식을 사용하도록 PAT를 회전시키세요.

관리자의 경우

  • 테넌트 관리자는 전역 PAT 만들기, 전체 범위 PAT 만들기 및 수명이 긴 PAT 기간을 제한하는 정책을 설정할 수 있습니다.
  • 테넌트 관리자는 PAT가 손상된 경우 조직 사용자에 대한 PAT를 해지할 수 있습니다.
  • 조직 관리자는 조직에서 PAT 만들기를 제한할 수 있습니다. PAT가 여전히 필요한 경우 허용 목록에 있는 PAT로만 만들기를 제한합니다.

FAQ

Q: 단일 조직으로 범위가 지정된 PAT를 편집하거나 다시 생성할 수 없는 이유는 무엇인가요?

A: PAT 범위가 지정된 조직에 로그인합니다. Access 범위 필터를 변경하여 동일한 Microsoft Entra ID의 조직에 로그인한 경우 PAT를 확인할 수 있지만, 해당 조직에 로그인한 경우에만 조직 범위 토큰을 편집할 수 있습니다.

Q: 사용자 계정을 사용하지 않도록 설정하면 PAT는 어떻게 되나요?

A: 사용자가 Azure DevOps에서 제거되면 PAT는 1시간 이내에 무효화됩니다. 조직이 Microsoft Entra ID에 연결된 경우 PAT는 사용자에 속하기 때문에 Microsoft Entra ID에서도 무효화됩니다. 서비스를 계속 실행하려면 PAT를 다른 사용자 또는 서비스 계정으로 회전하는 것이 좋습니다.

Q: 모든 Azure DevOps REST API에서 PAT를 사용할 수 있나요?

A: 아니요. 대부분의 Azure DevOps REST API에서 PAT를 사용할 수 있지만 조직 및 프로필 및 PAT 관리 수명 주기 API는 Microsoft Entra 토큰만 지원합니다.

Q: 실수로 PAT를 GitHub의 퍼블릭 리포지토리 확인하면 어떻게 되나요?

A: Azure DevOps는 GitHub의 공용 리포지토리에 체크 인된 PAT를 검색합니다. 유출된 토큰을 찾으면 즉시 토큰 소유자에게 자세한 이메일 알림을 보내고 Azure DevOps 조직의 감사 로그에 이벤트를 기록합니다. 영향을 받는 사용자는 유출된 토큰을 해지하고 새 토큰으로 바꿔 문제를 완화하는 것이 좋습니다.

유출된 개인 액세스 토큰 정책을 자동으로 해지하지 않는 한 유출된 PAT를 즉시 해지합니다. 자세한 내용은 유출된 PAT를 자동으로 해지하는 방법을 참조하세요.

Q: 개인 액세스 토큰을 ApiKey로 사용하여 dotnet/nuget.exe 명령줄을 사용하여 Azure Artifacts 피드에 NuGet 패키지를 게시할 수 있나요?

A: 아니요. Azure Artifacts는 PAT를 ApiKey로 전달하는 것을 지원하지 않습니다. 로컬 개발 환경을 사용하는 경우 Azure Artifacts 자격 증명 공급자 설치하여 Azure Artifacts로 인증하는 것이 좋습니다. 자세한 내용은 dotnet, NuGet.exe 예제를 참조하세요. Azure Pipelines를 사용하여 패키지를 게시하려면 NuGet Authenticate 작업을 사용하여 피드에 인증합니다. 예제참조하세요.

Q: PAT 작동이 중단된 이유는 무엇인가요?

A: PAT 인증을 사용하려면 전체 인증 흐름을 사용하여 Azure DevOps에 정기적으로 로그인해야 합니다. 30일마다 한 번씩 로그인하는 것은 많은 사용자에게 충분하지만 Microsoft Entra 구성에 따라 더 자주 로그인해야 할 수도 있습니다. PAT가 작동을 중지하는 경우 먼저 조직에 로그인하고 전체 인증 프롬프트를 완료합니다. PAT가 여전히 작동하지 않는 경우 만료되었는지 확인합니다.

IIS 기본 인증을 사용하도록 설정하면 Azure DevOps Server에 대한 PAT를 사용하는 것이 무효화됩니다. IIS 기본 인증 항상 해제 유지하는 것이 좋습니다.

경고

IIS 기본 인증에서 Git을 사용하는 경우 Git은 사용자 인증에 PAT가 필요하기 때문에 중단됩니다. 추가 헤더를 Git 요청에 추가하여 IIS 기본 인증과 함께 사용할 수 있지만 이 작업은 권장하지 않습니다. Windows Auth는 PAT를 사용할 수 없으므로 모든 Azure DevOps Server 설치에 추가 헤더를 사용해야 합니다. 추가 헤더에는 base 64 인코딩 user:PAT도 포함되어야 합니다.

git -c http.extraheader='Authorization: Basic [base 64 encoding of "user:password"]' ls-remote http://tfsserver:8080/tfs/DefaultCollection/_git/projectName

Q: 사용자에 연결되지 않은 액세스 토큰을 만들려면 어떻게 해야 하나요?

A: 모든 PAT는 이를 만든 사용자 ID와 연결됩니다. 애플리케이션은 PAT를 만들 수 없습니다.

Azure DevOps에서 애플리케이션 서비스 주체 또는 관리 ID에서 발급한 Microsoft Entra 토큰을 사용하여 특정 사용자에 연결되지 않은 액세스 토큰을 생성할 수 있습니다. 파이프라인의 경우 서비스 연결을 사용하여 사용자별 자격 증명을 사용하지 않고 자동화된 작업을 안전하게 인증하고 권한을 부여합니다.

Q: API를 통해 PAT를 다시 생성/회전하려면 어떻게 해야 하나요? UI에서 해당 옵션을 보았지만 API에 유사한 메서드가 표시되지 않습니다.

A: UI에서 사용할 수 있는 '다시 생성' 기능은 실제로 API를 통해 복제할 수 있는 몇 가지 작업을 수행합니다.

PAT를 회전하려면 다음 단계를 수행합니다.

  1. GET 호출을 사용하여 PAT 메타데이터 확인하세요.
  2. POST 호출을 사용하여 이전 PAT ID로 새 PAT를 만듭니다.
  3. DELETE 호출을 사용하여 이전 PAT를 삭제합니다.

Q: 만료, 해지 또는 비활성 PAT가 Azure DevOps 토큰 목록에 표시되는 기간은 얼마나 합니까?

A: 만료되거나 해지된 PAT는 더 이상 사용하거나 다시 생성할 수 없습니다. 이러한 비활성 토큰은 디스플레이에서 자동으로 제거되기 전에 만료 또는 해지 후 몇 달 동안 계속 표시됩니다.

Q: Microsoft Entra 앱을 사용하여 PAT 수명 주기 관리 API를 호출하려고 할 때 "관리자 승인 필요" 팝업이 표시됩니다.

A: 애플리케이션이 조직의 조직 리소스에 액세스하려면 테넌트의 보안 정책에 관리자 동의가 필요합니다. 테넌트 관리자에게 문의하세요.

Q: 서비스 주체를 사용하여 PAT를 만들거나 관리할 수 있나요?

A: 아니요, PAT는 사용자 ID에 속합니다. Microsoft Entra 서비스 주체 또는 관리 ID 는 PAT가 허용되는 대부분의 위치에서 사용할 수 있는 수명이 짧은 Microsoft Entra 토큰을 생성할 수 있습니다. Azure DevOps에서 PAT 사용량을 줄이고 PAT를 Microsoft Entra 토큰으로 바꾸는 방법에 대해 자세히 알아봅니다.