Azure Resource Manager Workload Identity サービス接続を手動で設定

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

Azure Resource Manager Workload Identity サービス接続のトラブルシューティングを行う場合、Azure DevOps で利用可能な自動ツールを使用する代わりに、接続を手動で構成することが必要になる場合があります。

手動構成を開始する前に、 自動化されたアプローチを試してください

認証には、マネージド ID またはアプリの登録を使用できます。 マネージド ID オプションは、サービス プリンシパルを作成するアクセス許可がない場合、または Azure DevOps ユーザーとは異なる Microsoft Entra テナントを使用している場合に便利です。

Azure DevOps 発行者の非推奨化

Azure DevOps発行者 (https://vstoken.dev.azure.com) を使用するワークロード ID フェデレーション サービス接続は非推奨となり、2027 年 7 月 1 日に廃止されます。 新しいワークロード ID フェデレーション サービス接続では、既定でMicrosoft Entra発行者 (https://login.microsoftonline.com/) が使用されます。 既存のサービス接続に非推奨のフラグが設定されている場合は、提供終了日より前にMicrosoft Entra発行者に変換します。

この非推奨は、シングルテナント Microsoft Entra アプリケーションまたはマネージド ID を使用Azureパブリック クラウドの対象となるサービス接続にのみ適用されます。 非パブリック クラウドを対象とするサービス接続と、マルチテナント アプリケーションを使用するサービス接続は、この非推奨の対象範囲外です。 Azure DevOpsサービス接続の一覧と構成 UI で、影響を受けるサービス接続にフラグを設定します。 Azure DevOps発行者を使用する既存のサービス接続がある場合は、代替接続を作成するのではなく、既存の接続を変換します。 詳細については、 サービス接続の変換 を参照してください。

必要なアクセス許可

ワークロード ID サービス接続を構成または変換するには、Azure DevOpsとAzureまたはMicrosoft Entraの両方でアクセス許可が必要になる場合があります。

面積 アクセス許可が必要です
Azure DevOps サービス接続に対するサービス接続管理者またはエンドポイント管理者のアクセス許可。
ユーザー指定のマネージド ID マネージド ID を更新し、フェデレーション資格情報を追加するアクセス許可。 最小ロールは 、マネージド ID フェデレーション資格情報共同作成者マネージド ID 共同作成者、またはフェデレーション資格情報の作成を許可する別のロールです。
アプリの登録 アプリの登録またはフェデレーション資格情報の管理を許可する別のMicrosoft Entra ロールへの所有者アクセス。
対象 Azure リソース サブスクリプション、リソース グループ、またはリソースに対して、その ID に必要なロール (共同作成者など) を割り当てるアクセス許可。

Azure DevOpsアクセス許可とAzureアクセス許可は別です。 ユーザーはAzure DevOpsでサービス接続を編集できますが、フェデレーション資格情報をAzureまたはMicrosoft Entraに追加するには、Azure管理者または ID 所有者のヘルプが必要な場合があります。

セットアップ プロセスの概要

次の図は、ワークロード ID サービス接続を構成する手順の概要を示しています。

ワークロード ID を構成するときの 2 つの省略可能なパスを示す図。

既存のサービス接続を変換する

既存のサービス接続で非推奨のAzure DevOps発行者が使用されている場合は、Microsoft Entra発行者を使用するように変換します。

使用可能な場合は自動変換を使用する

  1. Azure DevOpsで、projectを開き、>>に移動します。

  2. 一覧または構成 UI で非推奨としてフラグが設定されているサービス接続を選択します。

  3. [ 更新] を選択してサービス接続を更新します。

  4. Azure DevOps に変換を試行させます。

変換が成功した場合、サービス接続はMicrosoft Entra発行者を使用するため、それ以上の手動構成は必要ありません。 詳細な変換手順については、「 サービス接続 の変換」を参照してください。

自動変換が完了しない場合は手動変換を使用する

Azure DevOps自動的に ID を更新できない場合は、AzureまたはMicrosoft Entraに追加する必要があるフェデレーション資格情報の値が表示されます。 Azure DevOpsに示されている値を使用して、サービス接続に関連付けられている ID にフェデレーション資格情報を作成します。

Azure DevOpsの次の値が必要です。

  • 発行者
  • サブジェクト識別子

AzureまたはMicrosoft Entraにフェデレーション資格情報を追加した後、Azure DevOpsでサービス接続に戻り、セットアップを完了します。 変換手順の詳細については、「 サービス接続の変換」を参照してください。

Limitations

Azure DevOps発行者の非推奨エクスペリエンスは、すべてのワークロード ID シナリオに適用されるわけではありません。

  • 非パブリック クラウドを対象とするサービス接続は、この非推奨の対象範囲外です。
  • マルチテナント アプリケーションを使用するサービス接続は、この非推奨の対象範囲外です。

ワークロード ID サービス接続を設定する

Azure Pipelines のマネージド ID 認証を手動で設定するには、次の手順を実行して Azure portal でマネージド ID を作成し、Azure DevOps でサービス接続を確立し、フェデレーション資格情報を追加して、必要な権限を付与します。 次の手順に従います。

  1. Azure Portal でマネージド ID を作成します。
  2. Azure DevOps のサービス接続を作成して下書きとして保存します。
  3. Azure Portal で、マネージド ID にフェデレーション資格情報を追加します。
  4. Azure Portal で、マネージド ID に権限を付与します。
  5. Azure DevOps にサービス接続を保存します。

このプロセスには REST API を使用することもできます。

マネージド ID 認証の前提条件

Azure Portal で、マネージド ID を作成します。

  1. Azure portal にサインインします。

  2. 検索ボックスに、「マネージド ID」と入力します。

  3. [作成] を選択します

  4. ユーザー割り当てマネージド ID の作成 ペインで、次の項目の値を入力または選択します。

    • サブスクリプション: ユーザー割り当てマネージド ID を作成するサブスクリプションを選択します。
    • リソース グループ: ユーザー割り当てマネージド ID を作成するリソース グループを選択するか、 新規作成を選択して新しいリソース グループを作成します。
    • リージョン: ユーザー割り当てのマネージド ID をデプロイするリージョンを選択します (米国東部 など)。
    • 名前: ユーザー割り当てのマネージド ID の名前を入力します (UADEVOPS など)。
  5. [レビューして作成] を選択し、新しいマネージド ID を作成します。 デプロイが完了したら、[リソースに移動] を選択します。

  6. 後で使用するために、マネージド ID のサブスクリプションサブスクリプション IDクライアント ID の値をコピーします。

  7. Azure Portal でマネージド ID を使用して、[設定]>[プロパティ] の順に選択します。

  8. 後で使用する [テナント ID] の値をコピーします。

Azure DevOps でマネージド ID 認証用のサービス接続を作成する

  1. Azure DevOps でプロジェクトを開き、>[パイプライン]>[サービス接続] に移動します。

  2. [新しいサービス接続] を選択します。

  3. [Azure Resource Manager] を選択します。

  4. ID の種類として [ アプリの登録] または [マネージド ID ( 手動)] を選択し、 ワークロード ID フェデレーション資格情報を 選択します。

    マネージド ID のワークロード ID サービス接続の選択を示すスクリーンショット。

  5. 手順 1: 基本:

    手順 1: 基本、次のパラメーターを入力または選択します。

    パラメーター 説明
    サービス接続名 必須。 フェデレーション資格情報のサブジェクト識別子でこの値を使用します。
    Description オプション。 サービス接続の説明。
    環境 必須。 接続先のクラウド環境を選択します。 Azure Stack を選択した場合は、https://management.local.azurestack.external のような環境 URL を入力します。
    ディレクトリ (テナント) ID 必須。 マネージド ID のテナント ID を入力します。
  6. [次へ] を選択します。

  7. [ステップ 2: アプリの登録の詳細] での指定:

    手順 2: アプリの登録の詳細を入力するか、次のパラメーターを選択します。

    パラメーター 説明
    発行者 必須。 DevOps により発行者 URL が自動的に作成されます。
    サブジェクト識別子 必須。 DevOps によってサブジェクト識別子が自動的に作成されます。
    1. [スコープ レベル] を選択します。 [サブスクリプション][管理グループ]、または [Machine Learning ワークスペース] を選択します。 管理グループは、複数のサブスクリプションのアクセス、ポリシー、コンプライアンスを管理するのに役立つコンテナーです。 Machine Learning ワークスペースは機械学習アーティファクトを作成するための場所です。

      • [サブスクリプション] スコープに次のパラメーターを入力します。

        パラメーター 説明
        サブスクリプション ID 必須。 Azure サブスクリプション ID を入力します。
        サブスクリプション名 必須。 Azure サブスクリプション名を入力します。
      • [管理グループ] スコープに次のパラメーターを入力します。

        パラメーター 説明
        管理グループ ID 必須。 Azure 管理グループ ID を入力します。
        管理グループ名 必須。 Azure 管理グループ名を入力します。
      • [Machine Learning ワークスペース] スコープに次のパラメーターを入力します。

        パラメーター 説明
        サブスクリプション ID 必須。 Azure サブスクリプション ID を入力します。
        サブスクリプション名 必須。 Azure サブスクリプション名を入力します。
        リソース グループ 必須。 ワークスペースを含むリソース グループを選択します。
        ML ワークスペース名 必須。 既存の Azure Machine Learning ワークスペースの名前を入力します。
        ML ワークスペースの場所 必須。 既存の Azure Machine Learning ワークスペースの場所を入力します。
    2. [ 認証 ] セクションの [ アプリケーション (クライアント) ID] に、マネージド ID のクライアント ID を入力します。

    3. [ セキュリティ ] セクションで、[ すべてのパイプラインにアクセス許可を付与する] を選択した場合、すべてのパイプラインでこの接続を使用できます。 このオプションは使用しないでください。 代わりに、 サービス接続を使用するように各パイプラインを個別に承認します

  8. Azure DevOps で、[発行者][サブジェクト識別子] に対して生成された値をコピーします。

  9. [下書きとして保存] を選択し、下書きの資格情報を保存します。 Azure Portal でマネージド ID にフェデレーション資格情報が紐づけられるまで、設定を完了できません。

Azure Portal で、フェデレーション資格情報を追加する

  1. 新しいブラウザ ウィンドウで、Azure Portal でマネージド ID を使用して、[設定]>[フェデレーション資格情報] の順に選択します。

  2. [Add Credentials] (資格情報の追加) を選択します。

  3. [Other issuer] (その他の発行者) シナリオを選択します。

  4. Azure DevOps プロジェクトからコピーした 発行者サブジェクト識別子の値を、Azure portal のフェデレーション資格情報に貼り付けます。 [ 種類] で、[ 明示的なサブジェクト識別子] を選択します。

    Azure DevOps と Azure portal でのフェデレーション資格情報のスクリーンショットの比較。

  5. フェデレーション資格情報の名前を入力します。

  6. [追加] を選択します。

Azure Portal で、マネージド ID に権限を付与する

  1. Azure Portal で、権限を付与する Azure リソースに移動します (リソース グループなど)。

  2. [アクセス制御 (IAM)] を選択します。

    リソース メニューの [アクセス制御] の選択を示すスクリーンショット。

  3. [ロールの割り当ての追加] を選択します。 必要なロールをマネージド ID に割り当てます (例: 共同作成者)。

  4. [確認と割り当て] を選択します。

Azure DevOps サービス接続を保存する

  1. Azure DevOps で、ドラフト サービス接続に戻ります。

  2. [セットアップの終了] を選択します。

  3. [Verify and save] を選択します。 この手順が正常に完了すると、マネージド ID が完全に構成されます。