個人用アクセストークンを使用するUse personal access tokens

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017

個人用アクセストークン (PAT) は、Azure DevOps に対して認証を行うための代替パスワードとして使用されます。A personal access token (PAT) is used as an alternate password to authenticate into Azure DevOps. Azure DevOps の動作を作成、使用、変更、および失効させる方法について説明します。Learn how to create, use, modify, and revoke PATs for Azure DevOps.

Microsoft のツールで作業している場合は、Microsoft アカウント (MSA) または Azure Active Directory (Azure AD) が、受け入れられ、適切にサポートされる方法です。If you're working within Microsoft tools, then your Microsoft account (MSA) or Azure Active Directory (Azure AD) is an acceptable and well-supported approach. しかし、Microsoft アカウントまたは Azure AD アカウントをサポートしていないサードパーティ製のツールを使用している場合、またはツールにプライマリ資格情報を提供したくない場合は、そのような機能を使用して、リスクを制限することができます。But, if you're working with third-party tools that don't support Microsoft or Azure AD accounts – or you don't want to provide your primary credentials to the tool – you can make use of PATs to limit your risk.

そのような場合は、必要に応じて簡単に作成でき、そうでない場合は簡単に取り消すことができます。PATs are easy to create when you need them and easy to revoke when you don’t. Microsoft 以外のツール用に設定された状態を設定するには、 Git 資格情報マネージャー を使用するか、手動で作成します。To set up PATs for non-Microsoft tools, use Git credential managers or create them manually. 認証に関するガイダンスを確認して、適切な認証メカニズムを選択することをお勧めします。We recommend that you review our authentication guidance to help you choose the correct authentication mechanism. 堅牢性の低いソリューションを必要とする小規模なプロジェクトの場合は、簡単な方法です。For smaller projects that require a less robust solution, PATs are a simple alternative. ユーザーが資格情報マネージャーを使用していない場合は、資格情報を毎回入力する必要があります。Unless your users are using a credential manager, they have to enter their credentials each time.

PAT の作成Create a PAT

注意

新しいアカウントマネージャーページの新しいユーザーインターフェイスを有効にするには、「 機能の管理または有効化」を参照してください。To enable the new user interface for the New account manager page, see Manage or enable features.

[プレビュー] ページPreview page

  1. Azure DevOps () で組織にサインインします https://dev.azure.com/{yourorganization}Sign in to your organization in Azure DevOps (https://dev.azure.com/{yourorganization})

  2. ホームページからユーザー設定を開き、[ 個人用アクセストークン] を選択します。From your home page, open your user settings, and then select Personal access tokens.

    個人用アクセストークンを選択する

  3. 次に、[ + 新しいトークン] を選択します。And then select + New Token.

    作成する新しいトークンを選択します

  4. トークンの名前を指定し、トークンを使用する組織を選択して、トークンの有効期間を選択します。Name your token, select the organization where you want to use the token, and then choose a lifespan for your token.

    基本的なトークン情報を入力してください

  5. このトークンの スコープ を選択して、 特定のタスク を承認します。Select the scopes for this token to authorize for your specific tasks.

    たとえば、 ビルドおよびリリースエージェント が Azure DevOps Services に対する認証を行えるようにするトークンを作成するには、トークンのスコープを エージェントプール (読み取り & 管理) に制限します。For example, to create a token to enable a build and release agent to authenticate to Azure DevOps Services, limit your token's scope to Agent Pools (Read & manage). 監査ログイベントを読み取り、ストリームを管理および削除するには、[ 監査ログの読み取り] を選択し、[ 作成] を選択します。To read audit log events, and manage and delete streams, select Read Audit Log, and then select Create.

    PAT のスコープを選択します

  6. 完了したら、必ずトークンをコピーしてください。When you're done, make sure to copy the token. セキュリティのために、再度表示されることはありません。For your security, it won't be shown again. このトークンをパスワードとして使用します。Use this token as your password.

    トークンをクリップボードにコピーする

  1. Azure DevOps () で組織にサインインします https://dev.azure.com/{yourorganization}Sign in to your organization in Azure DevOps (https://dev.azure.com/{yourorganization})

  2. ホームページからプロファイルを開きます。From your home page, open your profile. セキュリティの詳細にアクセスします。Go to your security details.

    マイプロファイル Team Services

  3. [ + 新しいトークン] を選択します。Select + New Token.

    作成する新しいトークンを選択します

  4. トークンの名前を指定し、トークンを使用する組織を選択して、トークンの有効期間を選択します。Name your token, select the organization where you want to use the token, and then choose a lifespan for your token.

    基本的なトークン情報を入力してください

  5. このトークンの スコープ を選択して、 特定のタスク を承認します。Select the scopes for this token to authorize for your specific tasks.

    たとえば、 ビルドおよびリリースエージェント が Azure DevOps Services に対して認証できるようにするトークンを作成するには、トークンのスコープを エージェントプール (読み取り & 管理) に制限し、[ 作成] を選択します。For example, to create a token to enable a build and release agent to authenticate to Azure DevOps Services, limit your token's scope to Agent Pools (Read & manage), and then select Create.

    PAT のスコープを選択します

  6. 完了したら、必ずトークンをコピーしてください。When you're done, make sure to copy the token. セキュリティのために、再度表示されることはありません。For your security, it won't be shown again. このトークンをパスワードとして使用します。Use this token as your password.

    トークンをクリップボードにコピーする

  1. Web ポータル () にサインイン https://{server}:8080/tfs/ します。Sign in to your web portal (https://{server}:8080/tfs/).

  2. ホームページからプロファイルを開きます。From your home page, open your profile. セキュリティの詳細にアクセスします。Go to your security details.

    [ホーム] ページで、プロファイルを開き、[セキュリティ] にアクセスします。

  3. 個人用アクセストークンを作成します。Create a personal access token.

    個人用アクセストークンを追加する

  4. トークンの名前を指定します。Name your token. トークンの有効期間を選択します。Select a lifespan for your token.

    複数の組織がある場合は、トークンを使用する組織を選択することもできます。If you have more than one organization, you can also select the organization where you want to use the token.

    トークンの名前を指定し、有効期間を選択します。

  5. このトークンの スコープ を選択して、 特定のタスク を承認します。Select the scopes for this token to authorize for your specific tasks.

    たとえば、 ビルドとリリースエージェント の認証を有効にするトークンを作成するには、トークンのスコープを エージェントプール (読み取り、管理) に制限します。For example, to create a token to enable a build and release agent to authenticate, limit your token's scope to Agent Pools (read, manage).

  6. 完了したら、必ず トークンをコピー してください。When you're done, make sure to copy the token. セキュリティのために、再度表示されることはありません。For your security, it won't be shown again. このトークンをパスワードとして使用します。Use this token as your password. [閉じる] を選択します。Select Close.

    Git ツールまたはアプリのパスワードとしてトークンを使用する


PAT を作成したら、Azure DevOps での認証にユーザー資格情報が必要な場所であればどこでも使用できます。Once your PAT is created, you can use it anywhere your user credentials are required for authentication in Azure DevOps.

通知Notifications

ユーザーは、作成時に PAT-1 の有効期間中に2つの通知を受け取り、残りの7日が有効期限切れになります。Users receive two notifications during the lifetime of a PAT - one upon creation and the other seven days before the expiration.

PAT を作成すると、次の例のような通知が表示されます。After you create a PAT, you receive a notification similar to the following example.

PAT 作成通知

PAT の有効期限が切れる7日前に、次の例のような通知が表示されます。Seven days before your PAT expires, you receive a notification similar to the following example.

PAT 近い有効期限の通知

予期しない通知Unexpected notification

予期しない PAT 通知を受け取った場合は、管理者またはツールが代理で PAT を作成した可能性があります。If you receive an unexpected PAT notification, an administrator or tool might have created a PAT on your behalf. 次の例を参照してください。See the following examples.

  • git.exe 経由で Azure DevOps Git リポジトリに接続する場合。When you connect to an Azure DevOps Git repo through git.exe. この例では、"git: on MyMachine" のような表示名を持つトークンを作成 https://MyOrganization.visualstudio.com/ します。it creates a token with a display name like "git: https://MyOrganization.visualstudio.com/ on MyMachine."
  • ユーザーまたは管理者が Azure App Service web アプリのデプロイを設定すると、"サービスフック:: Azure App Service:: Deploy web app" のような表示名を持つトークンが作成されます。When you or an administrator sets up an Azure App Service web app deployment, it creates a token with a display name like "Service Hooks: : Azure App Service: : Deploy web app."
  • ユーザーまたは管理者が web ロードテストをパイプラインの一部として設定すると、"Web、Oadtestcdinttoken" のような表示名でトークンが作成されます。When you or an administrator sets up web load testing, as part of a pipeline, it creates a token with a display name like "WebAppLoadTestCDIntToken".
  • Microsoft Teams の統合メッセージング拡張機能を設定すると、"Microsoft Teams Integration" のような表示名でトークンが作成されます。When a Microsoft Teams Integration Messaging Extension is set up, it creates a token with a display name like "Microsoft Teams Integration".

PAT がエラーに存在すると思われる場合は、PAT を 失効させることをお勧めします。If you believe that a PAT exists in error, we suggest that you revoke the PAT. 次に、パスワードを変更します。Then, change your password. Azure AD のユーザーとして、管理者に問い合わせて、不明なソースまたは場所から組織が使用されていないかどうかを確認してください。As an Azure AD user, check with your administrator to see if your organization was used from an unknown source or location. また、「PAT を パブリック GitHub リポジトリに誤ってチェックインする場合の FAQ」も参照してください。See also the FAQ about accidentally checking in a PAT to a public GitHub repository.

PAT を使用するUse a PAT

トークンは自分の id であり、使用したときに表示されます。Your token is your identity and represents you when it's used. お客様のパスワードと同様に PAT を使用します。Treat and use a PAT like your password.

  1. Git の相互作用にはユーザー名が必要です。これは、空の文字列を除く任意のものにすることができます。Git interactions require a username, which can be anything except the empty string. PAT はパスワードとして使用されます。The PAT is used as the password. また、HTTP 基本認証で使用するには、ユーザー名と PAT を Base64 でエンコードする必要があります。Additionally, you have to Base64-encode the username and PAT to use it with HTTP basic authentication. Linux または macOS では、Bash で次のように入力できます。On Linux or macOS, in Bash, you can enter:
MY_PAT=yourPAT      # replace "yourPAT" with your actual PAT
B64_PAT=$(printf "%s"":$MY_PAT" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Windows では、PowerShell で次のような操作を行うことができます。On Windows, you can do something similar in PowerShell:

$MyPat = 'yourPAT'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))
git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

トークンのセキュリティを強化するには、資格情報マネージャーを使用します。これにより、毎回資格情報を入力する必要がなくなります。To keep your token more secure, use credential managers so you don't have to enter your credentials every time. 次の資格情報マネージャーをお勧めします。We recommend the following credential manager:

コードで PAT を使用するUse a PAT in your code

Curl を使用してビルドの一覧を取得する次のサンプルを参照してください。See the following sample that gets a list of builds using curl.

curl -u username[:{personalaccesstoken}] https://dev.azure.com/{organization}/_apis/build-release/builds

PAT を HTTP ヘッダーで提供する場合は、最初にそれを Base64 文字列に変換します (次の例では、C# を使用して Base64 に変換する方法を示しています)。If you wish to provide the PAT through an HTTP header, first convert it to a Base64 string (the following example shows how to convert to Base64 using C#). 結果の文字列は、次の形式で HTTP ヘッダーとして指定できます。The resulting string can then be provided as an HTTP header in the following format:
Authorization: Basic BASE64_USERNAME_PAT_STRING
ここでは、 Httpclient クラスを使用して C# について説明します。Here it is in C# using the HttpClient class.

public static async void GetBuilds()
{
    try
    {
        var personalaccesstoken = "PATFROMWEB";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", "", personalaccesstoken))));

            using (HttpResponseMessage response = client.GetAsync(
                        "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
            {
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

ヒント

変数を使用する場合は、次の例のように、文字列の先頭に "$" を追加します。When you're using variables, add a "$" at the beginning of the string, like in the following example.

public static async void GetBuilds()
{
    try
    {
        var personalaccesstoken = "PATFROMWEB";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", "", personalaccesstoken))));

            using (HttpResponseMessage response = client.GetAsync(
                        $"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
            {
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

コードが動作しているときは、基本認証から OAuthに切り替えることをお勧めします。When your code is working, it's a good time to switch from basic auth to OAuth.

TFS に対して IIS 基本認証を有効にした場合、使用可能なが無効になります。If you enable IIS Basic Authentication for TFS, PATs aren't valid. 詳細については、「 オンプレミスの TFS での IIS 基本認証の使用」を参照してください。For more information, see Using IIS Basic Authentication with TFS on-premises.

使用方法の例については、「 Git 資格情報マネージャー」、「 REST api」、「 Mac での NuGet」、「Reporting クライアント」、または「 Azure DevOps CLI の概要」を参照してください。For more examples of how to use PATs, see Git credential managers, REST APIs, NuGet on a Mac, [Reporting clients, or Get started with Azure DevOps CLI.

PAT を変更するModify a PAT

PAT を再生成または拡張し、その スコープを変更することができます。You can regenerate or extend a PAT, and modify its scope.

注意

新しいアカウントマネージャーページの新しいユーザーインターフェイスを有効にするには、「 機能の管理または有効化」を参照してください。To enable the new user interface for the New account manager page, see Manage or enable features.

[プレビュー] ページPreview page

  1. ホームページからユーザー設定を開き、[ プロファイル] を選択します。From your home page, open your user settings, and then select Profile.

    マイプロファイル Team Services、プレビューページ、PAT を変更します。

  2. [セキュリティ] で、[ 個人用アクセストークン] を選択します。Under Security, select Personal access tokens. 変更するトークンを選択し、[ 編集] を選択します。Select the token for which you want to modify, and then select Edit.

    [編集] を選択して PAT を変更する

  3. トークン名、適用対象の組織、トークンの有効期限、またはトークンに関連付けられているアクセスのスコープを編集し、[ 保存] を選択します。Edit the token name, organization it applies to, token expiration, or the scope of access that's associated with the token, and then select Save.

    PAT を変更して保存する

  1. ホームページからプロファイルを開きます。From your home page, open your profile. [ セキュリティ の詳細] にアクセスします。Go to Security details.

    組織のホームページにアクセスし、プロファイルを開き、[セキュリティ] にアクセスします。

  2. 変更するトークンを選択し、[ 編集] を選択します。Select the token for which you want to modify, and then select Edit.

    [編集] を選択して PAT を変更する

  3. トークン名、適用対象の組織、トークンの有効期限、またはトークンに関連付けられているアクセスのスコープを編集し、[ 保存] を選択します。Edit the token name, organization it applies to, token expiration, or the scope of access that's associated with the token, and then select Save.

    PAT を変更して保存する

PAT を取り消すRevoke a PAT

PAT は、さまざまな理由でいつでも取り消すことができます。You can revoke a PAT at any time, for various reasons.

注意

新しいアカウントマネージャーページの新しいユーザーインターフェイスを有効にするには、「 機能の管理または有効化」を参照してください。To enable the new user interface for the New account manager page, see Manage or enable features.

[プレビュー] ページPreview page

  1. ホームページからユーザー設定を開き、[ プロファイル] を選択します。From your home page, open your user settings, and then select Profile.

    マイプロファイル Team Services、プレビューページ、PAT を取り消します。

  2. [セキュリティ] で、[ 個人用アクセストークン] を選択します。Under Security, select Personal access tokens. アクセスを取り消すトークンを選択し、[ 失効] を選択します。Select the token for which you want to revoke access, and then select Revoke.

    トークンまたはすべてのトークンを取り消す

  3. 確認ダイアログで [ 取り消し ] を選択します。Select Revoke in the confirmation dialog.

    取り消しの確認

  1. ホームページからプロファイルを開きます。From your home page, open your profile. [ セキュリティ の詳細] にアクセスします。Go to Security details.

    組織のホームページにアクセスし、プロファイルを開き、[セキュリティ] にアクセスします。

  2. アクセスを取り消すトークンを選択し、[ 失効] を選択します。Select the token for which you want to revoke access, and then select Revoke.

    PAT を取り消す

  3. 確認ダイアログで [ 取り消し ] を選択します。Select Revoke in the confirmation dialog.

    取り消しの確認

FAQFAQs

Q: REST API を使用して PAT を更新する方法はありますか。Q: Is there a way to renew a PAT via REST API?

A: いいえ。 PAT を更新する REST API はありません。A: No, we don't have a REST API to renew a PAT. PAT は、ユーザーインターフェイス (UI) 内でのみ再生成できます。You can only regenerate a PAT within the user interface (UI).

Q: すべての Azure DevOps REST Api で基本認証を使用できますか。Q: Can I use basic auth with all of Azure DevOps REST APIs?

A:いいえ。A: No. 基本認証はそのほとんどで使用できますが、 組織とプロファイルOAuthのみをサポートしています。You can use basic auth with most of them, but organizations and profiles only support OAuth.

Q: 自分の PAT を GitHub のパブリックリポジトリに誤ってチェックインするとどうなりますか。Q: What happens if I accidentally check my PAT into a public repository on GitHub?

A: Azure DevOps は、GitHub のパブリックリポジトリにチェックインされた状態をスキャンします。A: Azure DevOps scans for PATs checked into public repositories on GitHub. リークしたトークンが検出されると、すぐに、トークンの所有者に詳細な電子メール通知が送信され、Azure DevOps 組織の 監査ログにイベントが記録されます。When a leaked token is discovered, we immediately send a detailed email notification to the token owner and log an event to your Azure DevOps organization's audit log. 影響を受ける PAT をローテーションまたは取り消すことにより、影響を受けるユーザーをすぐに軽減することをお勧めします。We encourage impacted users to mitigate immediately by rotating or revoking the leaked PAT.