SharePoint

デバイスコードフローから マネージドID へ!Azure Automation で Graph API を動かすための環境構築

  • 2026.04.02

前回の記事では Azure Cloud Shell を利用し、Microsoft Graph API を利用し、SharePoint サイトの利用状況レポートを取得する方法を解説しました。

認証にはデバイスコードフローを利用することで、アプリ登録や証明書を用意することなく、ブラウザーだけで手軽に実行できる構成としています。この方法は 「すぐに試したい」「一度だけ実行したい」 といった用途には適していますが、対話型の認証を前提としているため、スクリプトの定期実行には適していません。

自動化における課題

スクリプトを定期実行する場合、一般的には以下の認証方式が用いられます。

  • クライアントシークレット
  • 証明書認証

しかし、これらの方式には次のような運用課題があります。

  • シークレットや証明書の定期更新
  • 認証情報の安全な保管
  • 管理に伴う運用コストの増加

解決策:マネージド ID

これらの課題は、Managed Identity を利用することで解決できます。
マネージド ID を使用すると、Azure リソース自体に ID が付与され、認証情報をスクリプト内で管理することなく安全に API を実行できます。

そこで今回は、前回の記事で行った手動操作を、マネージド ID 認証を用いた Azure Automation で定期実行するための 「環境準備」 について記載します。
なお、Azure Automation をはじめて利用する場合、色々な設定や注意ポイントが環境構築の作業に集中しているため、本記事の設定編と次回の実行編の 2 回に分けて解説いたします。

今回利用する Azure サービスの基礎知識

1. Azure Automation とは

Azure Automation とはMicrosoft Azure が提供する、クラウドやオンプレミス環境の運用管理タスクを自動化するサービスです。PowerShell Python スクリプト (Runbook と呼びます) を定期実行でき、セキュアかつ効率的な運用自動化を実現します。

利用するには Azure サブスクリプションが必要であり、料金は従量課金制です (一定時間は無料で利用可能)。詳細は Microsoft Learn の概要ページをご覧ください。
https://learn.microsoft.com/ja-jp/azure/automation/overview

料金の詳細については以下のページをご覧ください。
https://azure.microsoft.com/ja-jp/pricing/details/automation/

2. マネージド ID とは

Azure が裏側で自動的にパスワードを作成・管理してくれる、Azure リソース専用の 「身分証」 のような仕組みです。証明書などを用意しなくても、「Azure 上の安全なリソースであること」 を ID だけで証明でき、他の Azure サービスや Microsoft Graph などの API へ安全に接続できます。

Automation アカウントにこのマネージド ID を割り当てるだけで、認証情報の管理や更新作業をすべて Azure に任せられます。資格情報の漏洩リスクや運用負担を軽減することができます。

Azure Automation 実行環境の準備

1. Automation アカウントの作成

  1. Azure ポータルで 「Automation」 を検索し、[Automation アカウント] をクリックします。
  2. [作成] をクリックします。
  3.  [基本] タブでは、リソース グループを作成し Automation アカウント名、地域を設定します。[次へ] をクリックします。
  4.  [詳細設定] タブでは、マネージド ID の設定にて 「システム割り当て」 が選択されていることを確認し、[確認と作成] をクリックします。「システム割り当て」 を選択することで、この Automation 専用のマネージド ID が自動生成されます。
  5.  [作成] をクリックします。

2. マネージド ID へのアクセス許可の付与

作成されたマネージド ID が Microsoft 365 に接続して操作を行うには、Microsoft Graph API への 「アクセス許可」 を付与する必要があります 。
システム割り当てのマネージド ID に対する Graph API へのアクセス許可の付与は、Azure ポータルの管理画面では行えません。ここではお手軽な PowerShell (Cloud Shell) を利用して、SharePoint サイトの利用状況レポートの取得に必要な権限を付与します。

  1. Automation アカウント画面の [アカウント設定] – [ID] をクリックします。表示されたオブジェクト (プリンシパル) ID をコピーし、メモ帳などに張り付けておきます。
  2. アクセス許可の付与を行うコマンドの準備を行います。「Sites.Read.All」、「Reports.Read.All」、「Files.ReadWrite.All」 の3つを付与します。
    以下のスクリプトをコピーし、メモ帳に貼り付けして<オブジェクト ID>を書き換えます。
    # =========================================================
    # 📝 設定セクション:<オブジェクト ID> を書き換えてください
    # =========================================================
    $ManagedIdentityObjectId = "<オブジェクトID>" 
    $RoleNames = @("Reports.Read.All", "Sites.Read.All", "Files.ReadWrite.All")
    $GraphAppId = "00000003-0000-0000-c000-000000000000"
    # =========================================================
    
    # 1. 必要なスコープを指定して Microsoft Graph に接続
    Write-Host "--- Microsoft Graphに接続しています ---" -ForegroundColor Cyan
    $AuthScopes = @("AppRoleAssignment.ReadWrite.All", "Application.Read.All")
    Connect-MgGraph -Scopes $AuthScopes -NoWelcome
    
    # 2. Graph APIのサービスプリンシパル情報を取得
    $GraphSp = Get-MgServicePrincipal -Filter "AppId eq '$GraphAppId'"
    
    # 3. 権限付与ループ
    $ErrorActionPreference = "SilentlyContinue" # 既に付与済みの赤エラーを非表示にする
    
    foreach ($RoleName in $RoleNames) {
        $AppRole = $GraphSp.AppRoles | Where-Object { 
            $_.Value -eq $RoleName -and $_.AllowedMemberTypes -contains "Application" 
        }
        
        if ($AppRole) {
            $Params = @{ PrincipalId = $ManagedIdentityObjectId; ResourceId = $GraphSp.Id; AppRoleId = $AppRole.Id }
            New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $ManagedIdentityObjectId @Params
            Write-Host "✅ $RoleName の付与処理を実行しました。(既に付与済みの場合はスキップされます)" -ForegroundColor Green
        }
    }
    
    $ErrorActionPreference = "Stop" # エラー設定を元に戻す
    Write-Host "✅ すべての事前準備(権限付与)が完了しました!" -ForegroundColor Yellow
    
  3. Cloud Shell 起動ボタンをクリックし、メモ帳のスクリプトを貼り付けます。

  4. Microsoft Entra 管理センターの [エンタープライズ アプリ] をクリックし、「アプリケーションの種類」 フィルターを 「マネージド ID」 のみに変更します。
  5. [アクセス許可] をクリックし、付与した権限が表示されていることを確認します。権限が付与されたか確認します。

3. ランタイム環境の作成と必要モジュールのインストール

Azure Automation で PowerShell 7.4 を利用して Microsoft Graph API を実行するために、モジュールをインストールします。

  1. Azure Automation 概要画面の [ランタイム環境エクスペリエンスを試す] をクリックします。ランタイム環境に切り替えることで、Azure Automate で PowerShell 7.4 が利用できるようになります。
    ※ PowerShell 7.4 は LTS (Long Term Servicing) 版として長期サポートと高い安定性が保証されており、業務利用に適した安心のバージョンです。
  2. [プロセス オートメーション] – [ランタイム環境] – [作成] をクリックします。
  3. 名前と言語を設定します。言語は 「PowerShell」、ランタイム バージョンは 「7.4」 を選択します。[次へ] をクリックします。
  4. [ギャラリーから追加] をクリックします。
  5. 今回の操作に必要なモジュールは 「Microsoft.Graph.Authentication」、「Microsoft.Graph.Sites」 です。「Microsoft.Graph」 で検索し、一覧から 「Microsoft.Graph.Authentication」 をクリックします。
  6.  [選択] をクリックします。
  7. 同様の手順で 「Microsoft.Graph.Sites」 を追加し、[次へ] をクリックします。
  8. [作成] をクリックします。
  9. 追加したランタイムが表示されていることを確認します。

    まとめ

    今回の設定編では、Azure Automation で Microsoft Graph を動かすための基盤となる設定を解説しました。残りの作業は、Automation にスクリプトを実行するための Runbook を作成し、スクリプトを実行するだけです。
    次回の実行編では、実際に PowerShell スクリプトを登録し、SharePoint レポートを定期実行で取得する手順を解説いたします。

    👉 次回:マネージドID で完全自動化!Azure Automation × Graph API で SharePoint レポートを定期取得する

    Microsoft 365 運用 関連コース

    • CI505-H Microsoft 365 運用管理

      Microsoft 365 の運用管理に必要な知識と設定すべき項目を理解いただけます。アカウントやデバイス管理に不可欠な Entra ID の基礎知識をはじめ、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business など各サービスにおいて実施すべき設定と推奨設定、理解しておきたい仕組みなど、運用管理に必要な内容を基本から実務レベルまで解説。

    • CI509-H Microsoft 365 デバイス運用管理

      Microsoft Defender、Microsoft Purview、Microsoft Entra ID を活用したセキュリティおよびコンプライアンス対策に加え、注目を集める Microsoft 365 Copilot の運用管理など、Microsoft 365 全体の情報保護に関する機能・利用シーン・運用のポイントを具体的に解説。

    • CI506-H Microsoft 365 運用管理 – 情報保護編

      Microsoft Defender、Microsoft Purview、Microsoft Entra ID を活用したセキュリティおよびコンプライアンス対策に加え、注目を集める Microsoft 365 Copilot の運用管理など、Microsoft 365 全体の情報保護に関する機能・利用シーン・運用のポイントを具体的に解説。

    • CI508-H Microsoft 365 PowerShell による管理効率化

      Microsoft 365 に対する運用管理で PowerShell を利用するための基本や Exchange Online、SharePoint Online、Microsoft Teams を設定するための便利なコマンドライン、設定を自動化するためのスクリプトの作成方法など、PowerShell による Microsoft 365 管理の基本から必須スキルまでを、運用管理に活用できるサンプルを用いて解説。

    お問い合わせ

    イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
    お気軽にご連絡ください。

    担当者に相談する