次の方法で共有


Azure Repos での認証

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 パイプラインと統合する場合でも、適切なスコープ制限を持つ認証方法を選択すると、必要なアクセスを維持しながらセキュリティ リスクが軽減されます。

資格情報が不要になったら、必ず取り消すかローテーションします。 この方法では、リポジトリのセキュリティが維持され、最小特権アクセスの原則に従います。

Important

リスクの高い個人用アクセス トークンよりも安全な Microsoft Entraトークンを使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。

ヒント

AI を使用して、Azure DevOps タスクに役立てることができます。 作業を開始するには、 Azure DevOps MCP Server で AI サポートを有効にする 方法に関するページを参照してください。

認証メカニズム

Microsoft Entra トークンは、Git 操作と REST API推奨される認証方法です。 これらは強化されたセキュリティ機能を提供し、個人用アクセス トークンが使用される場所であればどこでも使用できます。 これらのトークンは、ユーザー プリンシパルまたは マネージド ID やサービス プリンシパルに対して生成されます。

Azure CLI のクイック スタート: Azure CLI を使用して、Git 操作ですぐに使用するための Microsoft Entra トークンを取得できます。 この方法は、テストや 1 回限りの操作に最適です。

ユーザー認証の場合:

 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}

個人用アクセス トークン (代替オプション)

個人用アクセス トークン (AT)、ユーザー名とパスワードを直接使用せずに Azure DevOps へのアクセスを提供します。 これらのトークンは有効期限が切れ、アクセスできるデータのスコープを制限できます。

次の場合は、個別アクセス トークンを使用します。

  • システムに 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 によるキー認証は、コンピューターで作成する公開と秘密のキーのペア経由で機能します。 公開キーを Web のユーザー名に関連付けます。 Azure DevOps では、Git を使用するときに、そのキーを使用して送信されたデータが暗号化されます。 コンピューター上のデータは、決してネットワーク経由で共有や送信が行われることのない秘密キーで暗号化解除します。

Azure DevOps への SSH 公開キーの追加を示すアニメーション GIF。

SSH は、システムに既に設定されている場合に最適なオプションです。Azure DevOps に公開キーを追加し、SSH を使用してリポジトリを複製するだけです。 Linux、macOS、または Windows で Git for Windows を実行している場合、HTTPS 認証用の Git 資格情報マネージャー または 個人用アクセス トークン を使用できない場合は、SSH を使用することをお勧めします。

詳細については、「 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} をリポジトリの名前に置き換えます。