サービス プリンシパルを使ってエージェントを登録する

エージェント認証オプションとして [SP] を指定することで、エージェント バージョン 3.227.1 以降でサービス プリンシパルを使ってエージェントを登録できます。

エージェント プールへのアクセス権をサービス プリンシパルに付与する

サービス プリンシパルを使ってエージェントを登録する前に、サービス プリンシパルを作成し、エージェント プールにアクセスできるアクセス許可を付与する必要があります。

重要

エージェント プールへのアクセス権をサービス プリンシパルに付与するには、エージェント プール管理者、Azure DevOps 組織の所有者、または TFS または Azure DevOps Server 管理者である必要があります。

お使いのエージェントが 配置グループ エージェントの場合、配置グループ管理者、Azure DevOps 組織所有者、または TFS または Azure DevOps Server 管理者の場合があります。

  1. ブラウザーを開き、Azure Pipelines 組織の [エージェント プール] タブに移動します。

    1. 組織にサインインします (https://dev.azure.com/{yourorganization})。

    2. [Azure DevOps][組織の設定] の順に選びます。

      [組織の設定] を選びます。

    3. [エージェント プール] を選択します。

      [エージェント プール] タブを選びます。

  2. ページの右側にある必要なエージェント プールを選び、[セキュリティ] を選びます。 [追加] を選び、管理者ロールを持つサービス プリンシパルを追加します。

    エージェント プール セキュリティ タブのスクリーンショット。

  3. 使う予定のサービス プリンシパルが表示されない場合は、管理者に追加するように依頼し、エージェント プールの管理者ロールをサービス プリンシパルに付与します。 管理者は、エージェント プール管理者、Azure DevOps 組織所有者、または TFS または Azure DevOps Server 管理者の場合があります。

    配置グループ エージェントの場合、管理者は、配置グループ管理者、Azure DevOps 組織所有者、または TFS または Azure DevOps Server 管理者の場合があります。

    Azure Pipelines[配置グループ] ページの [セキュリティ] タブで、配置グループ管理者ロールにサービス プリンシパルを追加できます。

Note

"申し訳ございません。ID を追加できませんでした。別の ID を試してください。" や"セルフ ID のロールを変更できません。別の ID を使用してみてください。" のようなメッセージが表示される場合は、組織所有者や TFS または Azure DevOps Server の管理者向けの上記の手順に従った可能性があります。 何もする必要はありません。エージェント プールを管理するアクセス許可が既にあります。

プロジェクト設定エージェント プールを使ってサービス プリンシパルをエージェント プール セキュリティ グループに追加する場合は、まず、Basic アクセス レベル (推奨) 以上の組織ユーザーとしてサービス プリンシパルを追加する必要があります。

サービス プリンシパルを使ってエージェントを登録する

  1. エージェントの登録時にサービス プリンシパルを使って認証を行うには、エージェントの構成時に認証の種類を求められたときに [SP] を指定します。

  2. プロンプトが表示されたら、[クライアント (アプリ) ID][テナント ID] を入力します。

    アプリケーション ID のスクリーンショット。

  3. クライアント シークレットを指定します。 クライアント シークレットは、エージェントの登録時にのみ使われます。

    クライアント シークレットのスクリーンショット。

  4. サービス プリンシパルの管理者権限を付与したエージェント プールの名前を指定し、エージェント登録手順を続行します。

Azure DevOps でのサービス プリンシパルの使用の詳細については、「サービス プリンシパル & マネージド ID の使用」を参照してください。

Note

サービス プリンシパル (Azure パブリック クラウド内) を使用して、Azure China Cloud から Azure パブリック クラウド内の Azure DevOps 組織へのエージェントを構成している場合、次のエラーが発生する可能性があります。

ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.

このエラーを解決するには、環境変数 $AZURE_AUTHORITY_HOSThttps://login.microsoftonline.com に設定することで ログイン URL を Azure パブリック クラウド ログインに設定し、エージェント config.cmd を実行します。

詳細については、Azure in China 開発者ガイドエージェント登録オプションに関するヘルプ、および EnvironmentCredentialClass に関する記述を参照してください。