fwebos_waf_custom_rule.py – Config FortiWeb Advanced Protection Custom Policy Rule

New in version 1.0.1.

Synopsis

Config FortiWeb Advanced Protection Custom Policy Rule

Requirements

The below requirements are needed on the host that executes this module.

  • ansible>=2.11

FortiWeb Version Compatibility


v7.0.x v7.2.x v7.4.x v7.6.x
fwebos_waf_custom_rule.py yes yes yes yes

Parameters

  • body Possible parameters to go in the body for the request required: True
    • name A unique name that can be referenced in other parts of the configuration. type:string maxLength:63
    • security_action Select which action the FortiWeb appliance will take when it detects a violation of the rule. type:string choice: alert, redirect, deny_no_log, block-period, client-id-block-period
    • severity Select which severity level the FortiWeb appliance will use when it logs a violation of the rule. type:string choice: Info, Low, Medium, High
    • trigger Select which trigger, if any, that the FortiWeb appliance will use when it logs and/or sends an alert email about a violation of the rule. type:string maxLength:63
    • bot_confirmation Enable to confirm if the client is indeed a bot. type:string choice: enable, disable
    • bot_recognition Select what type of bots the client is. type:string choice: enable, real-browser-enforcement, captcha-enforcement
    • validation_timeout FortiWeb applies the actions in 'trigger' if the client fails the test or does not return results before the Validation Timeout expires. type:string
    • max_attempt_times FortiWeb applies the actions in 'trigger' if the client cannot successfully fulfill the request within the 'max_attempt_times'. type:string
    • mobile_app_identification Available only when Mobile Application Identification is enabled. type:string choice: enable, disable
    • mkey If present, objects will be filtered on property with this name type:string
    • vdom Specify the Virtual Domain(s) from which results are returned or changes are applied to. If this parameter is not provided, the management VDOM will be used. If the admin does not have access to the VDOM, a permission error will be returned. The URL parameter is one of: vdom=root (Single VDOM) vdom=vdom1,vdom2 (Multiple VDOMs) vdom=* (All VDOMs) type:array
    • clone_mkey Use *clone_mkey* to specify the ID for the new resource to be cloned. If *clone_mkey* is set, *mkey* must be provided which is cloned from. type:string

Examples

- name:
  hosts: all
  vars:
  connection: httpapi
  gather_facts: false
  tasks:
   - name: add a rule
     fwebos_waf_custom_rule:
      action: add
      name: test1
      security_action: alert
      severity: Medium
      block_period: 500
      bot_confirmation: enable
      bot_recognition: real-browser-enforcement
      mobile_app_identification: disabled
      validation_timeout: 30
      trigger: tp1

   - name: get a rule
     fwebos_waf_custom_rule:
      action: get
      name: test1

   - name: edit a rule
     fwebos_waf_custom_rule:
      action: edit
      name: test1
      severity: High
      security_action: client-id-block-period
      block_period: 400
      bot_confirmation: disable

   - name: delete a rule
     fwebos_waf_custom_rule:
      action: delete
      name: test1

   - name: delete a rule
     fwebos_waf_custom_rule:
      action: delete
      name: test1

Return Values

Common return values are documented: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values, the following are the fields unique to this module:

  • 200 : OK: Request returns successful
  • 400 : Bad Request: Request cannot be processed by the API
  • 401 : Not Authorized: Request without successful login session
  • 403 : Forbidden: Request is missing CSRF token or administrator is missing access profile permissions.
  • 404 : Resource Not Found: Unable to find the specified resource.
  • 405 : Method Not Allowed: Specified HTTP method is not allowed for this resource.
  • 413 : Request Entity Too Large: Request cannot be processed due to large entity
  • 424 : Failed Dependency: Fail dependency can be duplicate resource, missing required parameter, missing required attribute, invalid attribute value
  • 429 : Access temporarily blocked: Maximum failed authentications reached. The offended source is temporarily blocked for certain amount of time.
  • 500 : Internal Server Error: Internal error when processing the request

For errorcode please check FortiWeb API errorcode at : https://documenter.getpostman.com/view/11233300/TVetbkaK#887b9eb4-7c13-4338-a8db-16cc117f0119

Status

  • This module is not guaranteed to have a backwards compatible interface.

Authors

  • Joseph Chen

Hint

If you notice any issues in this documentation, you can create a pull request to improve it.