Microsoft Power Automate × Graph API で EMS 運用自動化のススメ(承認処理編)
【続き】
本記事は 「Microsoft Power Automate × Graph API で EMS 運用自動化のススメ(準備編)」の続きとなります。準備編を完了されていない方は以下のリンクから準備を完了してください。
【題材】
今回のテーマは「承認処理編」となります。
実際によくお伺いする要望を題材にして、どういった観点で自動化するのかを追っていきましょう。
【こんな要望、あるある】
・個人端末に対し、業務利用をIntune登録した端末に限り許可したい。
・ただし、個人端末のIntune登録は社内で承認した端末のみとする。
・対象プラットフォームは iOS/Android、MDM/MAMを適用する。
【Intuneだとこうなる】
上記の「個人端末のIntune登録は社内で承認した端末のみとする」という要望をIntuneの機能内で実装すると、以下の設計となります。
・デバイスの登録 > 登録制限 > デバイスの種類の制限
→ [iOS/Android] - [個人所有] をブロック
・デバイスの登録 > 業務用デバイスのID
→ 社内承認した端末のみ利用を許可。
※業務用IDを追加すると個人端末であろうが、[デバイスの種類] が [企業] として登録されます。これにより個人でインストールしているアプリなどもIntuneのソフトウェアインベントリへ収集されます。プライベート観点でよく検討の上、ご利用ください。
【2020/2/13更新】
最近IMEIによる登録制限が非サポートになった旨をご指摘いただいたので参考リンクを記載します。(ご指摘ありがとうございました!!)
【運用を考えてみる】
このような設計パターンを実運用に乗せるとした場合、下記のような運用フローが基本かと思います。
ここで、赤字部分が管理者がパッシブに動かなければならない処理となります。1ユーザーずつこのような対応をしていたら大変ですよね。
そこで、「処理を自動化することで、管理者の運用負荷を下げたい」というのが今回の話のメインとなります。(下図参照)
【今回のゴール】
Microsoft Power AutomateとGraph APIを用いることで、以下のような自動化を目指します。
【情報収集】
業務用IDをGraph APIから追加するために必要な情報を収集します。
※この作業を別のタスクに置き換えることで以降の手順は様々なシーンで応用可能です。
参考リンクから、以下の情報が確認できました。
・必要なアクセス許可(準備編で追加したものと同じアクセス許可)
・リクエストHeader
・Body部のJSON表現
必要な情報が集まったので、自動化していきます。
【申請フォームの作成】
ユーザー申請処理はフォーム化するため、Microsoft Formsを利用します。
1.準備編で用意したサービスアカウントで、Microsoft Forms( https://forms.office.com/)へサインインします。
2.[新しいフォーム] をクリックします。
3.下図を参考に、必須情報が含まれるようフォームを作成します。
※下記のような記載だけではユーザーは分からない可能性があるため、もう少し噛み砕いた記載だと尚Goodです。
[必須情報]
・プラットフォーム(iOS/Android)
・業務用IDの種類
・業務用IDの値
【Microsoft Power Automateの作成】
実際の処理を追加していきます。
1.Microsoft Power Automate(https://japan.flow.microsoft.com) へアクセスし、作成したサービスアカウントでログインします。
2.[+作成] から、[自動フロー] をクリックします。
3.以下の情報を入力し、[作成] をクリックします。
・フロー名:任意
・トリガー:新しい応答が送信されるとき(Microsoft Forms)
4.新しいフローが作成されるため、[フォームID] に先ほど作成したフォームを選択し、[+新しいステップ] をクリックします。
5.[Approval] で検索し、検索結果から [Start and wait for an approval] をクリックします。
6.下図を参考にして必須情報を入力の上、[+新しいステップ] をクリックします。
・Approval type:承認/拒否 - 最初に応答
・Title:任意(フォームと合わせるのが良いかも?)
・Assigned to:承認先ユーザー
7.[Forms] で検索し、検索結果から [応答の詳細を取得する] をクリックします。
8.以下の情報を入力し、[アクションの追加] をクリックします。
・フォームID:先ほど作成したフォーム
・応答ID:応答通知の一覧 応答ID
9.[HTTP] で検索し、検索結果から [HTTP (PREMIUM)] をクリックします。
10.[詳細設定オプションを表示する] をクリックします。
11.以下の情報を入力します。
・方法:POST
・URI: https://graph.microsoft.com/beta/deviceManagement/importedDeviceIdentities/importDeviceIdentityList
・認証:Active Directory OAuth
・テナントID:準備編で取得したID(準備編手順②)
・対象ユーザー: https://graph.microsoft.com
・クライアントID:準備編で取得したID(準備編手順⑤)
・資格情報の種類:シークレット
・シークレット:準備編で取得したID(準備編手順⑬)
・本文:必要な情報をFormsで動的追加するよう作成
※他の詳細設定は下図参照
12.設定の完了後、[アクションの追加] をクリックします。
13.[メール] で検索し、[メールの送信(V2)] をクリックします。
※今回はOutlookコネクタを利用していますが、Gmailなど任意のサービスと連携することが可能です。
14.[宛先] - [動的なコンテンツの追加] - [Responders’ Email] を追加し、以下の情報を追加します。
・件名:任意(下図参考)
・本文:任意(下図参考)
15.すべての設定が完了したら、[保存] をクリックします。
以上で設定は完了です。
※実用化する場合は本フローだけでは不足しています。(理由はまとめに記載します)
【動作確認】
1.先ほど作成した Forms をプレビューモードで開き、回答を送信します。
※テストなので値は適当でもいいですが、以下のフォーマットに則った値としてください。
・IEMI:14~16桁の数字(例:1234123412341234)
・Serial:最大128文字の英数字(例:1234asdf1234asdf)
2.承認が作成したフローから届くので、以下のどちらかで回答します。
・Power Automate の [承認] 画面
・メールに届く通知(今回は ExO)
3.以下で処理が正常に完了していることを確認します。
・Power Automateの実行履歴
・Intune管理画面(デバイスの登録 > 業務用デバイスの ID)
・Formsを申請したユーザーにメールが届いているか
【まとめ】
今回はIntuneでBYOD端末を管理する際に良く相談いただく要件をベースに運用を自動化してみました。いかがだったでしょうか。
EMS・Power Platform・Graph APIを連携することで、運用者の方々の負担が減れば良いなと思う今日この頃です。
また何か思いついたらこういった小ネタを記載していこうと思いますので、現在EMSに関する運用でお困りのことがあれば是非コメントいただければと思います。(SNSでの連絡・感想も受け付けております!!)
【補足】
さて、実は今回紹介した処理だけでは実用が難しいです。
もし実用を検討される場合は以下処理の追加が必要ですので念のため記載しておきます。
[必須]
・管理者の承認/拒否に応じた処理分割(実は今回のフローだと拒否した場合でも業務用デバイスIDを追加してしまいます)
・業務用デバイスIDの種類/値の整合性確認(整合性が取れていない場合はGraph APIを叩かずにユーザーへ再回答するよう連絡するフローを追加するなど)
・グループへ割り当てする処理の追加(冒頭でポリシーを適用するグループの割り当ても自動化すると記載していましたが、力尽きて記載漏れしているのでご注意ください)
[任意]
・承認者の検討(対象ユーザーの所属部門の上長へ承認依頼を送付するようフローを修正するなど、ExOの属性とかを組み合わせれば可能でしょうか)
・Forms以外のフォーマットを利用。(別にFormsの利用が必須ということはないので、各組織にあったトリガーの選定をしていただければと思います)
あと先日のEMS勉強会資料を準備編に張り付け忘れたのでここに張り付けておきます。