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?

More than 1 year has passed since last update.

FortigateのAPIドキュメントはなぜか非公開であるため、
基本的には自分でAPIの内容を検証していく必要があります。

今回はその調査法の1つである、GUI操作とRestAPIを紐づける方法を書いていきます。

GUI上の操作

GUIとバックエンドのやり取りはRestAPIを使用して行われています。

つまりAPIリクエストから取得した情報がGUI上に反映され、
追加・削除などフロント(GUI上)で行われた変更はAPIリクエストによりバックエンド送られます。

デベロッパーツール

APIの通信の情報はブラウザのデベロッパーツール(Ctrl + Shift + i)で確認することが出来ます。
Fortigateへログイン後、デベロッパーツールを立ち上げてNetworkタブを開いてみます。
image.png
左上の赤丸のボタンを押すことでパケットのキャプチャーを行えます。
usageやusb-logといった項目がありますが、これらが実際に行われたAPIリクエストになります。

APIリクエストの中身

次にusageを選択してリクエストの中身を確認してみます。
image.png

Headers, Response などのタブがあり、これらからリクエストの内容を確認出来ます。

usageリクエストについては画像から以下のことが分かります。
・リクエストURL: https://192.168.0.1/api/v2/monitor/system/resource/usage
・リクエストメソッド:GET
・ステータスコード:200(成功)
image.png
Preview, Responseタブからレスポンスのデータを確認できます。

ちなみにusageリクエストではCPUやメモリなどのリソース関連の情報を取得しています。
ログイン後のステータスダッシュボードでは常にリソース情報が更新されているのですが、
そのたびにusageリスエストで情報を取得および更新しています。
image.png

使用例

例として管理者の作成(POST)、修正(PUT)、削除(DELETE)を行ってみます。

管理者の追加

GUI上でtestという名前の管理者を追加してみます。
image.png
追加ということでGETではなくPOSTリクエストになりました。
image.png

また、GETリクエストには無かったPayloadタブが出てきました。
ここで追加する情報をJSON形式で記載します。

管理者の変更

GUI上で管理者の名前をtestからnew_testへ変更します。
image.png
今度はメソッドがPUTになりました。
またリクエストURLに/testが追加され、testユーザーに対し修正を行うように定めています。
POSTと同じように修正する内容はPayloadタブに記載されています。

管理者の削除

GUI上で管理者new_testを削除します。
image.png
メソッドがDELETEになり、PUTと同じようにURLに削除対象new_testが定義されています。
DELETEにはPayloadないため、タブは表示されていません。

まとめ

いかがでしょうか?
FortigateのGUI操作とRestAPIの紐づけるにはデベロッパーツールが便利です。
ぜひ本記事をAPIを使用した自動化ツール開発などに役立てて頂ければ幸いです。

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?