ヒントとコツ: API の構成
Resolution
あなたは、API で多くのクールなことを行うことができます。管理者が実行できる一般的なタスクの1つは、API の使いやすさを活用しながら、いくつかのクリエイティブスクリプトを使用してファイアウォールの構成をアクセス、更新、および変更することです。
GUI と CLI と同様に、API にアクセスするには認証が必要です。認証トークンは、各管理者自身のユーザ名とパスワードを使用して、以下のコマンドで生成することができます。このトークンを共有することはお勧めしません。
https://ホスト名 >/api/? タイプ = keygen の & ユーザー =ユーザ名 >& パスワード =パスワード >
結果のトークンは、次のような認証トークンとして任意の API コマンドに挿入できます。
/api/? タイプ \u003d 設定 & アクション = 取得& キー =<key>& xpath =/config</key>
上記のコマンドを実行すると、構成ファイル全体が返されますが、以下のように、xpath をより小さく、より具体的な構成のサブセットに絞り込むこともできます。
/api/? タイプ = config & アクション = get & xpath =/config/devices /api/? タイプ = config & アクション = get & xpath =/config/mgt-config /api/? タイプ = config & アクション = get & xpath =/config/predefined /api/? タイプ = config & アクション = get & xpath =/config/shared
構成 XML を見れば、xpath はより理にかなっています。
API browse 関数を使用すると、可能なすべての xpath オプションを調べることができるため、必要に応じてより狭いフィルタを構築できます。
/php/rest/browse.php/config
新しいオブジェクトを追加するには、' set ' アクションまたは ' delete ' を使用してオブジェクトを削除するか、オブジェクトを変更するには ' edit ' を使います。
/api/? タイプ \u003d 設定 & アクション =セット& キー =<key>& xpath =/config/devices/entry/vsys/entry/address & 要素 =<entry name='test'><description>私の desc</description><ip-netmask>1.1.1.1</ip-netmask> </entry> </key>
/api/? タイプ \u003d 設定 & アクション =削除& キー =<key>& xpath =/config/devices/entry/vsys/entry/address & 要素 =<entry name='test'> </entry> </key>
ご覧のように、簡単な操作の実行を開始すると、URL はすぐにかなり複雑になり始めます。特定の操作に使用する xpaths を理解するもう1つのクールな方法は、CLI デバッグモードを使用することです。
> デバッグ cli on
(リーフタグ: cli 値: オン)
((eol に一致:. #t) (cli ハンドラ:. デバッグ-cli ハンドラ) (コンテキストに挿入されたエンド-p:。#f)
> 設定
() (
コンテキスト挿入-終了-p:。#t))
入力設定モード
[編集]
# 設定アドレス "test55" 説明 "API オブジェクト" ip-ネットマスク 10.0.0.1
(コンテナ-タグ: アドレスコンテナ-タグ: エントリキー-タグ: 名前値: test55 リーフタグ: 説明値: API オブジェクトのリーフタグ:ip-ネットマスク値: 10.0.0.1)
((eol 一致:. #t) (xpath-接頭辞:. /config/devices/entry [@name = ' localhost. localdomain ']/vsys/entry [@name = ' vsys1 ']) (コンテキストに挿入された終了-p:。#f))
(アドレス (エントリ (@ (名前 test55)) (説明 api オブジェクト) (ip-ネットマスク 10.0.0.1)))
(エントリ (@ (名前 test55)) (説明 api オブジェクト) (ip-ネットマスク 10.0.0.1))
これは、
<request cmd="set" obj="/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/address/entry[@name='test55']" cookie="1285104864936584">
<description>api オブジェクト</description>の上の set コマンドの XPath です<ip-netmask>10.0.0.1</ip-netmask>これは、2016-02-16 16:38:32 コマンドが成功した上記の set コマンドの要素です [編集] #
</request>
<response status="success" code="20"><msg></msg></response>
システムが multivsys の場合、適切な vsys を反映するように xml を調整する必要があるため、xpath は次のようになります。
/config/devices/entry [@name = ' localhost. localdomain ']/vsys/entry [@name = ' vsys1 ']/
あなたはまだ怖がっていない場合は、私たちの API ディスカッションフォーラムを参照してくださいここでは、実際の使用例とは、pythonまたはperl を使用して操作を自動化するための粋な方法で議論されて興味深い科目の多くを見つけることができます行ってください。
この情報が役に立つことがわかった場合は、コメントなどを残してください。
ありがとうございます。
トム