![見出し画像](https://assets.st-note.com/production/uploads/images/63014432/rectangle_large_type_2_4637840457973cb1bd0454a117ef507f.png?width=1200)
WorkatoでOneloginのユーザー情報を取得してSumologicに格納する話
弊社OneloginのOTPを実施した際に不審なアクセスにはSumoLogicを介してアラートを発出してるんですが、Oneloginからの情報にメールアドレスなどがないため問題ないアクセスでもアラートとして処理されていました。(判別できない)
というわけで、SumologicでOneloginのユーザー情報を使うために必要な処理をWorkatoでやろうというお話です。
大まかな流れ
WorkatoでOneloginのユーザー情報を取得する
↓
取得したユーザー情報をWorkatoからSumologicに流す
以上
WorkatoでOneloginのユーザー情報を取得する
OneloginのSDKにあるGet Usersを使ってデータを取得します。
この時、v1よりv2の方がレスポンスに
・総ページ数
・取得したユーザー情報数
が入ってくるので制御しやすいです。
その後は同じくレスポンスに入ってる次ページへのカーソルを使ってパラパラとページをめくるようにユーザー情報を最後まで取得します。
データ自体は最終的にSumologicに流すため、lookup tableに一時的に格納しています。
スプレッドシートなど外部に外出ししなくてもデータ保持できるのは良いですが、カラムが10までしか作成できないので注意です。
取得したユーザー情報をSumologicに流す
HTTPでSumologicに接続してデータを流します。
Sumologicにもlookup tableがあるので初期化→コピーする感じですね。
WorkatoもSumologicもほぼ触ったこと無い私が数時間で出来たので、難易度はそれほどでもないと思います。
こちらはlookup tableのカラム数に上限はないですがユニークキーを設定する必要があるので、今回はIDにしました。
Workato側で制限されてなければもうちょっと色々格納できましたねぇー。
作った感想と不満点
WorkatoとAPIの扱いに慣れていなかったのでチームメンバーに助けてもらった部分はあるものの、全体的にはレシピは作りやすかったです。
不満点を上げるとすれば繰り返しがFor Eachしかないため、While Loopなどの繰り返し処理が出来ないのがちょっと残念ですね。まぁ安全性考えたらそうなんでしょうけれども。
後条件式もifしかないので、switchみたいなフローを考えると実現にえらく苦労するかも…。
ある意味中途半端にプログラミング知識がある方が色々考えすぎちゃうかもしれませんね。(私とか)
まぁそもそも論としてOneloginがメールアドレス伝えてくれればそれで済むんですが…。
Oneloginが普段アクセスのない国からのログインを検知することができないのも改善して欲しいですねぇ。