Skip to main content
Skip table of contents

[内部ネットワーク] Slack DM ワークフロー結果の転送

概要

有効にする Slack の DM 通知を有効にすることで、ワークフロー内の承認者が Slack 内で承認または却下を行うことができます。QueryPie が内部ネットワーク内にある場合、承認 / 否認の結果を受信するためには、Slack サービスの IP レンジからインバウンド通信を開始する必要がある。しかし、Slack は IP レンジを公開していないため、直接受信することは難しい。

そのため、Slack と QueryPie 間のインバウンド通信の途中で、Slack からのワークフロー承認・否認結果を受信・配信するリバースプロキシとしての役割を果たすリソースが必要となる。回避策として、許可 IP 範囲を比較的公開している Okta のワークフローを利用してリクエストをルーティングし、配信する方法を紹介する。この方法であれば、別途運用リソースを用意することなく、Slack と QueryPie 間のワークフロー処理を完結させることができる。

参考リンク YouTube

https://help.okta.com/en-us/content/topics/securityhttps://help.okta.com/en-us/content/topics/security/ip-address-allow-listing.htm」ページ内の「Okta IP range allowlist」を参照し、該当テナントの IP 範囲を確認する必要があります。先取りインバウンドトラフィックの例外は、それに応じて許可する必要があります。

以下の対策を実施するためには、Okta IAM サービスへの加入が必要であり、Okta Workflows サービスへのアクセスが可能である必要があります。[Okta Workflowsのライセンスに加入していなくても、ユニバーサルディレクトリ(UD)+シングルサインオン(SSO)ライセンス以上を持っていれば、ケースオープンから Okta Workflows を有効化し、5フローまで無料で利用できます]。

Okta ワークフローの設定

これらの設定を行うには、Okta Workflows コンソールへのアクセス権限が必要です。また、Okta Workflows アプリケーションにアクセスするためには、Okta Super Administrator 権限が必要です。

  1. Okta ワークフローのテンプレートは、以下のリンクから事前にダウンロードすることができます。

  2. Okta 管理者コンソール内のワークフロー > ワークフローコンソールをクリックします。(Okta スーパー管理者のみアクセス可能)。

    ワークフロー > ワークフローコンソール

  3. Flowsタブに移動し、左側の[Folder]メニューで > ↓Importボタンをクリックします。

    フロー > ⋮ > ↓ インポート

  4. ダウンロードしたワークフローファイルをドラッグ&ドロップすると、すぐにフローが作成されます。

    フォルダ "{{ターゲットフォルダ}}" にインポート

  5. 作成されたワークフローをクリックし、詳細を入力します。

    フロー > フォルダ > 対象フォルダ

  6. ワークフローテンプレートの中央にあるComposeカード内で、URL 文字列を正しい QueryPie ドメインアドレスで更新します。

    https://{querypie_domain}}/api/slack/コールバック

  7. 右端のPostカードの上部にある「Unknown Connection」をクリックし、「+New connection」をクリックする。その後、別のブラウザタブで QueryPie ページに進みます。

    投稿 > 不明な接続 >+ 新規接続

  8. QueryPie > Settings > General Settings > System > API Token に移動し、+ Create API Tokenをクリックしてトークンを生成し、トークンの値をコピーします。(オーナーと承認管理者がアクセス可能)

    設定 > 一般設定 > システム > APIトークン >+ APIトークンの作成

  9. Okta Workflows 画面に戻り、以下の値を入力し、「Create」ボタンをクリックします。

    投稿 > 不明な接続 >+ 新規接続

    1. Connection Nickname: 識別しやすいコネクタ名(例:QueryPie)を入力します。

    2. 認証タイプ: カスタム

    3. ヘッダー名: 認証

    4. Header Value: QueryPie からコピーした API Token の値を貼り付けます。

  10. フローの右上にある⏻フローOFFボタンをクリックし、下部にあるフローOFFトグルを有効にします。

    フローはオフ

  11. Saveボタンをクリックしてフローを保存し、アクティブにします。

  12. フローの左端にある API Endpoint カードの下部にある</>ボタンをクリックします。

    APIエンドポイント</>

  13. コピーボタンを押して、Slack アプリに反映する Invoke URL アドレスをコピーします。

    APIエンドポイントの設定 > Invoke URL >copy

Slack アプリの再設定

  1. https://api.slack.com/apps、以前に作成した QueryPie アプリをクリックします。

  2. Features > Interactivity > Shortcutsに移動し、Interactivity の一番下にある Request URL アドレスを、Okta ワークフローからコピーした Invoke URL アドレスに置き換えます(以前は{QueryPie URL}/api/slack/callbackにありました)。下部のSave Changesボタンをクリックして、設定変更を保存します。

  3. その後、Slack の承認者が再度ワークフローを承認 / 拒否しようとすると、結果に応じて、Okta ワークフローを通じて QueryPie にプロセスが到達し、正常に処理されたことが確認できるはずです。

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.