Oktaでユーザー作成をしたときにSlackで通知する方法
アカウント作成する時にユーザーの名前を間違えまくる罪を重ねすぎた結果Slackに通知させて、通知がくるチャンネル参加者にチェックをしてもらうことにしたので、そこに至るまでの通知設定を書いてます。
なんでそもそも
こんなピタゴラ作ろうと思ったか
アカウント発行係の私が息を吸うように人の名前を間違えてメールアドレス作成しちゃうから作りました...
次の画像が作ったやつ、そして早速起こす事故の証拠画像
メルアド間違えて作って当日まで気がつかなくて爆死という事故を何度か起こしたのでダブルチェックしてもらおうという意図です。ダブルチェックメンバーは上司と人事の人。
余談ですが、人の名前は全く覚えられないタイプです。顔もです。
やり方
2通りあります(他にもあるかも?
- Okta Workflowを利用する
最近GAした。カッチョイイ
- EvetHooksを利用する
前からあった。今回使った
簡単なのは前者なのですが、今回ライセンス的にWorkflowが利用できない環境なので、EventHooksとEvetHooksだけだと直でSlackに通知ができないのでintegromatというサービスを利用しました。後述です。
Event Hooksって何?
公式ドキュメント
https://www.okta.com/hooks/
ざっくり説明すると、Oktaからのアウトバウンドコールです。
Okta上でhogehogeをしたって言うのを特定のサービスなりなんなりに通知がすることができるって感じです。通知ができるデータはsystem Logで取得ができるデータなので、ユーザー名や氏名、タイムスタンプ、IPアドレスなど
EventHooksを設定するにあたり必要なのは、連携先のエンドポイントURLと、一度きりですが認証リクエスト(HTTPSPOSTリクエスト)が行われるので、そこで利用するURLやキーです
なんでintegromat使ったの?
認証リクエストを通すためのurlとキーを自力でなんとかするのしんどかったから。
公式ドキュメントでは、Glitch.comを利用したサンプルがありますが、わざわざ管理しないといけない物を増やすのも、glitch自体を利用したことがなかったので、お作法学ぶのがめんどくさかった...
integromatを利用したのは、社内で利用してるのとglitch使いたくないというそんな理由です。integromatはSaaS感の連携ツールなるので、Zapierとかそこら辺と似たような感じのサービスです。
なんでZapier使ってる人はそっち使えばいいと思います。実際やってないので動作保証はしません
integromat自体も癖が強い
見た目がすごーいオシャンなのですが、初見では正直だれも使い方わからなくね...ってなります。わかんなかったの私だけかな...そしたら恥ずかしい。
使い方動画があるらしいのでみた方がいい。
integromatにOktaの連携コネクタがあった
integromatにOktaとの公式で連携コネクタがありました。
Okta|integromat
ただ問題なのが、癖が強いわりにドキュメントがあってもよくわからないので、使い始めて初日にコネクタを知っても使い方がわからなくて、スペースキャット状態になった。
コネクタの説明。ペラ1で終了されて途方に暮れた。
いろいろ操作してみて結果これ、これで動いた。
ちょこっと詳しい作り方
まずintegromatとOktaを連携する必要があります。
OktaのアプリケーションはWatch New Eventを選択し、連携します。このときにAPI TokenをOktaで発行をし、integromatに記載する必要があります。
その後、Oktaの管理権限を持ったアカウントでのログインを行うことで、テナントと接続され、Okta側のEvent Hooksの連携まで完了です。
なので、こちらで
> 認証リクエストを通すためのurlとキーを自力でなんとかするのしんどいから。
これをなんとかする必要はなくなります。勝手に裏でやってくれる。べんりー
するとEvetHooksが自動作成される。
Subscribe to eventsが通知したいイベントになるので、画像ではユーザー作成と削除を選んでいますが、アプリケーションのアタッチや、ユーザーステータスの変更なども通知したい人はそちらも追加を
これでOkta側ですることは終了。
次はSlack側
Slack側もまずワークスペースとintegromatの連携が必要です。
連携後は、通知するチャンネルを指定します。
指定したあとは、textの部分で何を通知するか?の選択を行います。
青く表示されているのが、Okta側のデータフォーマットです。
このデータですが、textをクリックすると一覧が表示されるので、一覧から選択していくスタイルです。
このデータは、Okta上のSystem Logのデータです。
なので、表示させたいデータがSystem Log上でどのような名称で扱われているかを、System Logで確認しながら選択するのが一番ラクだと思う。
で、そんなふうに設定した時の通知がこれ
絵文字は使えます!やったね。
という感じで、事故を多発する人はこんなピタゴラスイッチ装置を作るのも手です。
間違え以外にも作成依頼がきて作るの忘れてた時の防止とかにもなります。
integromatは、フリーでも1000回/monthlyだかの実行が可能なので、今回だけの利用だけであれば十分利用できるかと思います。
もちろん他のサービスで変えられるならそちらもでも。まぁみんなで確認するの大切だよねってことで、通知させてみてはいかがでしょうか?