2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

株式会社ビットキー 情シスAdvent Calendar 2023

Day 21

Okta Access Requests & Okta Workflowsで使いたいときにだけ使えるWi-Fiを用意する話

Last updated at Posted at 2023-12-21

はじめに

この記事は株式会社ビットキー 情シス Advent Calendar 2023 の21日目の投稿です。

はじめまして。@y_okeです。情シス内で色々な社内システムを内製しています。

登板3回目、今週も木曜日の投稿となりました。好きなタイプはくさタイプです。

記事の要約

  • 社内でユーザーや時間を限定してWi-Fiを使わせたいニーズがあるよ
  • MerakiはAPI経由でWi-Fiの制御ができるよ
  • Okta Access Requests & Okta Workflowsで制御してみよう!

課題

  • 製品やアプリの検証等でWi-Fiを使いたいという要望がたまにある
  • 検証用のWi-Fiを常時吹いていると、用途外の使用をされてしまい、本来使いたい業務PC用の帯域も圧迫してしまう
  • 一定時間だけ使える、かつ申請者以外は使えないWi-Fiを用意したらいいんじゃないか?

要件と解決策

  • Okta Access Requestsで申請したら、Meraki Dashboard APIを実行するようにしたい
    • Okta Workflowsを使えば繋げられそう
  • Wi-Fiの不適切な申請や利用は防止したい
    • 12/12の記事の内容で行けるよ
      • 今回はCase2を使うよ
      • 上の記事と同じ内容はここでは割愛

メリット

  • 申請・承認業務は残すものの、ユーザーが使いたいときに申請すればほぼ自動で、かつ時限付きで特定のWi-Fiを使用可能状態にすることが出来る
  • いつ誰が申請し承認したのかがログに残るため、不適切な利用等の確認・防止につながる

やってみた

前提

  • 今回は、任意のパスワードでWi-Fiを有効化し、一定時間経過後、もしくは任意のタイミングで無効化するユースケースを想定
  • 実運用時はステークホルダーの意見を聞いて機能・UI共にアップデートする予定

1. Meraki Dashboard APIキーの取得

  • OrganizationAPI & webhooks

    Untitled (10).png

  • API keys and accessGenerate API Keyを選択してAPI Keyを発行

    Untitled (12).png

  • コピーできるのはこの瞬間だけなので、安全な場所へ保存しておくこと

    Untitled (13).png

2. Okta Workflowsの設定

  • Okta Workflowsを作成

    • Okta Workflowsへログインし、New Flowを押す
      image.png

    • イベントを作成する

      • Add eventを押してDelegated Flowを選択

        Untitled (14).png

        スクリーンショット 2023-12-21 10.41.02.png

      • 入力変数として有効/無効を示す値パスワードを用意

        • Click or drag to createをクリックして変数名を入力
          image.png
    • アクションを作成する

      • Meraki Dashboard API公式ドキュメントを参考にしてAPIコネクタを作る
        • 今回はupdate-network-wireless-ssidを実行する
          • headerは公式の通りに設定
            • 先程取得したAPI Keyを入力
          • bodyはenabledpskの2つ
            • 入力変数から加工する
      • 二重で有効化してパスワードが上書きされるのを防ぐ処理も入れてある
    • フローの全体イメージ

      スクリーンショット 2023-12-21 13.24.45.png

  • 作成したOkta WorkflowsをOkta Access Requestsに表示させる

    • Okta Access RequestsのSettingResourceを開き、Update nowを押して同期させる
      これをすることで、Run a workflowで選択できるようになる

      image.png

    本当はOkta Access Requests上にOkta Workflowsのフローを表示するためには、この他にも色々と設定が必要だったそうです。その作業はこっそりと他の人(@h_r_w_t_r)がやってくれていたのですが、当時は知りませんでした。
    その部分の説明について聞きたい方は、本人にX(旧Twitter)で聞いてみてください。

3. Okta Access Requestsの設定

  • 今回は前提条件からUIとして以下を用意
    • Wi-FIの有効化・無効化を指示するためのセレクトメニュー
    • 任意のパスワードを入れるためのテキストボックス
  • 基本的な作成方法は12/12の記事を参照

  • Questionsの入力欄は2つ

    • Wi-Fiを有効にしますか?はドロップダウンリストにして固定値を選択してもらう

    • パスワードを〜はテキストフィールドで任意の文字を入れてもらう

      スクリーンショット 2023-12-21 13.42.16.png

  • ActionではRun a workflowを選択

    • ユーザーが入力した値をOkta Workflowsに渡す

      スクリーンショット 2023-12-21 13.42.23.png

    • 記事公開(2023/12)時点ではWorkflowに任意の固定値は渡せないので、無効化するときは仕方なくメールアドレスを渡している

      スクリーンショット 2023-12-21 13.42.29.png

4. 実践

  • 申請前のMeraki Dashboardの状態

    Untitled (19).png

  • 申請(Slackから行った場合)

    image_slack.png

  • Okta Access Requests承認後、Wi-Fiが有効化され、パスワードが変更される

    Untitled (21).png

  • Meraki管理画面にはAPIで変更した旨のログが残る

    スクリーンショット 2023-12-20 20.31.53.png

継続課題

  • 申請後に他の人から申請があった場合も時間延長はされない
    • Okta Access Requestsのタイマーは途中で終了できないため、必ず指定時間後に無効化処理が走る
      • うまいやり方が無いか考え中
  • Okta Access Requestsのタイマー時間にユーザー入力変数は使えず、固定値しか扱えない
    • 現時点では仕様なのでしょうがない
  • Okta Access RequestsのAudienceを編集していると、偶にワークフロー自体が消えてしまう
    • 権限上見えないところにいる気はするが、何か手立てはないだろうか
  • 有効化するAPを限定したい
    • 入力の選択肢を増やして、選択肢に応じてAPを割り当てるようにする、とかはAPIをうまく使えばできるはず

最後に

  • Okta Access Requestsは簡単に承認WFが作れる良いノーコードワークフローツール
  • Okta Workflowsは任意のAPIを実行できる、高機能なノーコードワークフローツール
  • Okta Access RequestsとOkta Workflowsを組み合わせることで、様々なサービスを申請・承認行為付きで連携できる可能性が示せた
2
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?