Transmission de paramètres à un script d'action personnalisé
Des exemples de scripts dans Bash, Python et Perl montrent comment transmettre des paramètres à des scripts d'action personnalisés.
Les exemples de scripts simples suivants montrent comment interroger l'API de modèle d'actif pour un actif avec l'adresse IP source de l'infraction fournie. Dans l'intérêt de cet exemple, les scripts extraient le JSON renvoyé par le nœud final.
Les scripts nécessitent trois paramètres :
- Adresse IP de la console
- Jeton d'API
- Adresse IP source d'infraction
Ces paramètres sont configurés dans la zone Paramètres de script de la fenêtre Définir une action personnalisée :

Chaque paramètre est transmis au script dans l'ordre dans lequel il a été ajouté dans la fenêtre Définir une action personnalisée. Dans ce cas :
- console_ip
- api_token
- offense_source_ip
Les variables définies au début de chaque exemple de script utilisent les exemples de noms de paramètre qui ont été ajoutés dans la fenêtre Définir une action personnalisée.
#!/bin/bash
console_ip=$1
api_token=$2
offense_source_ip=$3
auth_header="SEC:$api_token"
output=$(curl -k -H $auth_header https://$console_ip/console/restapi/api/
asset_model/assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29)
# Basic print out of the output of the command
echo $output
#!/usr/bin/python
import sys
import requests
console_ip = sys.argv[1]
api_token = sys.argv[2]
offense_source_ip = sys.argv[3]
auth_header = {'SEC' : api_token }
endpoint = "https://{0}/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22{1}%22%29%29"
.format(console_ip, offense_source_ip)
response = requests.get(endpoint, headers=auth_header, verify=False)
# Basic print out of the output of the command
print(response.json())
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $console_ip = $ARGV[0];
my $api_token = $ARGV[1];
my $offense_source_ip = $ARGV[2];
my $endpoint = "https://$console_ip/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29";
my $client = LWP::UserAgent -> new(ssl_opts => { verify_hostname => 0 });
my $response = $client -> get($endpoint, "SEC" => $api_token);
# Basic print out of the output of the command
print $response -> decoded_content;