Azure のサブスクリプション ID から Azure AD のテナント ID を取得する

Azure のサブスクリプション ID から Azure AD のテナント ID を取得する PowerShell 関数です。

function Get-AzureADTenantIDFromSubscriptionID {
  param([parameter(Mandatory=$true)][String]$subscriptionId)

  $uri = "https://management.azure.com/subscriptions/${subscriptionId}?api-version=2015-01-01"
  $headers = @{
      'Authorization' = 'Bearer xxx'
  }

  try {
    Invoke-RestMethod `
      -Uri ${uri} `
      -headers ${headers}
  } catch {
    $wwwAuthenticateHeader = $_.Exception.Response.Headers["WWW-Authenticate"]
    $tenantId = ${wwwAuthenticateHeader}.split(',')[0].split('"')[1].split('/')[-1]
  }

  ${tenantId}
}

参考

WWW-Authenticate の応答ヘッダーの値からテナント ID を取得します。 docs.microsoft.com