Azure Pipelines で、Microsoft Graph PowerShellを使用して、Entra IDに対する操作を行う。
前提
事前に準備すること
- Azure DevOps組織またはプロジェクトに、対象のAzureサブスクリプションとのサービス接続が設定済みであること
- 上記サービス接続に紐づけられたマネージドIDまたはサービスプリンシパルに対して、必要なEntra IDロールが割り当てられていること
動作確認に使用した環境
以下、いずれも2024年12月時点のもの。
- エージェント: MSホステッドエージェント
- エージェントのVMイメージ: windows-latest
- サービス接続の種類: サービスプリンシパル(手動)
パイプラインおよびスクリプト
パイプライン
AzurePowerShell@5を使用し、前提で準備したサービス接続にて、対象のAzureサブスクリプションに接続する。
Pipeline
〜前略〜
- task: AzurePowerShell@5
inputs:
azureSubscription: '<前提で準備したサービス接続>'
ScriptType: 'FilePath'
ScriptPath: 'Do-SomethingToEntra.ps1'
azurePowerShellVersion: 'LatestVersion'
pwsh: true
〜後略〜
PoweraShellスクリプト
サービス接続に紐づけられたマネージドIDまたはサービスプリンシパルでログイン済み状態となっているため、Microsoft Graph APIのアクセストークンを取得し、Microsoft Graphに接続する。
Do-SomethingToEntra.ps1
# Get Microsoft Graph access token and connect to Microsoft Graph API.
$graphToken = (Get-AccessToken -AsSecureString -ResourceTypeName MSGraph).Token
Connect-MgGraph -AccessToken $graphToken
# Do something to Entra ID.
Get-MgApplication | Where-Object DisplayName -eq "MyMgApplicationName"