M365ライセンスの有効化を Forms + PowerAutomate でセルフサービス化してみた

# はじめに
M365環境導入後、ライセンスの設定はどうされていますか？
以下のように全部オンでしょうか。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/1eec77d7-fc0e-cd1f-f062-cea2b29962fb.png)
もしくは必要なものだけでしょうか。
(以下の例はAADのみオンにしてみたもの)
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/78440931-0168-f982-452c-58d937161705.png)
全部オンにしてしまうとライセンスにバンドルされているアプリはすべて利用できますが、
ガバナンスを効かせにくくなります。
とはいえ、ガチガチにしばればせっかくの便利なアプリたちを利用できません。
(以下の画像はAADのみオンにした場合のM365ホーム。
Offce製品もなく PowerApps 等もなく検索バーもありません…)
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/fc2a023c-ab06-5b84-8622-01f0b30258f4.png)

しかし、全appsにたいしてガバナンスをきっちり作成するのは大変です。
では次善策として、申請フォームを公開して、希望者には有効化する方法ではどうでしょうか。
ということで作ってみます。

# Forms + PowerAutomate で申請フォーム作成
今回は Forms + PowerAutomate で申請フォームを作成し、セルフサービス化してみます。
ライセンスはグループにもふることができます。
まずはグループを作成し、そのグループにライセンスを設定することで、
そのグループ内のユーザーにライセンスが有効化されるようにしてみます。

## グループ作成
M365グループを作成し、例として PowerApps を有効にし、
ここに試しにユーザーをいれてみますと、そのユーザーは
PowerAppsを使えるようになります。
(PowerAppsGroupというのが作成しておいたM365グループです。)
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/7dd2dfc6-1ca5-422d-411f-81d9dc3fcdef.png)
そうするとライセンスが継承されるようになります。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/9e57cb0a-3804-3f19-36ca-21b031a393a1.png)
以下のようにPowerAppsが見えるようになりました。
※Formsは次の作業のために直接ライセンスオンにしているため見えています。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/8f3d9e4e-dbcf-15d3-659e-10891a850047.png)

## フォーム作成
では次にフォームを作りましょう。
フォームは Forms から簡単に作れます。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/cdf7bf96-eb0a-a5fa-06e4-b9152c8de238.png)

## PowerAutomate作成
ここまで作成できたら、最後は PowerAutomateです。
フローは以下のように作成しました。
それぞれの処理を説明していきます。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/cb84a6ab-7ab2-b381-3d3b-ca094c013255.png)

①まず「新しい応答が送信されるとき」に先ほど作成したフォームを指定します。
②次に「応答の詳細を取得する」にて 応答ID を取得します。
③次に「ユーザープロフィールの取得(V2)」にて、UPN は Forms から取得した Responders' Email を指定します。
④次に「開始して承認を待機」で 承認申請を飛ばすユーザー を指定します。
⑤最後に「ユーザーをグループに追加」で "グループ作成" で作成したグループを指定します。
　この時、AzureADの設定によってはPowerAutomateの実行アカウントが先ほどのグループの所有者であるか、
　もしくはユーザー管理者等である必要がある可能性があります。ご注意ください。

# 動作チェック
それでは動作チェックを行います。
PowerAppsGroupには最初誰もメンバーがいない状況です。
![nomember.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/2906d910-9bdd-eda5-7bdd-6ded10fab086.png)
そこで、作成したフォームより申請してみます。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/b55ceecb-4c14-b563-2152-478a281970dd.png)
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/c13cb846-86fb-99dd-9668-e032756dfec4.png)
そうすると管理者に申請が飛ぶので承認します。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/2195a268-4e66-3930-2870-5d8e3f39630f.png)
承認することでフローが成功しました。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/cadf58a4-0a69-8b20-262b-0f060471b9bf.png)
そうすると、無事PowerAppsGroupにメンバーとして追加されました。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742796/98102213-6e14-b08a-7d2a-9875078eec90.png)
これで PowerApps を利用できるようになります！

# まとめ
以上の様な簡単な流れで Forms + PowerAutomate による申請フォームを作成できました。
メールで受け付けて個別に対応、よりはだいぶ作業を効率化できるかと思います。
それではまた！ Happy PowerPlatform Life！