Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
個人用アクセス トークン (PAT) は、Azure DevOps に認証するための代替パスワードとして機能します。 この PAT は、ユーザーを識別し、アクセスのアクセシビリティとスコープを決定します。 パスワードと同じレベルの注意を払って、PAT を扱います。
Microsoft ツールを使用すると、Microsoft アカウントまたは Microsoft Entra ID が認識され、サポートされます。 Microsoft Entra アカウントをサポートしていないツールを使用している場合、またはプライマリ資格情報を共有したくない場合は、代替の認証方法として AT を使用することを検討してください。 可能な限り、AT の代わりに Microsoft Entra トークン を使用することをお勧めします。
重要
リスクの高い個人用アクセス トークンよりも安全な Microsoft Entra トークンをお勧めします。 PAT 使用量の削減に向けた取り組みの詳細をご覧ください。 認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択してください。
前提条件
カテゴリ | 要求事項 |
---|---|
Permissions | ユーザー設定へのアクセスと、パーソナルアクセストークン (PAT) が管理されている箇所の設定変更を許可するための権限。 - プロファイルに移動し、 ユーザー設定>個人アクセス トークンを選択します。 ここで PAT を表示および管理できる場合は、必要なアクセス許可があります。 - プロジェクトに移動し、 プロジェクト設定>Permissions を選択します。 一覧でユーザー アカウントを見つけて、自分に割り当てられているアクセス許可を確認します。 トークンまたはユーザー設定の管理に関連するアクセス許可を探します。 - 組織にポリシーが設定されている場合、管理者が特定のアクセス許可を付与するか、許可リストに追加することで、PAT を作成および管理するための権限が必要になることがあります。 - PAT は、トークンを作成したユーザーアカウントに関連付けられています。 PAT で実行されるタスクによっては、追加のアクセス許可が必要になる場合があります。 |
アクセス レベル | 少なくとも Basic アクセス。 |
タスク | 必要な場合にのみ AT を使用し、常に定期的に回転させます。 「AT を 使用するためのベスト プラクティス」セクションを参照してください。 |
PAT を作成する
組織にサインインします (
https://dev.azure.com/{Your_Organization}
)。ホーム ページからユーザー設定
を開き、[個人用アクセス トークン] を選択します。
[+ New Token] を選択します。
トークンに名前を付け、トークンを使用する組織を選択し、設定した日数後にトークンの有効期限が自動的に切れるよう設定します。
このトークンのスコープを選択して、特定のタスクを認証します。
たとえば、ビルドおよびリリース エージェントのトークンを作成し、Azure DevOps に認証するには、トークンのスコープを エージェント プール (読み取り & 管理) に設定します。 監査ログ イベントを読み取り、ストリームを管理または削除するには、[監査ログを読み取る]を選択し、[作成] を選択します。
管理者は、 フル スコープの PAT の作成を制限したり、パッケージ化スコープの PAT のみに制限したりする場合があります。 より多くのスコープにアクセスする必要がある場合は、管理者に連絡して許可リストにアクセスしてください。 一部のスコープ (たとえば、
vso.governance
) は、広く一般に使用されていない場合、ユーザー インターフェイス (UI) では使用できない可能性があります。完了したら、トークンをコピーし、セキュリティで保護された場所に格納します。 セキュリティ上、再度表示されることはありません。
PAT は、Azure DevOps での認証にユーザー資格情報が必要な任意の場所で使用できます。 思い出す:
- パスワードと同じ注意を払って PAT を扱い、機密性を保ちます。 PATS を共有しないでください。
- Microsoft Entra ID によってサポートされている組織の場合は、90 日以内に新しい PAT でサインインするか、非アクティブになる必要があります。 詳細については、「 条件付きアクセスのユーザー サインイン頻度」を参照してください。
通知
PAT の有効期間中、ユーザーは 2 つの通知を受け取ります。1 つは PAT が作成されたときと、有効期限が切れる 7 日前です。
PAT を作成すると、次の例のような通知を受け取ることがあります。 この通知は、PAT が正常に組織に追加されたことを確認する役割を果たします。
有効期限の通知メールは、有効期限の 3 日前に送信されます。 管理者が 組織内の PAT を作成する機能を削除した場合、そのメールは、ユーザーが AT を再生成できなくなることを示します。 プロジェクト コレクション管理者に連絡して、その組織で PAT 作成の継続的なアクセス許可を許可リストに含めます。
詳細については、「SMTP サーバーを構成し、アラートとフィードバック要求のメールをカスタマイズする」を参照してください。
予期しない通知
予期しない PAT 通知を受け取った場合は、管理者またはツールによって PAT が作成された可能性があります。 いくつかの例を次に示します。
-
git: https://dev.azure.com/{Your_Organization} on YourMachine
という名前のトークンは、git.exe経由で Azure DevOps Git リポジトリに接続するときに作成されます。 -
Service Hooks: Azure App Service: Deploy web app
という名前のトークンは、自分または管理者が Azure App Service Web アプリのデプロイを設定するときに作成されます。 -
WebAppLoadTestCDIntToken
という名前のトークンは、ユーザーまたは管理者が Web ロード テストをパイプラインの一部として設定するときに作成されます。 - Microsoft Teams Integration Messaging Extension を設定すると、
Microsoft Teams Integration
という名前のトークンが作成されます。
状況が深刻であると思われる場合:
- PAT がエラーで存在すると思われる場合は、PAT を取り消します (パスワードを変更してください)。
- Microsoft Entra ユーザーの場合は、管理者に問い合わせて、不明なソースまたは場所が組織にアクセスしたかどうかを確認します。
- 「パブリック GitHub リポジトリに誤ってチェックインした PAT」に関する FAQ を参照してください。
PAT を使用する
PAT は、パスワードと同様にデジタル ID として機能します。 1 回限り要求を実行したり、アプリケーションをローカルでプロトタイプ作成したりするための簡単な方法として、AT を使用できます。 コードで PAT を使用して REST API 要求を認証し、要求の承認ヘッダーに PAT を含めることでワークフローを自動化します。
アプリ コードが動作したら、Microsoft Entra OAuth に切り替えて、アプリのユーザーまたはサービス プリンシパルまたはマネージド ID のトークンを取得し、アプリケーションとしてトークンを取得します。 PAT を使用してアプリやスクリプトを長期にわたって実行することはお勧めしません。 PAT が使用されている任意の場所で Microsoft Entra トークンを使用できます。
アドホック要求 用に Azure CLI を使用して Microsoft Entra トークンを取得 することを検討してください。
HTTP ヘッダーを介して PAT を提供するには、まずそれを Base64
文字列に変換する必要があります。 その後、HTTP ヘッダーとして次の形式で指定できます。
Authorization: Basic BASE64_USERNAME_PAT_STRING
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 アクセス トークンが必要です。 新しいトークンを作成するときは、より強力な形式の認証をお勧めします。
- "代理ユーザー" フローを使用するユーザーまたはアプリのみが、AT を生成できます。 Microsoft Entra アクセス トークンを発行しない "アプリケーションの代理" フローまたは認証フローを使用するアプリは、この API では使用できません。 そのため、 サービス プリンシパルまたはマネージド ID は、AT を作成または管理できません。
- 以前は PAT ライフサイクル管理 API は
user_impersonation
スコープのみをサポートしましたが、vso.pats
が使用可能になり、これらの API で使用することをお勧めします。 以前にこれらの API を呼び出すためにuser_impersonation
に依存していたすべてのアプリをダウンスコープします。
書式の変更
2024 年 7 月の時点で、PAT 文字列の形式が更新 され、漏洩した PAT 検出ツール と パートナー オファリングのシークレット検出が改善されました。 この新しい PAT 形式には、これらの検出ツールの誤検知率を向上させ、検出されたリークをより迅速に軽減するために、より多くの識別可能なビットが含まれています。
- 新しいトークンの長さは 84 文字になり、52 文字のデータがランダム化され、全体的なエントロピが向上します。 トークンはブルート フォース攻撃に対してより耐性を持つようになりました。
- サービスによって発行されたトークンには、76 から 80 桁の固定
AZDO
署名が含まれます。
そのデータの前に発行された PAT を使用している場合は、PAT を再生成します。 PAT と統合し、PAT 検証が組み込まれている場合は、新規と既存の両方のトークン長に対応するように検証コードを更新します。
警告
どちらの形式も、近い将来有効なままです。 新しい形式の採用が増えると、古い 52 文字の PAT が廃止される可能性があります。
個人アクセス トークン (PATs) を使用するための最良の方法
代替案を検討する
- 有効期間の長い PAT を作成する代わりに、アドホック要求用に Azure CLI を使用して Microsoft Entra トークンを取得します。
-
Git Credential Manager や Azure Artifacts Credential Manager などの資格情報マネージャーを使用して、認証を
oauth
または Microsoft Entra トークンに設定して、資格情報の管理を簡略化します。
PAT の作成
- PAT 名に個人データを含めないでください。 実際の PAT トークンの一部またはすべてを含むように PAT 名の名前を変更しないでください。
- すべての組織で必要な場合を除き、グローバルな AT の作成は避けてください。
- フローまたはユーザー ケースごとに異なるトークンを使用します。
- 各 PAT に必要な最小スコープのみを選択します。 特定のタスクに必要な最小限の特権を付与します。 1 つの広範なスコープのトークンを使用する代わりに、異なるワークフローのスコープが制限された個別の AT を作成します。 PAT に読み取り専用アクセス許可が必要な場合は、必要になるまで書き込みアクセス許可を指定しないでください。
- PAT の有効期間を短くします。 (週単位の方が理想的で、短い方が適しています)。
PAT の管理
- PAT を共有しないでください。
- AZURE Key Vault などのセキュリティで保護されたキー管理ソリューションに AT を格納します。
- UI または PAT ライフサイクル管理 API を使用して、定期的に PAT をローテーションまたは再生成します。
- 不要になったら、AT を取り消します。
- 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 のパブリック リポジトリにチェックインされた AT をスキャンします。 漏洩したトークンが見つかると、すぐにトークン所有者に詳細なメール通知が送信され、Azure DevOps 組織の監査ログにイベントが記録されます。 影響を受けるユーザーに漏洩したトークンを取り消し、取消新しいトークンに置き換えてもらうことで、この問題を軽減することをお勧めします。
自動で漏洩した個人用アクセス トークンの取り消しポリシーを無効にしない限り、漏洩した PAT は直ちに取り消されます。 詳細については、「漏洩した PAT を自動的に取り消す」を参照してください。
質問 dotnet/nuget.exe コマンド ラインを使用して NuGet パッケージを Azure Artifacts フィードに発行するための API キーとして個人用アクセス トークンを使用できますか。
A。 No. Azure Artifacts では、API キーとして PAT を渡すことはできません。 ローカル開発環境を使用する場合は、 Azure Artifacts で認証するために Azure Artifacts 資格情報プロバイダー をインストールすることをお勧めします。 詳細については、 dotnet と NuGet.exeの例を参照してください。 Azure Pipelines を使用してパッケージを発行する場合は、 NuGet 認証 タスクを使用してフィードで認証します。 詳細については、「 Azure Pipelines を使用して NuGet パッケージを発行する (YAML/クラシック)」の例を参照してください。
質問 PAT が機能しなくなったのはなぜですか?
A。 PAT 認証では、完全な認証フローを使用して Azure DevOps に定期的にサインインする必要があります。 多くのユーザーは 30 日に 1 回サインインするだけで十分ですが、Microsoft Entra 構成によっては、より頻繁にサインインする必要がある場合があります。 PAT が機能しなくなった場合は、最初に組織にサインインして、完全な認証プロンプトを完了してみてください。 PAT が引き続き機能しない場合は、有効期限が切れているかどうかを確認します。
IIS 基本認証を有効にすると、Azure DevOps Server での PAT の使用が無効になります。 IIS 基本認証は常にオフにしておくことをお勧めします。
警告
IIS 基本認証で Git を使用すると、ユーザー認証に AT が必要になるため、Git は中断されます。 IIS 基本認証で使用するために Git 要求に追加のヘッダーを追加できますが、このアクションはお勧めしません。 Windows 認証では PAT の使用も禁止されているため、追加のヘッダーをすべての Azure DevOps Server インストールに使用する必要があります。 追加のヘッダーには、 user:PAT
の Base 64 エンコードも含める必要があります。
git -c http.extraheader='Authorization: Basic [base 64 encoding of "user:password"]' ls-remote http://tfsserver:8080/tfs/DefaultCollection/_git/projectName
質問 ユーザーに関連付けられていないアクセス トークンを作成するにはどうすればよいですか?
A。 すべての AT は、それを作成したユーザー ID に関連付けられます。 アプリケーションでは個人アクセストークン (PAT) を作成することはできません。
Azure DevOps では、特定のユーザーにリンクされていないアクセス トークンを生成できます。 アプリケーション サービス プリンシパルまたはマネージド ID によって発行された Microsoft Entra トークンを使用します。 パイプラインの場合は、 サービス接続 を使用して、ユーザー固有の資格情報に依存することなく、自動化されたタスクを安全に認証および承認します。
質問 API を使用して AT を再生成またはローテーションするにはどうすればよいですか? UI でそのオプションを見ましたが、API に同様のメソッドが表示されません。
A。 UI で使用できる 再生成 機能は、実際にはいくつかのアクションを実行します。これは API を介してレプリケートできます。
PAT を回転するには、次の手順に従います。
- GET 呼び出しで PAT メタデータを参照します。
- POST 呼び出しを使用して、古い PAT ID を持つ新しい PAT を作成します。
- DELETE 呼び出しを使用して、古い PAT を取り消します。
質問 有効期限が切れた、取り消された、または非アクティブな AT が Azure DevOps トークンの一覧に表示される期間はどのくらいですか?
A。 有効期限が切れている、または取り消された AT を使用したり再生成したりすることはできません。 これらの非アクティブなトークンは、有効期限または失効後数か月間表示され、表示から自動的に削除されます。
質問 Microsoft Entra アプリを使用して PAT ライフサイクル管理 API を呼び出そうとすると、"管理者の承認が必要です" というメッセージが表示されるのはなぜですか?
A。 アプリケーションが組織内の組織のリソースにアクセスするには、テナントのセキュリティ ポリシーに管理者の同意が必要です。 テナント管理者に連絡します。
質問 サービス プリンシパルを使用して、AT を作成または管理することはできますか?
A。 No. AT はユーザー ID に属します。 Microsoft Entra サービス プリンシパルまたはマネージド ID は 、PAT が受け入れられるほとんどの場所で使用できる有効期間の短い Microsoft Entra トークンを生成できます。 Azure DevOps 全体の PAT 使用量を減らす取り組みの詳細を確認し、PAT を Microsoft Entra トークンに置き換える方法について説明します。