〈 HULFT Square 技術コラム【つないでみた編】 〉

HULFT Square 技術コラム【つないでみた編】一覧

技術コラム一覧

Vol.08
Microsoft Teamsにつないでみた【認証編】

はじめに

昨今、ますます在宅勤務やリモートワークの需要は高まっております。この際重要となってくるのは、社員・チームメンバー同士のコミュニケーションツールです。サイボウズ チームワーク総研によると、在宅勤務で「業務に関わるコミュニケーション」をしにくいと答えた人は全体の56.2%、「業務に直接関わらないコミュニケーション」をしにくいと答えた人は全体の53.7%を占めています。(参照URL : https://teamwork.cybozu.co.jp/blog/telework-communication.html, (2022-02-17))

こうした問題についてより手軽で安全なコミュニケーションツールが求められていると思われます。
コミュニケーションツールは様々なツールがありますが、今回はMicrosoft Teamsへの連携を行ってみたいと思います。

Microsoft Teamsとは

Microsoft Teams(以下、Teams)は、Microsoft社によって開発された、コラボレーションプラットフォームです。
Teamsを利用することで、同じ組織上のメンバーとのチャット・通話を行うことが可能となります。

検証内容

今回はHULFT Squareを活用して、以下の処理が実行できることを確認してきます。

① アクセストークンの取得

今回行うTeamsとの連携では、認証のためアクセストークンを利用します。このアクセストークンは、60~90分で更新されてしまうため、処理を実行するたびにサーバから取得する必要があります。このため、アクセストークンを取得するスクリプトを作成します。

事前準備

◎Teams、およびAzureの設定

HULFT SquareでTeamsとデータ連携をREST APIで行う場合、Microsoft Graphのアクセストークンの取得が必要となります。
Microsoft Graphの認証の詳細な仕組みは下記を参照してください。
https://learn.microsoft.com/ja-jp/graph/auth/auth-concepts

前提としましてteamsのログインユーザおよびを作成していることが必要となります。
ログインユーザは以下のページから作成して下さい。
https://www.microsoft.com/ja-jp/microsoft-teams/group-chat-software

また、作成したアカウントのAzure ActiveDirectoryにて、テナント及びアプリケーションを作成する必要もあります。作成したアカウントでMicrosoft Azureにサインインしてください。
https://azure.microsoft.com/ja-jp/get-started/azure-portal/

ログイン後、Azure Active Directoryを選択して、テナントが作成されているか確認してください。作成されていない場合、「テナントの作成」よりテナントを作成して、テナントIDを控えて下さい。

テナントの作成後、アプリを登録します。左側のメニューバーにあります「アプリの登録」を押して、アプリの新規登録をしてください。

なお、この際リダイレクトURLを設定する必要があるため、任意のURLを設定してください。作成後、クライアントIDが表示されますので、この値を控えてください。

新規登録後、作成したアプリへのアクセス許可を設定します。作成したアプリの左側のメニューバーから「APIのアクセス許可」を選択してください。

アクセス許可の一覧が表示されましたら、「アクセス許可の追加」を選択してください。

選択後、Microsoft Graphを選択し、「アプリケーションの許可」を選択してください。

選択できる権限の一覧が表示されますので、 必要な権限を選択してください。必要な権限は処理によって異なります。今回はユーザーのRead/Write権限を指定しています。ここで指定していないデータはMicrosoft Graphでアクセスできなくなりますのでご注意ください。
選べる権限の対象となる一覧は下記を参照してください。
https://learn.microsoft.com/ja-jp/graph/permissions-reference

選択後、APIのアクセス許可に戻り、管理者権限で許可を与えるようにしてください。

権限の設定ができましたら、クライアントシークレットを作成します。アプリケーションの左側のメニューバーから、「証明書とシークレット」を選択してください。

その後、「新しいクライアントシークレット」を選択して、クライアントシークレットを作成します。

作成後、値の部分をコピーしてください。なお、この値は作成後一回のみ表示されますので、必ず控えてください。

以上でAzureの設定は完了です。

◎HULFT Squareの設定

Teamsに接続するためのHULFT Squareの設定を、以下の流れにそって進めます。

  • リソースの設定
    下図の「1. HULFT Squareスクリプト起動」に対応します。
  • スクリプトの作成と実行(トークン取得)
    下図の「2. API送信」、「3. トークン取得」までに対応します。
リソースの設定

REST接続用のコネクション設定を以下の値で追加します。
URL:https://login.microsoftonline.com/

スクリプトの作成と実行(トークン取得)

REST接続用のリソースを作成しましたら、トークンを取得するためのスクリプトを作成します。
なお、スクリプト変数としてtenant, client_id, client_secを作成し、「Teams、およびAzureの設定」手順内でひかえた値を初期値として設定してください。また、出力用スクリプト変数としてtokenを作成し、他のスクリプトでも参照できるようにしておきます。

トークンを取得するためのAPIを実行するコンポーネントを設定します。
そのため、[ネットワーク]→[REST]→[POST実行]をスクリプトのキャンバスに配置します。
配置したコンポーネントには以下の値を設定していきます。

必須設定

接続先:先ほど作成したREST接続用コネクション設定
パス: ${tenant}/oauth2/v2.0/token
エンコード:UTF-8

リクエスト設定

データ入力元:データ
データ形式:フォーム
フォーム設定:今回連携したいパラメータ
※パラメータについては下記URLの「トークン要求」を参照してください
https://docs.microsoft.com/ja-jp/graph/auth-v2-service#token-request

レスポンス設定

データ出力先:データ
データ形式:JSON
レスポンスのステータスコードが4xx、5xxの場合エラーにする:true
レスポンスデータのテンプレートを「JSONファイルを指定してスキーマを設定」を選択して所有しているJSONファイルから選んでください。
※今回想定されるテンプレートは下記URLの「トークンの応答」の内容が該当します。
https://docs.microsoft.com/ja-jp/graph/auth-v2-service#token-response

ヘッダ設定

リクエストヘッダ
Content-type: application/x-www-form-urlencoded

上記で設定した部分以外はすべてデフォルトの設定で問題ありません。

POST実行のコンポーネントを配置できたら、次にリクエストデータに設定する値をマッピングします。そのために[変換]→[基本]→[マッピング]をスクリプトのキャンバスに配置して先ほど設定したPOST実行コンポーネントとドラッグ&ドロップでつなぎます。フローの設定を行うポップアップが表示されますので「プロセスフローとデータフローを引く」を設定してください。

マッピングコンポーネントをダブルクリックして、下図のようにマッピングを設定してください。

以上で、リクエストデータのマッピングが完了です。
次は、レスポンスデータの取得をするためのマッピングを行います。
[変換]→[基本]→[マッピング]を、今度はPOST実行コンポーネントの後ろに配置してドラッグ&ドロップでつなぎます。フローの設定を行うポップアップは「プロセスフローとデータフローを引く」を選びます。

マッピングコンポーネントをダブルクリックして「access_token」をスクリプト変数「token」につないでください。

以上で、Microsoft Graphのアクセストークンを取得してHULFT Squareのスクリプト変数「token」に格納させる処理が完成しました。スクリプトを実行して「token」にアクセストークンが格納されていることを確認してください。

おわりに

いかがだったでしょうか。
HULFT Squareにより、Teamsとの連携を行うための認証処理を行うことができました。
次回の【データ連携編】では実際のデータ連携について触れていきますので、そちらも併せて参照してください。

【データ連携編】:https://dmscube.com/view/post/0/167467

HULFT Square 技術コラム【つないでみた編】一覧

技術コラム一覧

Change Location

Are you visiting HULFT.com (Japanese language) outside Japan ?
When connecting "HULFT" to Japan from overseas, please select "HULFT8".

日本国外からHULFT.com(日本語)にアクセスされようとしています。
海外から日本の「HULFT」と接続する製品をお探しの場合、「HULFT8」をお選びください。