Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
보안 인증은 Azure Repos 및 Azure DevOps Server Git 리포지토리를 보호하는 데 기본 사항입니다. Microsoft Entra OAuth 토큰, 개인용 액세스 토큰 및 SSH 키와 같은 여러 인증 옵션을 사용할 수 있는 경우 올바른 방법을 선택하면 개발 워크플로의 보안과 생산성이 모두 보장됩니다.
Microsoft Entra OAuth 토큰은 OAuth 2.0 표준을 통해 향상된 보안과 엔터프라이즈 ID 시스템과의 원활한 통합을 제공하는 최신 개발 팀에 권장되는 방법입니다. 명령줄에서 작업하든, Git 클라이언트를 사용하든, CI/CD 파이프라인과 통합하든, 적절한 범위 제한이 있는 인증 방법을 선택하면 필요한 액세스를 유지하면서 보안 위험을 줄일 수 있습니다.
자격 증명이 더 이상 필요하지 않을 때는 항상 자격 증명을 해지하거나 순환하십시오. 이 방법은 리포지토리 보안을 유지하고 최소 권한 액세스 원칙을 따릅니다.
인증 메커니즘
Microsoft Entra OAuth 토큰(권장)
Microsoft Entra 토큰은 Git 작업 및 REST API에 대한 기본 인증 방법입니다. 향상된 보안 기능을 제공하며 개인 액세스 토큰이 사용되는 모든 곳에서 사용할 수 있습니다. 이러한 토큰은 사용자 주체 또는 관리 ID 및/또는 서비스 주체에 대해 생성됩니다.
Azure CLI 빠른 시작: Azure CLI를 사용하여 Git 작업에 즉시 사용할 수 있도록 Microsoft Entra 토큰을 가져올 수 있습니다. 이 방법은 테스트 또는 일회성 작업에 적합합니다.
사용자 인증의 경우:
az login
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
서비스 주체 인증의 경우: 먼저 서비스 주체로 로그인한 다음 토큰을 가져옵니다.
az login --service-principal -u <client-id> -p <client-secret> --tenant <tenant-id>
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
Git 사용 예제:
$accessToken = az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
git -c http.extraheader="AUTHORIZATION: bearer $accessToken" clone https://dev.azure.com/{yourOrgName}/{yourProjectName}/_git/{yourRepoName}
개인용 액세스 토큰(대체 옵션)
비고
개인용 액세스 토큰은 계속 지원되지만 보안 및 최신 인증 사례를 개선하려면 Microsoft Entra OAuth 토큰을 사용하는 것이 좋습니다 .
개인용 액세스 토큰(PAT)은 사용자 이름과 암호를 직접 사용하지 않고도 Azure DevOps에 접근할 수 있게 합니다. 이러한 토큰은 만료되며 액세스할 수 있는 데이터의 범위를 제한할 수 있습니다.
다음과 같은 경우 PAT를 사용합니다.
- 시스템에 SSH 키가 설정되어 있지 않습니다.
- 자격 증명에서 부여한 권한을 제한해야 합니다.
- 시나리오에서는 Microsoft Entra OAuth 토큰을 사용할 수 없습니다.
Git 상호 작용에는 빈 문자열을 제외한 모든 항목이 될 수 있는 사용자 이름이 필요합니다. HTTP 기본 인증에 PAT를 사용하려면 다음 코드 블록에 표시된 대로 Base64-encode$MyPat을/를 설정하십시오.
PowerShell에서 다음 코드를 입력합니다.
$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue
git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
SSH 키
SSH를 사용한 키 인증은 컴퓨터에서 만든 공개 및 프라이빗 키 쌍을 통해 작동합니다. 공개 키를 웹의 사용자 이름과 연결합니다. Azure DevOps는 Git을 사용할 때 해당 키를 사용하여 사용자에게 전송된 데이터를 암호화합니다. 네트워크를 통해 공유되거나 전송되지 않는 프라이빗 키를 사용하여 컴퓨터의 데이터를 암호 해독합니다.
SSH는 시스템에 이미 설정된 경우 유용한 옵션입니다. Azure DevOps에 공개 키를 추가하고 SSH를 사용하여 리포지토리를 복제하기만 하면 됩니다. HTTPS 인증에 Git 자격 증명 관리자 또는 개인 액세스 토큰을 사용할 수 없는 Windows용 Git을 실행하는 Linux, macOS 또는 Windows에 SSH를 사용하는 것이 좋습니다.
자세한 내용은 Azure DevOps를 사용하여 SSH 설정을 참조 하세요.
Git 자격 증명 관리자를 사용하여 토큰 생성
GCM(Git Credential Manager) 사용하여 매번 자격 증명을 입력하지 않고 Azure Repos에 액세스할 때 토큰을 더 안전하게 유지합니다. 웹 포털에 로그인하고, 토큰을 생성한 다음, Azure Repos에 연결할 때 토큰을 암호로 사용합니다. 자격 증명 관리자를 설치하고 Git 명령줄 또는 다른 클라이언트와 함께 사용하기 위해 로컬로 저장한 경우 요청 시 Microsoft Entra 토큰(기본 설정) 또는 PAT가 생성됩니다.
기존 리포지토리
기존 원본 제거: 이전에 사용자 이름을 사용하여 원본을 추가한 경우 다음 명령을 실행하여 제거합니다.
git remote remove originPAT를 사용하여 인증: 표준 인증에 문제가 발생하는 경우 다음 명령을 실행하여 명령줄을 통해 인증합니다.
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>git push -u origin --allpath to git repo = /_git/doGit 리포지토리용 Azure DevOps에 사용되는 URL 경로 구조를 나타냅니다./_git/세그먼트는 Git 리포지토리에 액세스하고 있음을 나타내며do리포지토리의 실제 이름으로 바꿔야 합니다. 예를 들어 리포지토리 이름이my-repo경우 경로는 '/_git/my-repo'입니다.리포지토리 복제 : Git을 사용하고 인증해야 하는 경우 다음 명령을 실행합니다.
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}{organization}Azure DevOps 조직 이름으로 바꾸고{repository}리포지토리 이름으로 바꿉니다.