Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022
個人用アクセス トークン (PAT) は、Azure DevOpsに認証するための代替パスワードとして機能します。 この PAT は、ユーザーを識別し、アクセスのアクセシビリティとスコープを決定します。 パスワードと同じレベルの注意を払って、PAT を扱います。
注意事項
より安全な認証方法を使用できる場合は、AT を使用しないでください。 PAT は、漏洩、盗難、または悪用される可能性のある有効期間の長い資格情報であるため、固有のセキュリティ リスクを伴います。 可能な限り、代わりに Microsoft Entra トークン、マネージド ID、またはサービス プリンシパルを使用します。
Microsoft ツールを使用すると、Microsoft アカウントまたはMicrosoft Entra IDが認識され、サポートされます。 Microsoft Entra アカウントをサポートしていないツールを使用する場合、またはプライマリ資格情報を共有したくない場合は、代替の認証方法として AT を使用することを検討してください。
重要
より安全なMicrosoft Entraトークンを、リスクの高い個人アクセス トークンよりも使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください。 認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。
ヒント
この記事の後半で、AI を用いてこのタスクを補助することができます。または、Azure DevOps MCP Server で AI 支援を有効にする方法を参照して作業を開始してください。
前提条件
| カテゴリ | 要求事項 |
|---|---|
| アクセス許可 | ユーザー設定へのアクセスと、パーソナルアクセストークン (PAT) が管理されている箇所の設定変更を許可するための権限。 - プロファイルに移動し、 ユーザー設定個人アクセス トークンを選択します。 ここで PAT を表示および管理できる場合は、必要なアクセス許可があります。 - プロジェクトに移動し、 プロジェクト設定Permissions を選択します。 一覧でユーザー アカウントを見つけて、自分に割り当てられているアクセス許可を確認します。 トークンまたはユーザー設定の管理に関連するアクセス許可を探します。 - 組織にポリシーが設定されている場合、管理者が特定の権限を付与するか、許可リストに追加することで、個人アクセストークン (PAT) を作成および管理できるようにする必要がある場合があります。 - PAT は、トークンを作成したユーザーアカウントに関連付けられています。 PAT で実行されるタスクによっては、追加のアクセス許可が必要になる場合があります。 |
| アクセス レベル | 少なくとも基本アクセス。 |
| タスク | 必要な場合にのみ PAT を使用し、定期的に交換してください。 「AT を 使用するためのベスト プラクティス」セクションを参照してください。 |
PAT を作成する
注
次の手順とスクリーンショットは、Azure DevOps サービスを反映しています。 Azure DevOps Serverエクスペリエンスは若干異なる場合があります。
- 組織にサインインします ()。
- Azure DevOps Server Web ポータル (
https://{server}/{collection}またはhttp://{server}:{port}/tfs/{collection}) にサインインします。
ホーム ページからユーザー設定 を開き、[個人用アクセス トークン] を選択します。
ユーザー設定の [個人用アクセス トークン] オプションを示すスクリーンショット。
[+ New Token] を選択します。
[個人用アクセス トークン] ページの [新しいトークン] ボタンを示すスクリーンショット。
トークンに名前を付け、トークンを使用する組織を選択し、設定した日数後にトークンの有効期限が自動的に切れるよう設定します。
名前、組織、および有効期限フィールドを含む [新しい個人用アクセス トークンの作成] ダイアログを示すスクリーンショット。
このトークンのスコープを選択して、特定のタスクを認証します。
たとえば、ビルドとリリース エージェントのトークンを作成してAzure DevOpsに認証するには、トークンのスコープをエージェントプール(読み取りおよび管理)に設定します。 監査ログ イベントを読み取り、ストリームを管理または削除するには、[監査ログを読み取る]を選択し、[作成] を選択します。
PAT のスコープ選択オプションを示すスクリーンショット。
管理者は、 フル スコープの PAT の作成を制限したり、パッケージ化スコープの PAT のみに制限したりする場合があります。 より多くのスコープにアクセスする必要がある場合は、管理者に連絡して許可リストにアクセスしてください。 一部のスコープ (たとえば、 ) は、広く一般に使用されていない場合、ユーザー インターフェイス (UI) では使用できない可能性があります。
完了したら、トークンをコピーし、セキュリティで保護された場所に格納します。 セキュリティ上、再度表示されることはありません。
スクリーンショットは、生成された PAT 値を含む [Copy token to clipboard]\(トークンをクリップボードにコピー\) ボタンを示しています。
pat は、Azure DevOpsでの認証にユーザー資格情報が必要な任意の場所で使用できます。 注意:
- パスワードと同じ注意を払って PAT を扱い、機密性を保ちます。 パーソナルアクセス トークン (PATs) は共有しないでください。
- Microsoft Entra ID によってサポートされている組織の場合、90日以内に新しいパーソナルアクセストークン (PAT) でサインインしないと、利用不可になります。 詳細については、「 条件付きアクセスのユーザー サインイン頻度」を参照してください。
通知
PAT の有効期間中、ユーザーは 2 つの通知を受け取ります。1 つは PAT が作成されたとき、もう 1 つは有効期限が切れる前です。
PAT を作成すると、次の例のような通知を受け取ることがあります。 この通知は、PAT が正常に組織に追加されたことを確認する役割を果たします。
PAT で作成された通知メールを示すスクリーンショット。
トークンの有効期限が切れる前に、有効期限の通知メールが送信されます。 管理者が 組織内の PAT を作成する機能を削除した場合、そのメールは、ユーザーが AT を再生成できなくなることを示します。 プロジェクト コレクション管理者に連絡して、その組織での PAT 作成を継続するための許可リストに追加してもらってください。
詳細については、「SMTP サーバーを構成し、アラートとフィードバック要求のメールをカスタマイズする」を参照してください。
予期しない通知
予期しない PAT 通知を受け取った場合は、管理者またはツールによって PAT が作成された可能性があります。 いくつかの例を次に示します。
- git.exeを使用して Azure DevOps Git リポジトリに接続すると、
git: https://dev.azure.com/{yourorganization} on YourMachineという名前のトークンが作成されます。 -
Service Hooks: Azure App Service: Deploy web appという名前のトークンは、ユーザーまたは管理者がAzure App Service Web アプリのデプロイを設定するときに作成されます。 - という名前のトークンは、ユーザーまたは管理者が Web ロード テストをパイプラインの一部として設定するときに作成されます。
- Microsoft Teams Integration Messaging Extension を設定すると、
Microsoft Teams Integrationという名前のトークンが作成されます。
状況が深刻であると思われる場合:
- PAT がエラーで存在すると思われる場合は、PAT を取り消します (パスワードを変更してください)。
- Microsoft Entraユーザーの場合は、管理者に問い合わせて、不明なソースまたは場所が組織にアクセスしたかどうかを確認します。
- パブリック GitHub リポジトリへの accidental PAT チェックインに関する FAQ を確認します。
PAT を使用する
PAT は、パスワードと同様にデジタル ID として機能します。 1 回限り要求を実行したり、アプリケーションをローカルでプロトタイプ作成したりするための簡単な方法として、AT を使用できます。 コードで PAT を使用して REST API 要求を認証し、要求の承認ヘッダーに PAT を含めることでワークフローを自動化します。
アプリ コードが動作したら、Microsoft Entra OAuth に切り替えて、アプリのユーザーまたはサービス プリンシパルまたはマネージド ID のトークンを取得して、アプリケーションとしてトークンを取得します。 パーソナル アクセス トークン (PAT) を使用してアプリやスクリプトを長期間にわたって実行し続けないでください。 PAT が使用されている任意の場所で、Microsoft Entra トークンを使用できます。
計画外のリクエストに対して、Azure CLIを介してMicrosoft Entraトークンを取得することを検討してください。
- Windows
- Linux または macOS
HTTP ヘッダーを介して PAT を提供するには、まずそれを 文字列に変換する必要があります。 その後、HTTP ヘッダーとして次の形式で指定できます。
Authorization: Basic BASE64_USERNAME_PAT_STRING
PAT を変更する
次の手順を実行します。
- PAT を再生成して新しいトークンを作成すると、前のトークンが無効になります。
- PAT を拡張して有効期間を延長します。
- PAT のスコープを変更してアクセス許可を変更します。
ホーム ページからユーザー設定 を開き、[個人用アクセス トークン] を選択します。
変更するトークンを選択し、[ 編集] を選択します。
PAT エントリの [編集] ボタンが強調表示されているスクリーンショット。
トークン名、トークンの有効期限、またはトークンに関連付けられているアクセスのスコープを編集し、[保存] を選択します。
名前、有効期限、スコープ フィールドを含む PAT の [編集] ダイアログを示すスクリーンショット。
PAT を取り消す
PAT は、次のような理由でいつでも取り消すことができます。
- セキュリティ侵害: PAT が侵害された、漏洩した、またはログまたはパブリック リポジトリで公開されたと思われる場合は、すぐに PAT を取り消します。
- 不要: 作成されたプロジェクト、サービス、または統合が完了したときに PAT を取り消します。
- ポリシー コンプライアンス: PAT を取り消して、セキュリティ ポリシー、コンプライアンス要件、または組織のトークン ローテーション スケジュールを適用します。
- ユーザーの変更: チーム メンバーが組織を離れたり、ロールを変更したり、アクセスが不要になった場合に PAT を取り消します。
- スコープの縮小: アクセス機能を制限する必要がある場合は、アクセス許可を減らした PAT を取り消して再作成します。
- 定期的なメンテナンス: 定期的なセキュリティ検疫とトークンライフサイクル管理の一環として PAT を取り消します。
PAT を取り消すには、次の手順に従います。
ホーム ページで、 ユーザー設定を開き、[ 個人用アクセス トークン] を選択します。
[ セキュリティ] で、[ 個人用アクセス トークン] を選択します。 アクセスを取り消すトークンを選択し、[取り消す] を選択します。
[個人用アクセス トークン] ページで選択したトークンの [取り消し] オプションを示すスクリーンショット。
確認ダイアログで、[取り消し] を選択します。
PAT を取り消すための確認ダイアログを示すスクリーンショット。
PAT ライフサイクル管理 API
PAT ライフサイクル管理 API は、UI を介して大量のトークンを維持することが持続不可能な場合に役立つ場合があります。 PAT ローテーションをプログラムで管理することで、PAT を定期的に回転させ、既定の有効期間を短縮することもできます。 Microsoft EntraテナントとAzure DevOps組織でサンプル Python アプリを構成できます。
これらの API に関する注意事項を次に示します。
- この API にアクセスするにはMicrosoft Entraアクセス トークンが必要です。 新しいトークンを作成するときは、より強力な形式の認証を使用します。
- "代理ユーザー" フローを使用するユーザーまたはアプリのみが、個人用アクセストークン (PAT) を生成できます。 "オンビハーフ-オブ-アプリケーション" フローまたは Microsoft Entra アクセス トークンを発行しない認証フローを使用するアプリは、この API で使用できません。 そのため、 サービス プリンシパルまたはマネージド ID は、AT を作成または管理できません。
- 以前は PAT ライフサイクル管理 API は スコープのみをサポートしましたが、 が使用可能になり、これらの API で使用することをお勧めします。 以前にこれらの API を呼び出すために に依存していたすべてのアプリをダウンスコープします。
PAT 形式
PAT 文字列は、 漏洩した PAT 検出ツール と パートナー オファリングのシークレット検出を改善するために設計された特定の形式を使用します。 この形式には、誤検知検出率を向上させ、検出されたリークの迅速な軽減を可能にする、識別可能なビットが含まれています。
- トークンは 84 文字で、52 文字のデータがランダム化されるため、全体的なエントロピが向上します。 トークンはブルート フォース攻撃に対して耐性があります。
- Azure DevOpsによって発行されたトークンには、76 から 80 桁の固定
AZDO署名が含まれます。
PAT と統合し、PAT 検証が組み込まれている場合は、検証コードが 84 文字のトークン長に対応していることを確認します。
個人アクセス トークン (PATs) を使用するための最良の方法
代替案を検討する
- Azure CLI を介して Microsoft Entra トークンを取得し、長期間有効な PAT を発行する代わりに、想定外の要求に対応します。
-
Git Credential Manager や Azure Artifacts Credential Manager などの資格情報マネージャーを使用して、認証を
oauthまたは Microsoft Entra トークンに設定して、資格情報の管理を簡略化します。
PAT の作成
- PAT 名に個人データを含めないでください。 実際の PAT トークンの一部またはすべてを含むように PAT 名の名前を変更しないでください。
- すべての組織で必要な場合を除き、グローバルな AT の作成は避けてください。
- フローまたはユース ケースごとに異なるトークンを使用します。
- 各 PAT に必要な最小スコープのみを選択します。 特定のタスクに必要な最小限の特権を付与します。 1 つの広範なスコープのトークンを使用する代わりに、異なるワークフローのスコープが制限された個別の AT を作成します。 PAT に読み取り専用アクセス許可が必要な場合は、必要になるまで書き込みアクセス許可を指定しないでください。
- PAT の有効期間を短くします。
PAT の管理
- PAT を共有しないでください。
- 個人アクセス トークン (PAT) を、Azure Key Vault などのセキュリティで保護されたキー管理ソリューションに保存します。
- UI または PAT ライフサイクル管理 API を使用して、定期的に PAT をローテーションまたは再生成します。
- 不要になったら、個人アクセストークン(PAT)を取り消します。
管理者向け
- テナント管理者は、ポリシー を設定して 、グローバル PAT の作成、完全スコープの PAT 作成、および有効期間の長い PAT 期間を制限できます。
- テナント管理者は、PAT が侵害された場合に組織ユーザーの PAT を取り消すことができます。
- 組織の管理者は、 組織での PAT の作成を制限できます。 それでも AT が必要な場合は、その作成を許可リストにある AT のみに制限します。
よく寄せられる質問
質問 1 つの組織にスコープを設定した PAT を編集または再生成できないのはなぜですか?
A。 PAT のスコープが設定されている組織にサインインします。 Access スコープ フィルターを変更することで、同じMicrosoft Entra ID内の任意の組織にサインインしているときに、PAT を表示できます。 特定の組織にサインインしている場合は、組織スコープのトークンのみを編集できます。
質問 ユーザー アカウントが無効になっている場合、PAT はどうなりますか?
A。 ユーザーがAzure DevOpsから削除されると、PAT は 1 時間以内に無効になります。 組織がMicrosoft Entra IDに接続されている場合、PAT はユーザーに属しているため、Microsoft Entra IDでも無効になります。 PAT を別のユーザーまたはサービス アカウントにローテーションして、サービスを実行し続けます。
質問 すべてのAzure DevOps REST API で PAT を使用できますか?
A。 No. ほとんどのAzure DevOps REST API で PAT を使用できますが、組織化とプロファイル PAT 管理ライフサイクル API では、Microsoft Entra トークンのみがサポートされます。
質問 PAT を誤って GitHub のパブリック リポジトリにチェックインした場合はどうなりますか?
A。 Azure DevOps はパブリック GitHub リポジトリ内の漏洩した PAT をスキャンします。 検出されると、Azure DevOpsはトークン所有者に通知し、イベントを audit ログに記録します。 無効化されていない限り、リークした PAT は自動的に取り消されます。 詳細については、「漏洩した PAT を自動的に取り消す」を参照してください。
質問 dotnet/nuget.exe コマンド ラインを使用して NuGet パッケージを Azure Artifacts フィードに発行する API キーとして個人用アクセス トークンを使用できますか?
A。 No. Azure Artifactsでは、API キーとして PAT を渡すことはできません。
ローカル開発環境を使用する場合は、Azure Artifacts Credential Provider をインストールしてAzure Artifactsで認証します。
詳細については、 dotnet と NuGet.exeの例を参照してください。
Azure Pipelinesを使用してパッケージを発行する場合は、NuGet Authenticate タスクを使用してフィードで認証します。
詳細については、Azure Pipelines (YAML/クラシック) を使用した
質問 PAT が機能しなくなったのはなぜですか?
A。 PAT 認証では、完全な認証フローを使用してAzure DevOpsに定期的にサインインする必要があります。 多くのユーザーには 30 日に 1 回サインインするだけで十分ですが、Microsoft Entra構成によっては、より頻繁にサインインする必要がある場合があります。 PAT が機能しなくなった場合は、最初に組織にサインインし、完全な認証プロンプトを完了してみてください。 PAT が引き続き機能しない場合は、有効期限が切れているかどうかを確認します。
Azure DevOps Serverの場合、IIS 基本認証 を有効にすると PAT の使用が無効になります。 IIS 基本認証をオフのままにします。
質問 特定のユーザーに関連付けられていないアクセス トークンを作成するにはどうすればよいですか?
A。 PATは常に、それを作成したユーザーのIDに関連付けられます。 特定のユーザーに関連付けられていないトークンを使用するには、アプリケーション サービス プリンシパルまたはマネージド ID によって発行されたMicrosoft Entra トークンを使用します。 パイプラインの場合は、 サービス接続 を使用して、ユーザー固有の資格情報なしで認証します。 Azure DevOps 全体での PAT 使用削減について詳しく学びましょう。
質問 API を使用して PAT を再生成またはローテーションするにはどうすればよいですか? UI でそのオプションを見ましたが、API に同様のメソッドが表示されません。
A。 UI で使用できる 再生成 機能は、実際にはいくつかのアクションを実行します。これは API を介してレプリケートできます。
PAT を回転するには、次の手順に従います。
- GET 呼び出しで PAT メタデータを参照します。
- POST 呼び出しを使用して、古い PAT ID を持つ新しい PAT を作成します。
- DELETE 呼び出しを使用して、古い PAT を取り消します。
質問 有効期限が切れた、取り消された、または非アクティブな PAT がAzure DevOpsトークンの一覧に表示される期間はどのくらいですか?
A。 有効期限が切れている、または取り消された AT を使用したり再生成したりすることはできません。 これらの非アクティブなトークンは、有効期限または失効後数か月間表示され、表示から自動的に削除されます。
質問 Microsoft Entra アプリを使用して PAT ライフサイクル管理 API を呼び出そうとすると、"管理者の承認が必要です" というメッセージが表示されるのはなぜですか?
A。 アプリケーションが組織のリソースにアクセスするには、テナントのセキュリティ ポリシーに管理者の同意が必要です。 テナント管理者に連絡します。
AI を使用して個人用アクセス トークンを管理する
Azure DevOps MCP Server が構成されている場合は、AI アシスタントを使用して、自然言語プロンプトを使用して個人用アクセス トークンを管理および確認できます。 MCP Server は、AI アシスタントにAzure DevOps データへの安全なアクセスを提供します。これにより、Web インターフェイス内を移動することなく、トークンの一覧表示、有効期限の確認、トークンスコープの確認を行うことができます。
個人用アクセス トークンを管理するためのプロンプトの例
| Task | プロンプトの例 |
|---|---|
| 最小特権トークンを作成する | Help me create a PAT for <organization-name> that only has read access to work items and code in the <project-name> project, valid for 30 days |
| 期限切れのトークンをローテーションする | Show me all my PATs in <organization-name> expiring in the next 14 days, their scopes, and what I need to update when I regenerate them |
| トークンの管理状況を監査する | List all my active PATs in <organization-name>, when each was last used, and flag any that have broader scopes than necessary |
| 認証エラーをトラブルシューティングする | My PAT stopped working for Git push to <repo-name> in <project-name> - help me check if it expired, has the right scope, or if a policy is blocking it |
| Entra 認証に置き換えるトークンを検索する | Show me which of my PATs in <organization-name> are used for interactive scenarios that could switch to Microsoft Entra authentication instead |
| CI/CD サービス接続を設定する | What's the minimum PAT scope needed for an Azure Pipelines service connection to <organization-name> that runs builds and deploys releases? |
ヒント
Visual Studio Code、agent mode を使用している場合は、ローテーションが必要なトークンや過剰なスコープを持つトークンの識別など、AT の確認と監査に特に役立ちます。
- 以前のクエリの古いデータやキャッシュされたデータを使用しないようにするには、プロンプトに 追加します。
関連コンテンツ
- ユーザーの PAT を取り消す (管理者用)
- Microsoft Entra トークンを使用して認証する