サービス接続をAzure DevOps発行者からMicrosoft Entra発行者に変換する

Microsoft Entra発行者を使用するには、Azure DevOps発行者とのワークロード ID フェデレーションを使用するサービス接続を変換する必要があります。 Azure DevOps発行者はhttps://vstoken.dev.azure.com プレフィックスを使用し、Microsoft Entra発行者は https://login.microsoftonline.com/ プレフィックスを使用します。

この変換は、Azure Resource Managerサービス接続に限定されません。 これは、Azure Resource Manager (ARM) サービス接続、Docker サービス接続、拡張機能によって作成されたサービス接続など、Azure DevOps発行者を使用するすべてのワークロード ID フェデレーション サービス接続に適用されます。

Microsoft Entra発行者を既に使用しているサービス接続は影響を受けません。

Important

ワークロード ID フェデレーション (WIF) サービス接続のAzure DevOps発行者は、2027 年 7 月 1 日に廃止されます。

この非推奨は、シングルテナント Microsoft Entra アプリケーションまたはマネージド ID を使用Azureパブリック クラウドの対象となるサービス接続にのみ適用されます。 Azure Government、21Vianet によって運用されるAzure、Azure Stackなどのパブリック クラウド以外を対象とするサービス接続、マルチテナント アプリケーションを使用するサービス接続は、この廃止の対象範囲外です。 Azure DevOps発行者は、これらのシナリオで引き続きサポートされます。

変換が必要な理由

ワークロード ID フェデレーションを使用すると、有効期間の長いシークレットを格納せずにAzure Pipelines認証を行うことができます。 以前のワークロード ID フェデレーション サービス接続では、Azure DevOps発行者が使用されました。 Microsoft は現在、サービス全体にわたるワークロード ID フェデレーションにおいて、Microsoft Entra 発行元への標準化を進めており、新しいサービス接続では既定で Microsoft Entra 発行元が使用されます。

Azure DevOps発行者が廃止された後の認証エラーを回避するには、影響を受けるサービス接続を変換して、Microsoft Entra発行者を使用します。

影響を受けるサービス接続

サービス接続は、Azure DevOps発行者とのワークロード ID フェデレーションを使用している場合に影響を受けます。 変換要件は、サービス接続の種類ではなく、サービス接続が使用する発行者に基づいています。

影響を受けるサービス接続には、Azure Resource Managerサービス接続、Docker サービス接続、拡張機能によって作成されたサービス接続が含まれます。これらの接続で、Azure DevOps発行者とのワークロード ID フェデレーションが使用される場合です。

始める前の準備

サービス接続を変換する前に、Azure DevOpsでサービス接続を管理するアクセス許可があることを確認します。

Azure DevOpsでサービス接続を編集できるが、AzureまたはMicrosoft Entraで ID を更新するアクセス許可がない場合でも、変換を開始できます。 Azure DevOpsは、フェデレーション資格情報のセットアップを完了するためにAzure管理者または ID 所有者に渡すことができる発行者とサブジェクト識別子の値を提供します。

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

影響を受けるサービス接続を自動的に変換する

使用可能な場合は、Azure DevOpsで変換エクスペリエンスを使用します。 これにより、サービス接続は自動的に更新され、Microsoft Entra 発行元を使用するようになります。

影響を受けるサービス接続は、サービス接続の一覧の上部に表示され、アクションが必要であるという警告が表示されます。 既存のサービス接続を再作成するのではなく、変換します。 既存のサービス接続を再利用すると、それを既に参照しているパイプラインに対する不要な更新が回避されます。

サービス接続を変換するには:

  1. Azure DevOpsで、Project設定>Service 接続に移動します。

  2. Azure DevOps発行者の警告でフラグが設定されているサービス接続を見つけます。

    Azure DevOps発行者の警告でフラグが設定されたサービス接続を示すスクリーンショット。

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

    フラグ付きサービス接続の [更新] アクションを示すスクリーンショット。

  4. もう一度 [更新] を選択して選択を確定し、Entra 発行者を使用するようにサービス接続を更新します。

  5. 更新が進行中であることを示すウィンドウが表示されます。 更新には数分かかる場合があります。 更新が完了すると、変換が成功したことを確認するダイアログ ボックスが表示されます。 あなたのサービス接続は、Microsoft Entra 発行元を使用するようになりました。

    サービス接続の変換が成功したことを示すスクリーンショット。

影響を受けるサービス接続を手動で変換する

自動変換が失敗した場合は、サービス接続で使用されるアプリ登録またはマネージド ID にフェデレーション資格情報を手動で追加できます。

手動フォールバックは、次の場合に必要になる場合があります。

  • Microsoft Entraで ID を更新するアクセス許可がありません。
  • 別のチームが ID を所有しています。
  • 自動変換では、フェデレーション資格情報を作成または更新できません。

フェデレーション資格情報を作成し、サービス接続の変換を完了するには、次の手順に従います。

  1. Azure DevOpsでは、自動変換が失敗した場合、Azure DevOpsは変換を手動で完了するための手順を提供します。 これらの手順で、 発行者サブジェクトの識別子 の値を見つけてコピーします。

  2. Azure DevOpsで提供されているリンクを開いてAzureに移動し、アプリの登録またはマネージド ID のフェデレーション資格情報ブレードに移動します。

  3. [ 資格情報の追加] を選択し、[ その他] を選択します。

  4. Azure DevOpsからコピーした発行者サブジェクトの識別子の値を入力します。

    Azureにフェデレーション資格情報を追加するときの発行者とサブジェクト識別子の値の入力を示すスクリーンショット。

  5. 残りのフィールドに入力してから、フェデレーションされた資格情報を作成します。

  6. Azure DevOpsに戻り、資格情報を確認してサービス接続をアクティブ化します。

  7. フェデレーション資格情報が反映されるまでしばらく待ってから、Azure DevOpsで [再試行] を選択してサービス接続の変換を完了します。

    Azure DevOpsの手動変換手順を示すスクリーンショット。

Limitations

一部のシナリオは、この非推奨化や初回の変換エクスペリエンスには含まれません。

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

ワークロード ID フェデレーション シナリオのトラブルシューティング

サービス接続を変換または使用すると、次の問題が発生する可能性があります。

パイプラインに、非推奨の Azure DevOps 発行元に関する警告が表示される

パイプラインの警告は、パイプラインが、非推奨のAzure DevOps発行者を引き続き使用するワークロード ID フェデレーション サービス接続を使用していることを意味します。

警告を解決するには:

  1. 警告からリンクされたサービス接続を開きます。
  2. Microsoft Entra発行者を使用するようにサービス接続を変換します。
  3. 自動変換が完了しない場合は、「Resource Managerワークロード ID サービス接続の設定」の手動変換手順に従います。
  4. サービス接続が変換された後、パイプラインをもう一度実行します。

自動変換が失敗する

Azure DevOps最初にサービス接続を自動的に変換しようとします。 関連付けられているアプリの登録またはマネージド ID Azure DevOps更新できない場合、変換が失敗する可能性があります。

この問題を解決するには:

  1. Azure DevOpsにサービス接続管理者またはエンドポイント管理者のアクセス許可があることを確認します。
  2. 関連付けられているアプリの登録またはマネージド ID にフェデレーション資格情報を追加できることを、自分または ID 所有者が確認します。
  3. Azure DevOpsに表示されている発行者サブジェクト識別子、および対象ユーザーの値をコピーします。
  4. AzureまたはMicrosoft Entraの関連付けられている ID にフェデレーション資格情報を追加します。
  5. Azure DevOps サービス接続に戻り、セットアップを完了します。

サービス接続を編集することはできますが、フェデレーション資格情報を追加することはできません

Azure DevOpsサービス接続のアクセス許可では、AzureまたはMicrosoft Entraの ID を更新するアクセス許可は付与されません。 アプリの登録またはマネージド ID は、別のユーザーまたはチームが所有している可能性があります。

この問題を解決するには、Azure管理者、アプリ登録所有者、またはマネージド ID 所有者にフェデレーション資格情報の追加を依頼します。 Azure DevOps サービス接続から生成された発行者サブジェクト識別子、および対象ユーザーの値を指定します。

フェデレーション資格情報の値が一致しない

ワークロード ID サービス接続は、フェデレーション資格情報の値の一致に依存します。 AzureまたはMicrosoft Entraの発行者、サブジェクト識別子、または対象ユーザーがAzure DevOpsによって生成された値と一致しない場合、認証が失敗する可能性があります。

この問題を解決するには:

  1. Azure DevOpsでサービス接続を開きます。
  2. 生成された 発行者サブジェクト識別子、および 対象ユーザー の値をコピーします。
  3. 関連付けられているアプリの登録またはマネージド ID をAzureまたはMicrosoft Entraで開きます。
  4. フェデレーション資格情報の値を比較します。
  5. 値が一致するように、フェデレーション資格情報を更新または再作成します。

アプリの登録またはマネージド ID を所有しているユーザーがわからない

一部の組織では、Azure DevOps管理をAzureまたはMicrosoft Entra ID 管理から分離します。 現在のサービス接続管理者が ID を所有していない場合、管理者は変換を完了できない可能性があります。

この問題を解決するには:

  • アプリの登録については、Microsoft Entraでアプリ登録の所有者を確認します。
  • マネージド ID の場合は、マネージド ID またはそのリソース グループにロールが割り当てられているユーザーを確認します。
  • 所有者を特定できない場合は、テナント管理者またはサブスクリプション管理者に問い合わせてください。

サービス接続でマルチテナント アプリを使用する

マルチテナント アプリのシナリオは、この非推奨の対象範囲外です。 マルチテナント アプリケーションを使用するサービス接続は、この非推奨の一部として移行する必要がなく、Azure DevOps発行者は引き続きこれらのシナリオでサポートされます。

変換に関する問題のトラブルシューティング

変換中に、Microsoft Entra認証エラーが表示されることがあります。 通常、これらのエラーは、発行者、サブジェクト、対象ユーザー、またはフェデレーション資格情報の構成に関する問題を示しています。

次の表に、一般的な Microsoft Entra ID エラー コードと、ワークロード ID サービス接続に関連する考えられる問題を示します。

Message 考えられる問題
AADSTS700016: 識別子「****」を持つアプリケーションが見つかりませんでした サービス接続に使用されている ID は存在しないか、サービス接続から削除された可能性があるか、正しく構成されていません。 事前に作成された ID を使用してサービス接続を手動で構成する場合は、appID/clientId が正しく構成されていることを確認します。
"AADSTS7000215: Invalid client secret provided. (指定されたクライアント シークレットが無効です。)" シークレットの有効期限が切れたサービス接続を使用しています。 サービス接続を Workload Identity federationに変換し、期限切れのシークレットをフェデレーション資格情報に置き換えます。
"AADSTS700024: クライアントのアサートが有効な時間範囲内にありません" 約 1 時間が経過してからこのエラーが発生した場合は、代わりに Workload ID フェデレーションとマネージド ID によるサービス接続を使用してください。 マネージド ID トークンの有効期間は約 24 時間です。
10 分から 1 時間未満の間にエラーが発生した場合は、アクセス トークンを (暗黙的に) 要求するコマンド (Azure Storage へのアクセスなど) をスクリプトの先頭に移動します。 アクセス トークンは、後続のコマンド用にキャッシュされます。
AADSTS70021: 提示されたアサーションに一致するフェデレーション ID レコードが見つかりません。 アサーションの発行者: https://app.vstoken.visualstudio.com フェデレーション資格情報が作成されていないか、発行者の URL が正しくありません。 正しい発行者の URL の形式はhttps://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX サービス接続を編集して保存することで、発行者の URL を修正できます。 Azure DevOps によって ID が作成されなかった場合は、発行者を手動で更新する必要があります。 正しい発行者は、サービス接続の編集ダイアログ、または REST API を使用している場合は応答で確認できます。
AADSTS70021: 提示されたアサーションに一致するフェデレーション ID レコードが見つかりません。 アサーションの発行者: https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX。 アサーションのサブジェクト: sc://<org>/<project>/<service-connection>. 発行者の URL またはフェデレーション サブジェクトのいずれかが一致しません。 ID のフェデレーション サブジェクトを更新せずに、Azure DevOps 組織またはプロジェクトの名前が変更されたか、手動で作成されたサービス接続の名前が変更されました。
AADSTS700211: 提示されたアサーション発行者に一致するフェデレーション ID レコードが見つかりません フェデレーション資格情報が作成されていないか、発行者の URL が正しくありません。
AADSTS700213: 提示されたアサーション サブジェクトに一致するフェデレーション ID レコードが見つかりません フェデレーションクレデンシャルが作成されていないか、主体が正しくありません。
AADSTS700223 Microsoft Entra テナントでワークロード ID フェデレーションが制約されているか無効になっています。 このシナリオでは、代わりにフェデレーションにマネージド ID を使用できる場合があります。 詳細については、「マネージド ID を使用した Workload Identity」を参照してください。
AADSTS70025: クライアント アプリケーションにフェデレーション ID 資格情報が構成されていません フェデレーション資格情報がアプリの登録またはマネージド ID で構成されていることを確認します。
Microsoft Entra は、エラー コード AADSTS700238 を使用して Azure DevOps によって発行されたトークンを拒否しました ワークロード ID フェデレーションは、Microsoft Entra テナントで制限されています。 組織の発行者 (https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) は、使用しているワークロード ID の種類 (アプリの登録やマネージド ID) とのワークロード ID フェデレーションを使用できません。 Microsoft Entra テナント管理者または管理チームに、Azure DevOps 組織の Workload Identity フェデレーションを許可するよう依頼してください。
AADSTS70052: ID は、マネージド ID、シングル テナント アプリ、またはサービス アカウントである必要があります 現在、 signInAudience: AzureADMultipleOrgs を持つマルチテナント アプリの登録は、Microsoft Entra 発行者ではサポートされていません。 代わりに、 signInAudience: AzureADMyOrg を使用し、複数のテナントへのアクセスを分割して、テナントごとに異なるサービス接続を使用します。 1 つの要求で複数のテナントにアクセスする ARM 操作 (仮想ネットワークのクロステナント ピアリングなど) に依存している場合は、サポートに連絡して、Azure DevOps 組織に代わりに Azure DevOps 発行者を使用させることができます。
AADSTS900382: Confidential Client は、Cross Cloud でサポートされていません 一部のソブリン クラウドは、ワークロード ID フェデレーションをブロックします。

上記に示されていない AADSTS エラーはありますか? Microsoft Entra認証と承認のエラー コードを確認します。

詳細については、「 ワークロード ID サービス接続のトラブルシューティング」を参照してください。