Microsoft Forms+Power Automateでセキュリティグループ申請を自動化!アダプティブカード承認付きフローの作り方

Microsoftサービスのアクセス制御Microsoft Entra ID(以下、Entra ID)のセキュリティグループを利用している組織は多いと思います。この運用の中では、次のような課題が生じることがあります。

  • Entra IDグループへユーザー追加依頼が多数届く
  • 手作業でEntra IDを開いて追加するため、漏れやミスが起きやすい

そこで本記事では、Microsoft Forms(以下、Forms)とPower Automate、アダプティブカードを組み合わせて、「申請、承認、セキュリティグループにユーザーを追加」という一連のプロセスを半自動化する方法を紹介します。

Power Automateとは

Power Automate は、Microsoft が提供するクラウド型のワークフロー/自動化サービスです。GUIベースで「トリガー(きっかけ)」と「アクション(処理)」を組み合わせてフローを作成でき、次のような特徴があります。

  • Microsoft 365(Forms, SharePoint, Teams, Outlook, Entra ID など)との連携が容易
  • コードを書かずに多くのシナリオを実装可能
  • 承認フローやアダプティブカードなど、業務フロー向けのテンプレートが豊富

今回のシナリオでは、以下のようなフローを Power Automate で構築します。

  • トリガー:Forms への新規回答受信
  • 処理:アダプティブカードを Teams で承認者に送信し結果に応じて Entra ID セキュリティグループにユーザーを追加

前提条件

本記事の手順を実施するための前提条件は次の通りです。

  1. ライセンス / 環境
    • Microsoft 365 環境(Forms, Teams, Power Automate, Entra ID)
    • Power Automate を作成できるライセンス(Microsoft 365 E3/E5 など)
  2. 権限(いづれか1つ)
    • 対象となる Entra ID セキュリティグループの所有者
    • 当該グループに対してユーザー追加できる権限(グローバル管理者 / ユーザー管理者など)
  3. 利用サービス
    • Microsoft Forms:申請フォーム用
    • Microsoft Teams:アダプティブカードによる承認通知用
    • Power Automate:自動処理フローの作成
    • Entra IDコネクタ:セキュリティグループへのユーザー追加
  4. 事前準備
    • 申請先となるセキュリティグループ(Entra IDグループ)を作成済み
    • 承認者として指定するユーザー/チームが決まっている
    • 申請用のFormsが作成済み

構成

今回実装する構成は次の通りです。

手順

手順は以下の通りです。

Power Automateでフローを新規作成

  1. Power Automate ポータル(https://make.powerautomate.com)を開きます。
  2. 「+ 作成」> 「自動化したクラウド フロー」を選択します。
  3. フロー名を「セキュリティグループ追加申請フロー」と入力し、トリガーを「Microsoft Forms – 新しい応答が送信されたとき」 を選択します。その後、「作成」をクリックします。
  4. 「接続」を作成します。その後、トリガーの「 新しい応答が送信されたとき」を選択し、トリガーにしたい「申請フォーム」を選択します。

    ※トリガーにしたい「申請フォーム」が表示されない場合は以下サイトを参照し、「フォームID」を設定ください。
    Power AutomateでFormsを利用する際にフォームIDを手動で入力する - JBS Tech Blog
  5. 「+」を選択して Forms を検索し、「応答の詳細を取得」アクションを追加します。
  6. フォームIDを「トリガーと同じフォーム」を指定し、応答 IDは「fx」を選択後、トリガーの「応答 ID」を指定します。

アダプティブカードで承認依頼を送信

  1. 「+」を選択し、「アダプティブ」で検索します。その後、「アダプティブカードを投稿し、応答を待機する」アクションを追加します。
  2. サインインし、以下パラメータを入力します。
    投稿者 フローボット
    投稿先 承認依頼の投稿先
    メッセージ {
      "type": "AdaptiveCard",
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.5",
      "body": [
        {
          "type": "TextBlock",
          "text": "承認依頼",
          "wrap": true,
          "size": "ExtraLarge",
          "isSubtle": true
        },
        {
          "type": "TextBlock",
          "text": "セキュリティグループにユーザーを追加することを承認しますか",
          "wrap": true
        },
        {
          "type": "Input.ChoiceSet",
          "id": "action",
          "choices": [
            {
              "title": "承認する",
              "value": "approve"
            },
            {
              "title": "承認しない",
              "value": "reject"
            }
          ],
          "label": "承認可否について選択してください。",
          "value": "値を選択"
        }
      ],
      "actions": [
        {
          "type": "Action.Submit",
          "title": "送信",
          "style": "positive"
        }
      ]
    }
    Recipient 承認者のアドレス

承認結果に応じてセキュリティグループにユーザー追加

  1. 「+」を選択し、「条件」で検索します。その後、「条件」アクションを追加します。

  2. 左の値は「fx」を選択後、「アダプティブカードを投稿して応答を待機する」アクションの「body/data/action」を指定します。

  3. 中央の値は「等しい」を選択します。右の値は「承認する」を入力します。

  4. 条件のTrue内の「+」を選択し、「ユーザーをグループに追加」で検索します。その後、「ユーザーをグループに追加」アクションを追加します。

  5. ユーザーIDは「ユーザーのオブジェクトID」、グループIDは「グループのオブジェクトID」を入力します。

  6. 最後に右上の「保存」をクリックします。

テストの実施

  1. Formsを投稿します。その後、Teamsにアダプティブカードが届いていることを確認し、「承認する」で送信します。

  2. 対象セキュリティグループにユーザーが追加されていることを確認します。

  3. PowerAutomateの実行履歴が成功していることを確認します。

最後に

本記事では、Microsoft Forms・Power Automate・Teams(アダプティブカード)・Entra ID を組み合わせて、以下のようなフローを構成する方法を紹介しました。

  • 利用者は Forms からセキュリティグループ追加を申請
  • 承認者は Teams 上のアダプティブカードからワンクリック承認
  • 承認された場合のみ、自動で セキュリティグループにユーザー追加

手作業で行っていたグループ追加作業を自動化することで、以下のようなメリットがあります。

  • 申請〜承認〜実行の履歴が残る
  • 依頼漏れや操作ミスが減る
  • 承認者・管理者の負担を軽減できる

まずは小さなグループを対象に試し、徐々に対象範囲を広げていく形で導入してみてください。

執筆担当者プロフィール
和田 剣斗

和田 剣斗(日本ビジネスシステムズ株式会社)

業務では主にAzureに携わっています。趣味はサウナや資産運用です。最近はテントサウナにはまっています。

担当記事一覧