ごった煮

色々な事を書いてます

Azure DevOps のサービスコネクションをマニュアルで設定する

Azure DevOps でサービスコネクションを作る際、自分たちの管理下にあるサブスクリプションなら自動設定で概ねどうにかなりますが、 ゲストで参加している Entra 配下にあるサービスコネクションだと、自動設定でサブスクリプションが選択肢に出てきてくれないことが多々あってストレスだったのでメモを残します。

前提

今回の前提は、以下の通りです。

権限が無い場合は適宜調整してください。

また、この設定に利用している画面は、2024年5月23日現在のものなので、タイミングによっては UI が異なる可能性がありますので、 その点にはご留意ください。

  • 対象のサブスクリプションが入っている Entra にゲストで参加している
  • 対象の Entra 内で Enterprise Application を操作する権限がある

設定してみる

さっそく設定してみましょう。

サービスコネクションの作成は、何パターンか方法がありますが、今回は、Workload Identity Federation with OpenID Connect を採用します。

アプリケーションを作る

Entra でサクッとアプリケーションを登録しましょう

詳細は割愛

OpenID Connect に必要な情報を取得する

Entra のアプリケーションに登録する Issuer 情報などを取得します。

Workload Identity federation (manual) を選択します。

適当にサービスコネクションの名前を設定して次へ。

表示される Issuer と Subject identifier をメモしておきます。

こちらを Entra のアプリケーションに設定します。

取得した情報をアプリケーションに登録する

先ほど取得した情報を、アプリケーションへ登録します。

Entra > App registrations > アプリケーション > Certificates & secrets で登録画面へ移動します。

Federated credentials のタブ > Add credential を選択します。

Federated credential scenario で、Other issuer を選択します。

Issuer に、先ほど取得した Issuer、Subject identifier に先ほど取得した Subject identifier を入力します。

これで、DevOps の情報を入力する作業は完了です。

DevOps に登録する情報を取得する

次に、DevOps 側に設定する情報を Azure から取得します。

必要なもの

サブスクリプション情報は、サブスクリプションの Overview から取得します。

Service Principal Id は、アプリケーションの Overview に表示される Application (client) ID を取得します。

テナント Id は、Entra の Overview から取得します。

取得したら、それぞれを DevOps の画面で登録します。

入力したら Verify and save を選択して接続できるか確認します。

まとめ

これにて、Workload Identity federation でサービスコネクションの設定が出来ました。

SI などをしていると、自分たちが管理していないサブスクリプションに対してこの設定をすることは結構あるかと思います。

もうちょっと自動設定がうまく動いてくれればいいのですが、テナント跨ぎをしたりすると致し方ない部分は結構あるのでぜひご参考の程