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 から 1 回限りのアクセス トークンを取得して 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}
ヒント
毎回資格情報を入力しなくて済むようにするには、Git Credential Manager (GCM) の使用を検討してください。 Microsoft Entra トークンを生成するには、既定の資格情報の種類を Oauth
として GCM を使用します。
個人用アクセス トークン
個人用アクセス トークン (AT)、ユーザー名とパスワードを直接使用せずに Azure DevOps へのアクセスを提供します。 これらのトークンは有効期限が切れ、アクセスできるデータのスコープを制限できます。
システムに SSH キーが設定されていない場合、または資格情報によって付与されるアクセス許可を制限する必要がある場合は、AT を使用して認証します。
Git の操作にはユーザー名が必要です。これは空の文字列以外の任意のユーザー名です。 HTTP 基本認証で PAT を使用するには、次のコード ブロックに示されているように、$MyPat
の Base64-encode
を行います。
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 によるキー認証は、コンピューターで作成する公開と秘密のキーのペア経由で機能します。 公開キーを Web のユーザー名に関連付けます。 Azure DevOps は、ユーザーが Git を操作するときに、そのキーを使用してユーザーに送信するデータを暗号化します。 コンピューター上のデータは、決してネットワーク経由で共有や送信が行われることのない秘密キーで暗号化解除します。
SSH は、システムに既に設定されている場合に最適なオプションです。公開キーを Azure DevOps に追加し、SSH を使用してリポジトリをクローンするだけです。 Linux、macOS、または Windows
詳細については、「 Azure DevOps を使用した SSH の設定を参照してください。
Git Credential Manager を使用してトークンを生成する
Git Credential Manager (GCM) を使用して、毎回資格情報を入力しないようにし、Azure Repos にアクセスするときにトークンの安全性を高めます。 Web ポータルにサインインし、トークンを生成し、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
は、Azure DevOps for Git リポジトリで使用される URL パス構造を指します。/_git/
セグメントは、Git リポジトリにアクセスしていることを示しており、do
を実際のリポジトリの名前に置き換える必要があります。 たとえば、リポジトリの名前がmy-repo
の場合、パスは '/_git/my-repo
' になります。リポジトリの複製: Git を使用していて認証が必要な場合は、次のコマンドを実行します。
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}
{organization}
を Azure DevOps 組織名に置き換え、{repository}
をリポジトリの名前に置き換えます。