1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FortigateのREST APIのリファレンスのまとめ

Posted at

FortigateのREST APIのリファレンスのまとめ

FortigateでREST APIを実装しようとしているが、参考資料がなく困っている人へ。自分もそうであったため、復習を兼ねて自分でまとめておく。

インターネットで調べても調べても、FortigateのAPIに関する情報がなかったので困ったが、何とかあるサイトからリファレンスにたどり着いた。以下そのサイトのリンクを張っておく。

FortiGateをREST APIで管理する
https://blog.aimless.jp/archives/2017-04-01-manageing-fortigate-by-rest-api/

リファレンスもここにアップロードしておく。二つあるが、後者は私が英語のリファレンスをDeepLに入れてすべて翻訳してもらった日本語版。

FortiOS REST API version5.2.3
TFOS_JSON_REST_API_523.pdf

日本語版
FOS_JSON_REST_API_523 ja.pdf

その他調べる中で参考になったサイトのURLも貼っておく。

技術的なヒント: REST API を使用して FortiGate にアクセスする
https://community.fortinet.com/t5/FortiGate/Technical-Tip-Use-REST-API-Access-FortiGate/ta-p/196540

FortiGateの設計/設定ガイド
https://www.viva-fortigate.com/archives/57586442.html

FortiGateをREST APIを用いて監視しよう (前編)
https://www.secuavail.com/kb/nw-device/fortigate/fortigate-rest-api_firstpart/

APIの使用
https://docs.fortinet.com/document/fortigate/7.2.4/administration-guide/940602/using-apis

話を戻すと、リファレンスがあれば何とか実装は出来そう。とはいえ、PDFの技術書を71ページ読むことは大変だと思う(もちろん、最終的には必要)。まして、英語は読みにくく、DeepLといえども不自然な翻訳や画面上が文字で重なって読みにくい場合もある。

なので、ここに大まかな内容だけまとめておく。

※このリファレンスはFortiOSバージョン5.2.3でサポートされるREST APIの情報になるが、それ以外参考になるドキュメントやデータシート、リファレンスがないのでこれを使用する。また、私が検証したバージョン6以上のFortigateはこのリファレンスの通りに情報が取得できたので、とりあえずは信用できるのではないかと思う。

サポートされているREST API 2つの機能

スクリーンショット (13).png

スクリーンショット (14).png

Fortigateでは2種類のREST APIがサポートされている。

  • CMDB API
    ・検索
    ・作成
    ・修正
    ・オブジェクトの削除
    ・構成
  • Monitor API
    ・ダイナミック・データをモニターする
    ・リフレッシュ
    ・統計リセット
    ・FGT(Fortigate)の再起動

以上がそれぞれのAPIで出来ること。以下、簡単にまとめると、
cmdbAPIは、FortiOSの設定を行うためのAPI
monitorAPIは、FortiGateから情報を取得するためのAPI
したがって、
cmdb APIはFortiOSデバイスの設定の変更や更新など管理するために使用され、
monitor APIはシステムの監視や健全性のチェックに使用される。

CMDB API

スクリーンショット (15).png
cmdb apiのurlは、「https://192.168.1.99/api/v2/cmdb」

例として以下のURL形式を持つとき、
https://192.168.1.99/api/v2/cmdb/firewall/policy/1
画像の通り以下のように分解できる
https://192.168.1.99/api/v2/cmdb/→URL
firewall→path
policy→name
mkey→1

Monitor API

スクリーンショット (16).png

例として以下のURL形式を持つとき、
https://192.168.1.99/api/v2/cmdb/firewall/local-in
cmdb api と同じように分解できる
https://192.168.1.99/api/v2/monitor/→URL
firewall→path
local-in→name

おまけ

  • ほかの参考サイトにあるように、もちろん、restAPI なのでHTTPメソッドを使用している。なので、curl コマンドでもcmd から実行もできる。
  • cmdbapiですべてのHTTPメソッドは使えるが、monitorapiではGET,POSTしか使用できないのでそれも確認してほしい。
  • 基本的なことしかまとめてないので、またレスポンスコードやコレクション、リソースは自分で確認してほしい。
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?