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 要求の受信時をトリガーにします。
Encodian の HMAC を作成する のアクションを使います。
パラメーターを設定します。
キーは LINE WORKS Developer Console の Bot Secret です。
コントロールの条件のアクションを使って、HMAC と X-WORKS-Signature のヘッダー値を比較します。
ヘッダー値は triggerOutputs()['headders']['X-WORKS-Signature'] の式で取りだします。
一致すれば処理を続行し、一致しない場合エラーを返して処理を終了します。
動作確認
Callback URL に LINE WORKS 以外から Request を Post してみます。
署名の不一致により、HTTP 要求の応答アクションでエラーを返しています。