提示和技巧: API 配置

提示和技巧: API 配置

35222
Created On 09/25/18 18:56 PM - Last Modified 06/10/23 00:48 AM


Resolution


你可以用 API 做很多很酷的事情。管理员可以执行的更常见任务之一是通过一些创造性的脚本访问、更新和更改防火墙的配置, 同时利用 API 的易用性。

 

与 GUI 和 CLI 一样, 访问 API 需要身份验证。可以使用下面的命令生成身份验证令牌, 方法是采用每个管理员自己的用户名和密码。我们不建议共享此标记。

https://主机名/api/?类型 = 特警和用户 =用户名 > 密码=密码 >        

 

然后, 可以将生成的标记作为类似身份验证标记插入到任何 API 命令中:

/api/?类型 = 配置和操作 = 获取和键 =<key>和 xpath =/配置</key>

 

上面的命令将返回整个配置文件, 但您也可以将 xpath 筛选为更小、更具体的配置子集:

/api/?类型 = 配置和操作 = 获取和 xpath =/配置/设备
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/配置
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/预定义
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/共享

如果您查看配置 XML, xpath 将变得更有意义:

Xpath

 

 

您可以使用 API 浏览函数查看所有可能的 xpath 选项, 因此您可以构建一个更窄的筛选器以满足您的需要:

/php/rest/浏览. php/配置

 

若要添加新对象, 请使用 "设置" 操作或 "删除" 来删除对象或 "编辑" 以更改对象:

/api/?类型 = 配置和操作 =设置和键 =<key>和 xpath =/配置/设备/输入/vsys/输入/地址和元素 =<entry name='test'><description>我的降序</description><ip-netmask>1.1.1.1</ip-netmask> </entry> </key>  
/api/?类型 = 配置和操作 =删除和键 =<key>和 xpath =/配置/设备/输入/vsys/输入/地址和元素 =<entry name='test'> </entry> </key>  

正如您所看到的, 当您开始执行相当简单的操作时, URL 开始变得非常复杂。另一种很酷的方法是通过使用 CLI 调试模式来确定用于某些操作的 xpaths:

 

>> 调试 cli
(叶标记: cli 值: on) (与
停产匹配:. #t) (cli 处理程序:。调试-cli 处理程序) (上下文-在端插入-p:。#f))

>> 配置
() (
(上下文-在端插入-p:. #t))
输入配置模式
[编辑]

# 设置地址 "test55" 描述 "API 对象" ip-网络掩码 10.0.0.1
(容器标记: 地址容器-标签: 入口键-标记: 名称值: test55 叶标记: 描述值: API 对象叶标记:ip 网络掩码值: 10.0.0.1)
(终止匹配:. #t) (xpath 前缀:。/配置/设备/条目 [@name = ' 本地主机. localdomain ']/vsys/条目 [@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>这是 set 命令中的元素 2016-02-16 16:38:32 命令成功 [编辑] #
</request>


<response status="success" code="20"><msg></msg></response>


 

如果系统是 multivsys 的, 则需要调整 xml 以反映正确的 vsys, 因此 xpath 将成为:

/配置/设备/条目 [@name = ' 本地主机. localdomain ']/vsys/条目 [@name = ' vsys1 ']/

 

如果您还没有害怕, 请访问我们的 API 讨论论坛,在这里您将发现许多有趣的主题正在讨论真实世界的用例和使用pythonperl 自动化操作的巧妙方法.

 

请留下评论或类似的, 如果你发现这些信息有帮助。

 

谢谢你 !

 

汤姆



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClS1CAK&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language