2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LINE WORKS の Bot 宛てメッセージの署名確認 (Power Automate) LINE WORKS API 2.0

Last updated at Posted at 2022-07-13

LINE WORKS の Bot 宛てメッセージの署名確認

LINE WORKS の Bot 宛ての POST リクエストには、X-WORKS-Signature ヘッダーが含まれています。

このヘッダーを利用して、LINE WORKS Developes の以下の記事の手順で、正しく LINE WORKS から送信さた POST リクエストであるかを確認できます。

--- 記載引用 ---
メッセージサーバーから送信されたメッセージの改ざん有無を確認するには、ヘッダーに含まれる X-WORKS-Signature を用います。 確認プロセスは以下を参照してください。

「Developers Console > Bot」Botの詳細情報画面でBot Secretを取得します。

Bot Secretを秘密鍵として利用し、メッセージサーバーから送られた body の内容を HMAC-SHA256 アルゴリズムでエンコードします。

上記の HMAC-SHA256 アルゴリズムでエンコードした結果を BASE64 エンコードします。

X-WORKS-Signature のヘッダー値と比較し、同一であればメッセージは改ざんされていないと判断できます。
--- ここまで ---

Power Automate の Encodian コネクター

使ってみます。

HTTP 要求の受信時をトリガーにします。

l_150728740_5_4c479aecbb1a6bbb593a2affb96ba725.png

Encodian の HMAC を作成する のアクションを使います。

image.png

パラメーターを設定します。
キーは LINE WORKS Developer Console の Bot Secret です。

image.png

コントロールの条件のアクションを使って、HMAC と X-WORKS-Signature のヘッダー値を比較します。

ヘッダー値は triggerOutputs()['headders']['X-WORKS-Signature'] の式で取りだします。

一致すれば処理を続行し、一致しない場合エラーを返して処理を終了します。

image.png

動作確認

Callback URL に LINE WORKS 以外から Request を Post してみます。
署名の不一致により、HTTP 要求の応答アクションでエラーを返しています。

l_1517737_2060_85d1e0b0c25ccbacacb5d7e5a3f5df4c.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?