다음을 통해 공유


Azure Repos를 사용한 인증

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

올바른 인증 방법을 선택하는 것은 Azure Repos 및 Azure DevOps Server Git 리포지토리에 안전하게 액세스하는 데 중요합니다. 명령 프롬프트에서 작업하든 HTTPS 또는 SSH를 지원하는 Git 클라이언트를 사용하든 관계없이 필요한 액세스를 제공할 뿐만 아니라 작업에 필요한 범위로 범위를 제한하는 자격 증명을 선택하는 것이 중요합니다.

리포지토리의 보안을 유지하기 위해 자격 증명이 더 이상 필요하지 않은 경우 항상 자격 증명을 해지합니다. 이 방법을 사용하면 코드를 안전하고 효율적으로 작업할 수 있는 동시에 무단 액세스에 대한 보안도 유지할 수 있습니다.

인증 메커니즘

Microsoft Entra OAuth 토큰

microsoft Entra 사용하여 REST API액세스하기 위한 토큰을 생성합니다. 개인용 액세스 토큰이 사용되는 모든 위치에서 Microsoft Entra 토큰을 사용할 수 있습니다. Azure CLI에서 일회성 액세스 토큰을 가져와 git fetch를 호출하는 방법에 대한 유용한 팁은 다음과 같습니다.

$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}

자격 증명을 매번 입력하지 않도록 GCM(Git Credential Manager) 살펴봅니다. 기본 자격 증명 형식으로 Oauth을 사용하여 GCM을 통해 Microsoft Entra 토큰을 생성합니다.

개인용 액세스 토큰

개인용 액세스 토큰(PAT)은 사용자 이름과 암호를 직접 사용하지 않고도 Azure DevOps에 접근할 수 있게 합니다. 이러한 토큰은 만료되며 액세스할 수 있는 데이터의 범위를 제한할 수 있습니다.

시스템에 SSH 키를 설정하지 않았거나 자격 증명에서 부여한 권한을 제한해야 하는 경우 PAT를 사용하여 인증합니다.

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

정기적으로 PAT를 사용하는 경우, 자격 증명을 매번 입력하지 않으려면 Git Credential Manager (GCM)를 살펴보세요. 더 좋은 방법은 Oauth 기본 자격 증명 형식으로 설정된 GCM을 사용하여 가능한 한 PAT 대신 Microsoft Entra 토큰을 생성하는 것입니다.

SSH 키

SSH를 사용한 키 인증은 컴퓨터에서 만든 공개 및 프라이빗 키 쌍을 통해 작동합니다. 공개 키를 웹의 사용자 이름과 연결합니다. Azure DevOps는 Git을 사용할 때 해당 키로 전송된 데이터를 암호화합니다. 네트워크를 통해 공유되거나 전송되지 않는 프라이빗 키를 사용하여 컴퓨터의 데이터를 암호 해독합니다.

Azure DevOps에 SSH 공개 키 추가를 보여 주는 애니메이션 GIF

SSH는 시스템에 이미 설정된 경우 유용한 옵션입니다. Azure DevOps에 공개 키를 추가하고 SSH를 사용하여 리포지토리를 복제하기만 하면 됩니다. SSH는 Linux, macOS 또는 Git for Windows를 실행하는 Windows 사용자 중에서 Git 자격 증명 관리자개인 액세스 토큰을 HTTPS 인증에 사용할 수 없는 경우에 선호될 수 있습니다.

자세한 내용은 Azure DevOps를 사용하여 SSH 설정을 참조 하세요.

Git 자격 증명 관리자를 사용하여 토큰 생성

GCM(Git Credential Manager) 사용하여 매번 자격 증명을 입력하지 않고 Azure Repos에 액세스할 때 토큰을 더 안전하게 유지합니다. 웹 포털에 로그인하고, 토큰을 생성한 다음, Azure Repos에 연결할 때 토큰을 암호로 사용합니다. Microsoft Entra 토큰 또는 PAT는 자격 증명 관리자를 설치하고 Git 명령줄 또는 다른 클라이언트와 함께 사용하기 위해 로컬로 저장한 경우 요청 시 생성됩니다.

기존 리포지토리

  • 기존 원본 제거: 이전에 사용자 이름을 사용하여 원본을 추가한 경우 다음 명령을 실행하여 제거합니다.

    git remote remove origin

  • PAT를 사용하여 인증: 표준 인증에 문제가 발생하는 경우 다음 명령을 실행하여 명령줄을 통해 인증합니다.

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    path to git repo = /_git/do Git 리포지토리용 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} 리포지토리 이름으로 바꿉니다.