クラウドエンジニアブログ

Power Automate を使って Intune の作業を自動化してみよう ~所有権変更編~

織田 悠也

こんにちは。ヘルプデスクの織田です。

Intune でデバイス管理を行っているご担当者様には、定型的に実施するルーチンワークがいくつか存在しているかと思います。そういった定型の作業を自動化できたらいいのになあと一度は考えたことがあるのではないでしょうか。
そこで、今回は、Intune の運用業務自動化をテーマに、デバイスの所有権の変更作業の自動化にチャレンジしていきたいと思います。
尚、今回のチャレンジは、Power Automate と Microsoft Graph API を活用していきます。



「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


Intune デバイスの所有権とは?

今回、自動化の対象である Intune デバイスの所有権について、説明していきたいと思います。
Intune デバイスの所有権は、「個人」と「企業」の2パターンが存在し、「企業」で登録された場合のみ、完全な電話番号やアプリのインベントリなどの追加情報を収集が可能となります。
尚、所有権が「企業」に設定されるケースは、以下の通りで、それ以外は「個人」として登録されます。

  • デバイス登録マネージャー アカウントで登録されている
  • Apple Device Enrollment Program、Apple School Manager、Apple Configurator (iOS/iPadOS のみ) で登録されている
  • IMEI 番号またはシリアル番号 (iOS/iPadOS と Android) で、登録前に会社所有として識別されている
  • 職場または学校の資格情報を使用して Azure Active Directory に参加した場合
  • デバイスのプロパティ一覧で、会社として設定されている

上記の登録パターンに該当しない「個人」の所有権で登録されたデバイスを、Microsoft Endpoint Manager 管理センターで定期的に確認して、「個人」から「企業」に手動で変更する運用を実施しているお客様もいらっしゃるかと思います。

【参考:企業 ID を Intune に追加する

今回は、「個人」として設定されている macOS デバイスを対象に、「所有権」を「企業」への変更を自動化し、定期タスクとして、毎日動作させるフローを Power Automate を利用して実現できるか、チャレンジしていきたいと思います。


「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


Graph Explorer で要求を考える (事前準備)

今回のチャレンジに取り組む前に、前提知識として Microsoft Graph API がどういったものかを簡単にご紹介します。

Microsoft Graph API とは?

Microsoft 365、Windows 10、および Enterprise Mobility + Security のデータにアクセスできる API で、これを利用することで Azure Active Directory、Office 365、Intune の情報取得や設定の更新を行うことができます。

【参考:Microsoft Graph の概要 - Microsoft Graph

上記の通り、Microsoft Graph API を利用すれば Intune からの情報を取得し、更新が行えます。今回は、Power Automate HTTP コネクタで Microsoft Graph API を実行することで、対象デバイスの特定、デバイスの所有権情報の変更を実現したいと考えています。

Power Automate フローを作成する前に、まずは、どういった要求を実行すべきか、権限まわりの設定が問題ないかを考える必要があります。Intune 関連の Microsoft Graph API のメソッドは、以下のサイトを参考にどういう要求をすべきかを考えていきます。

【参考:Intune Graph API の使用 - Microsoft Graph v1.0

検討した要求が正しく動作するかの確認は、Graph Explorerを利用することをお勧めします。実際に確認を行った内容および手順をご紹介します。

<Graph Explorer 使った事前確認手順>
Graph Explorer (https://developer.microsoft.com/ja-jp/graph/graph-explorer) に接続し、[Microsoft の職場または学校のアカウントで] をクリックして、管理者アカウントでサインインします。

すべての Intune 登録デバイスの情報を取得するメソッドを投げてみます。
方法 : GET
URI : https://graph.microsoft.com/v1.0/devices

403エラーになっていたため、[Modify Permissions] を開いてみると、3つの権限のアクセス許可がないことでエラーになっていることがわかります。

[Consent] をクリックし、管理者アカウントで認証し、アクセス許可を行います。
再度、デバイス情報を取得するメソッドを投げてみます。

問題なく、Intune に登録されたデバイスの情報が取得できていることが確認できました。
また、今回の要件である所有権が個人の macOS デバイスのみ取得する場合は、以下のようにフィルターを定義することで、取得できました。

https://graph.microsoft.com/v1.0//deviceManagement/managedDevices?$filter=managedDeviceOwnerType eq 'personal' and operatingSystem eq 'macOS '

Graph Explorer でテストを行うことで、どういった権限、どういった要求を行うかの整理がつきました。早速、Power Automate でのフロー作成に移りたいところですが、もうひとつ準備が必要です。次は、「3. Microsoft Graph 実行用アプリ登録とアクセス許可」の事前準備を進めていきたいと思います。


「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


Microsoft Graph 実行に向けたアプリ登録とアクセス許可 (事前準備)

Power Automate で Microsoft Graph API を実行させるために、Azure AD 側でアプリ登録を行い、アクセス許可、シークレットの発行を行う必要があります。ここでは、アプリ登録からシークレット発行までの手順をご紹介します。

<手順>
1. Azure AD 管理センター (https://aad.portal.azure.com/) にグローバル管理者でサインインし、[Azure Active Directory]–[アプリの登録]–[新規登録] をクリックします。

2. アプリケーション情報を以下のように設定し、[登録] をクリックします。
名前 : ※ 任意の名称 (例 : MicrosoftGraph1)
サポートされているアカウントの種類 : この組織のディレクトリ内のアカウントのみ
リダイレクト URI : Web、 ※ 任意の URI (例 : https://localhost/microsoftgraph1

3. アプリケーションのプロパティを開き、[アプリケーション (クライアント) ID] の値を控えておきます。

4. [管理]-[API のアクセス許可] より、[アクセス許可の追加] をクリックします。

5. [Microsoft Graph] を選択し、[アプリケーションの許可] をクリックします。

6. 以下、3つにチェックを入れ、[アクセス許可の追加] をクリックします。

  • DeviceManagementManagedDevices.PrivilegedOperations.All
  • DeviceManagementManagedDevices.Read.All
  • DeviceManagementManagedDevices.ReadWrite.All
  • ※ 「2. Graph Explorer で要求を考える (事前準備)」で確認した必要な権限が上記に該当いたします。

7. [<テナント名> に管理者の同意を与えます] をクリックし、[はい] をクリックします。

8. [管理]-[証明書とシークレット] より、[新しいクライアント シークレット] をクリックします。

9.「説明」と「有効期限」を設定し、[追加] をクリックします。

10. 表示されたクライアント シークレットの値を控えておきます。

以上で事前準備が完了です。次は、Power Automate でフローを作成していきたいと思います。


「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


Power Automate でフローを作成

事前準備が完了しましたので、Power Automate を利用して、フローを作成していきたいと思います。その前に注意事項があります。
Microsoft Graph API は HTTP コネクタを利用しますが、HTTP コネクタは、Power Automate の有償ライセンスが必要なプレミアムコネクタに分類され、Microsoft 365 に含まれている Power Automate では使用できません。今回の検証では、Microsoft 365 E5 しか保有していなかったため、90日の試用版で実施いたしました。

【参考:Power Apps と Power Automate のライセンスに関するよくあるご質問 - Power Platform

<フロー作成手順>
1. Power Automate(https://japan.flow.microsoft.com/)に接続し、[作成]-[スケジュール済みクラウド フロー] をクリックします。

2. 「フロー名」と「このフローを実行する」内のスケジュールを設定し、[作成] をクリックします。

3. アクションの追加をクリックし、[HTTP] コネクタを選択します。

4. HTTP コネクタでMicrosoft Graph を利用して所有権が [個人] になった Intune 登録済みの macOS 端末情報のデバイス ID を取得するフローを以下のように設定します。

(フロー1)

方法 : GET
URI : https://graph.microsoft.com/v1.0//deviceManagement/managedDevices?
ヘッダー : なし
クエリ :
{
"$filter" : "managedDeviceOwnerType eq 'personal' and operatingSystem eq 'macOS '",
"$select" : "id"
}

本文 : なし
クッキー : なし
認証 : Active Directory OAuth
機関 : 既定: https://login.windows.net/
テナント : <テナント名>
対象ユーザー : https://graph.microsoft.com
クライアントID : 「3. Microsoft Graph 実行用アプリ登録とアクセス許可」で作成したアプリのクライアントID
資格情報の種類 : シークレット
シークレット : 「3. Microsoft Graph 実行用アプリ登録とアクセス許可」で作成したアプリのシークレットの値

5. アクションの追加をクリックし、[JSONの解析] を選択します。

  • ※ フロー1で取得した情報から、デバイス ID を取得できるようにします。

6. [コンテンツ] は、4 で取得した情報 (本文) を指定し、[スキーマ] は、以下のように JSON 形式で設定を行います。

(フロー2)
{
    "type": "object",
    "properties": {
        "@@odata.context": {
            "type": "string"
        },
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ]
            }
        }
    }
}

★ 手動で JSON (スキーマ) を設定する以外に、[サンプルから生成] をクリックし、(フロー1) の出力結果をインポートする方法もあります。

  • ※ こちらの方法をお勧めします。

7. アクションの追加をクリックし、[HTTP] コネクタを選択します。

8. フロー1 で取得した所有権が [個人] になった Intune 登録済み macOS デバイスを対象に、 「個人」から「企業」の所有権に変更するフローを以下の通り設定します。

(フロー3)

方法 : PATCH
URI :
https://graph.microsoft.com/v1.0//deviceManagement/managedDevices('@{items('Apply_to_each')?['id']}')

ヘッダー : なし
クエリ : なし
本文 :
{
"managedDeviceOwnerType": "company"
}


クッキー : なし
認証 : Active Directory OAuth
機関 : 既定: https://login.windows.net/
テナント : <テナント名>
対象ユーザー : https://graph.microsoft.com
クライアントID : 「3. Microsoft Graph 実行用アプリ登録とアクセス許可」で作成したアプリのクライアントID
資格情報種類 : シークレット
シークレット:「3. Microsoft Graph 実行用アプリ登録とアクセス許可」で作成したアプリのシークレットの値

9. [保存] を選択し、フロー作成終了です。

これでフローの作成完了です。

一つのフローを作成したら、[テスト] を実行し、問題なく成功するか、どういった情報が出力されるかを確認しながら、作成を行うことをお勧めします。
私も失敗を繰り返しながら、今回のフロー作成までこぎ着けた次第です。

さあ、フローが正常に動作するかを確認していきましょう。


「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


フローをまわしてみる

フローが実行される前に、Microsoft Endpoint Manager 管理センターより、デバイス登録状況をみてみましょう。

ターゲットとなる macOS が1台存在することが確認できます。
指定したフロー実行時間になるのを待ちます。

  • ※ 待てない場合は、Power Automate 側でテストフローを実行します。

フロー実行時間を過ぎてから、再度、Microsoft Endpoint Manager 管理センターを確認してみます。

[企業] に変わっています。成功です!
監査ログでも、Microsoft Graph による処理が行われたことが確認できます。

Power Automate 側でも、フローが成功していることが確認できます。

今回作成したフローにより、今後は、毎日1回の定期タスクとして、「個人」として登録された macOS 所有権の変更が自動で行われることになります。


「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら


まとめ

今回は、Intune のデバイスの所有権の変更作業を Power Automate と Microsoft Graph APIを利用して自動化する方法をご紹介いたしましたが、いかがでしたでしょうか。
Microsoft Graph API および Power Automate を活用することで、定型作業の自動化や、時間指定で行う作業を予めスケジューリングすることが可能となります。運用の効率化を検討しているご担当者様は是非、色々と試してみることをお勧めします。

弊社では、Microsoft 365 導入及び導入後の運用支援サービスも提供しております。もし、Intune によるデバイス運用に課題を抱えているご担当者様がいましたら、お気軽にご相談いただければと思います。

次回も Microsoft 365 のソリューションを利用した運用自動化やセキュリティ対策をご紹介していきたいと思います。最後まで読んでいただきありがとうございました!

関連ページ

「Microsoft 365 導入・運用支援サービス」はこちら

「Office 365 ヘルプデスク」はこちら

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録