Microsoft Graph を利用してTeamsのプライベートチャネルを作成する

オフィスワーク モダナイズ への道

 Microsoft365のPower Automateを使って、自動的にMicrosoft Teamsのチーム作成やチャネル作成が可能となります。この中でチームの作成については、パブリックチーム、プライベートチームともにPower Automateから作成可能ですし、パブリックチームを手動にてプライベートチームに変更することもできます。一方、チャネルについては、パブリックチャネルのみ作成可能で、後から手動での変更もできません。そこで、今回は、Microsoft Graph を組み合わせて、Power Automateからプライベートチャネルを作成する方法を紹介します。

Microsoft Graph とは

 Microsoftの様々なクラウドサービスは、Webの管理画面やPower Automateなどから利用できる以外にも、数多くの機能が提供されています。それらをプログラムなどから利用するためのインターフェース群(API)がMicrosoft Graph API となります。(Microsoft Graph の概要 – Microsoft Graph | Microsoft Learn
HTTPのリクエストやPowerShellから呼び出すことができるので、今回のようにPower Automateの標準では提供されていない機能もMicrosoft Graph APIみ合わせることで機能拡張が可能となります。

Azure Active Directory でアプリの登録

 Microsoft Graph を利用するにはAzure Active Directoryにアプリの登録を行い、アプリに権限を割り当てる必要があります。割り当てる権限によって、チャネルの作成や、ユーザーの追加など様々なAPIの機能が利用可能となります。Microsoft365の管理センターからAzure Active Directory管理センターを選択します。
「Azure Active Directory」-「アプリの登録」-「新規作成」を選択します。

アプリケーションの名前を設定して、以下このような内容で登録します。

登録されたアプリケーションの「概要」を選択します。ここでは「アプリケーション(クライアント)ID」と「ディレクトリ(テナント)ID」が後程必要となるのでメモしておきます。

次に証明書の発行を行います。「証明書とシークレット」を選択して、「新しいクライアントシークレット」を選択します。
説明を入力して有効期限を選択して「追加」を選択します。

「値」の部分が後程必要になるのでメモしておきます。

次に「APIアクセス許可」を選択して「アクセス許可の追加」を選択します。

一番上にある「Microsoft Graph」を選択します。

「アプリケーションの許可」を選択します。

アクセス許可を実施するリスト一覧が表示されます。この中からプライベートチャネルを作成する際に必要なアクセス権を選択してゆきます。必要なアクセス権はこちらのページ(チャネルを作成する – Microsoft Graph v1.0 | Microsoft Learn)から「アクセス許可」-「アプリケーション」の項目を参考にします。

このような要領で全ての必要な項目を選択して最後に「アクセス許可の追加」を選択します。※Channel.Create.Groupはリストに無いので選択不要

アラートがいくつか出ていますが、管理者の同意が必要ということなので、最後に「管理者の同意を与えます」を選択してアプリの登録は完了です。

Power Automateでフローの作成

 次に、Power Automateから登録したアプリ(Microsoft Graph)を呼び出すためのフローを作成してゆきます。
インスタンスフローを新規で作成します。
アプリの呼び出し方は、HTTPリクエストを送信することになります。通常HTTPリクエストの送信にはプレミアムコネクタが必要となりますが、呼び出すMicrosoft Graphの機能によってはプレミアムコネクタを必要とせずにMicrosoft365のコネクタを利用することで代用可能な場合もあります。今回は2通りの呼び出し方を紹介します。

HTTPコネクタ(プレミアム)

まずはプレミアムコネクタの「HTTP」を利用した方法です。
アクションから「HTTP」を選択します。

ここで必要となる情報として、先ほどアプリ登録の際にメモした“アプリケーション(クライアント)ID”、“ディレクトリ (テナント) ID”、“シークレットの値”と、プライベートチャネルを作成するチームの“チームID”となります。チームIDの調べ方は色々あります。今回はTeamsからチームのリンクの取得を選択してリンクから取得します。
取得したリンクを見てみると“groupid=〇〇〇”とあるので、〇〇〇の部分(青字)がチームIDとなるのでメモしておきます。

https://teams.microsoft.com/l/channel/19%3at-bAv34L1KjjZG9lIs41JzKcvGfxViQ5C-oJIhpCsUU1%40thread.tacv2/%25E4%25B8%2580%25E8%2588%25AC?groupId=c96ffd4c-a96d-4452-a7af-7bf4b3a1612e&tenantId=edaa4d8b-ddfd-427c-9ab3-e6d841348b94

フロー作成画面に戻ります。
「方法」は“POST”を選択します。
URIは https://graph.microsoft.com/v1.0/teams/「グループID」/channels のような形式でグループIDを指定します。
本文のjsonは以下となります。
ユーザーアカウントの部分には、プライベートチャネルの所有者となるアカウントを指定します。

{
 "@@odata.type": "#Microsoft.Graph.channel",
  "displayName": "<チャネル名>",
  "membershipType": "private",
"members": [
    {
      "[email protected]": "https://graph.microsoft.com/v1.0/users('<ユーザーアカウント>')",
      "roles": [
        "owner"
      ]
    }
  ]
}

続いて、「詳細オプションを表示する」を選択します。
テナント:“ディレクトリ (テナント) ID”
クライアントID::“アプリケーション (クライアント) ID”
シークレット:“シークレットの値”
の値をそれぞれ入力します。

その他は同様の内容となります。

こちらで完成です。テスト実行してみましょう。

プライベートチャネルが作成されました!

Office365コネクタ(Users/Groups)

 次にOffice365コネクタを利用した方法です。Office365コネクタの場合、「Office365 Users」、「Office365 Outlook」、「Office365 Groups」など数種類ありますが、どれにも「HTTP要求を送信する」という名前のアクションがあり入力項目も同じとなりますので、同様に利用可能です。今回は「Office365 Groups」コネクタを利用します。

Office365関連のコネクタを利用する場合は、コネクタのログイン情報を利用してリクエストを送信するので、Azure Active Directoryに登録したアプリ情報は不要となります。従ってとてもシンプルな設定項目となっています。

上記で作成したフローを実行すると、同様にプライベートチャネルが作成できました。

 以上、Power AutomateからMicrosoft Graphを利用したプライベートチャネルの作成方法となります。
コネクタによる呼び出し方の違いとしては、「HTTPコネクタ(プレミアム)」の場合は、コネクタのアカウント情報は不要でAzure Active Directoryに登録したアプリの権限によって実行されます。「Office365 HTTP要求の送信」の場合は、利用するコネクタのログインアカウントに基づいた権限で実行されるという点にあります。後者の場合、実行するユーザーがMicrosoft365のグローバル管理者であれば実行権限について問題ありませんが、一般ユーザーのアカウントの場合は呼び出すMicrosoft Graph APIによっては権限が足りずに実行できない場合もあります。そのような場合は、Azure Active Directoryに登録したアプリに適切な権限が割り当てられていれば、問題なくMicrosoft Graph APIを呼び出すことが可能となります。さらに、登録されたアプリは外部からプログラム経由で呼び出すことも可能となります。
利用するユーザーやシーンによって、登録アプリ経由か、コネクタの実行アカウントで実行などうまく使い分けるとで、効率よくMicrosoft Graph APIが利用できるようになります。

著書の紹介欄

Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!

できるPRO Windows Server 2016 Hyper-V

◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売

Windows Azure Pack プライベートクラウド構築ガイド

本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄

樋口 勝一

GMOインターネットグループ株式会社

1999年6月GMOインターネットグループ株式会社に入社。Windows Serverをプラットフォームとしたサービス開発から運用・保守まで幅広く担当。講演登壇や出版、ネット記事連載などでマイクロソフト社と強い信頼関係を構築。「マイクロソフトMVPアワード」を15度受賞し、インターネットソリューションのスペシャリストとして活躍。

採用情報

関連記事

KEYWORD

採用情報

SNS FOLLOW

GMOインターネットグループのSNSをフォローして最新情報をチェック