# fortios_web_proxy_global – Configure Web proxy global settings in Fortinet’s FortiOS and FortiGate

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify web_proxy feature and global category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.5

## Requirements

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

- fortiosapi>=0.9.8

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
host string |  | FortiOS or FortiGate IP address.

https
boolean

Choices:
- no
- yes ←

Indicates if the requests towards FortiGate must use HTTPS protocol.

password string | Default: "" | FortiOS or FortiGate password.

ssl_verify
boolean
added in 2.9

Choices:
- no
- yes ←

Ensures FortiGate certificate must be verified by a proper CA.

username string |  | FortiOS or FortiGate username.
vdom string | Default: "root" | Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit.
web_proxy_global dictionary | Default: null | Configure Web proxy global settings.

fast_policy_match
string

Choices:
- enable
- disable

Enable/disable fast matching algorithm for explicit and transparent proxy policy.

forward_proxy_auth
string

Choices:
- enable
- disable

Enable/disable forwarding proxy authentication headers.

| forward_server_affinity_timeout integer |  | Period of time before the source IP's traffic is no longer assigned to the forwarding server (6 - 60 min).

learn_client_ip
string

Choices:
- enable
- disable

Enable/disable learning the client's IP address from headers.

learn_client_ip_from_header
string

Choices:
- true-client-ip
- x-real-ip
- x-forwarded-for

Learn client IP address from the specified headers.

| learn_client_ip_srcaddr list |  | Source address name (srcaddr or srcaddr6 must be set).
|  | name string / required |  | Address name. Source firewall.address.name firewall.addrgrp.name.
| learn_client_ip_srcaddr6 list |  | IPv6 Source address name (srcaddr or srcaddr6 must be set).
|  | name string / required |  | Address name. Source firewall.address6.name firewall.addrgrp6.name.
| max_message_length integer |  | Maximum length of HTTP message, not including body (16 - 256 Kbytes).
| max_request_length integer |  | Maximum length of HTTP request line (2 - 64 Kbytes).
| max_waf_body_cache_length integer |  | Maximum length of HTTP messages processed by Web Application Firewall (WAF) (10 - 1024 Kbytes).
| proxy_fqdn string |  | Fully Qualified Domain Name (FQDN) that clients connect to to connect to the explicit web proxy.

strict_web_check
string

Choices:
- enable
- disable

Enable/disable strict web checking to block web sites that send incorrect headers that don't conform to HTTP 1.1.

tunnel_non_http
string

Choices:
- enable
- disable

Enable/disable allowing non-HTTP traffic. Allowed non-HTTP traffic is tunneled.

unknown_http_version
string

Choices:
- reject
- tunnel
- best-effort

Action to take when an unknown version of HTTP is encountered: reject, allow (tunnel), or proceed with best-effort.

| webproxy_profile string |  | Name of the web proxy profile to apply when explicit proxy traffic is allowed by default and traffic is accepted that does not match an explicit proxy policy. Source web-proxy.profile.name.

## Notes

Note

- Requires fortiosapi library developed by Fortinet

- Run as a local_action in your playbook

## Examples

    - hosts: localhost
      vars:
       host: "192.168.122.40"
       username: "admin"
       password: ""
       vdom: "root"
       ssl_verify: "False"
      tasks:
      - name: Configure Web proxy global settings.
        fortios_web_proxy_global:
          host:  "{{ host }}"
          username: "{{ username }}"
          password: "{{ password }}"
          vdom:  "{{ vdom }}"
          https: "False"
          web_proxy_global:
            fast_policy_match: "enable"
            forward_proxy_auth: "enable"
            forward_server_affinity_timeout: "5"
            learn_client_ip: "enable"
            learn_client_ip_from_header: "true-client-ip"
            learn_client_ip_srcaddr:
             -
                name: "default_name_9 (source firewall.address.name firewall.addrgrp.name)"
            learn_client_ip_srcaddr6:
             -
                name: "default_name_11 (source firewall.address6.name firewall.addrgrp6.name)"
            max_message_length: "12"
            max_request_length: "13"
            max_waf_body_cache_length: "14"
            proxy_fqdn: "<your_own_value>"
            strict_web_check: "enable"
            tunnel_non_http: "enable"
            unknown_http_version: "reject"
            webproxy_profile: "<your_own_value> (source web-proxy.profile.name)"

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
build string | always | Build number of the fortigate image Sample: 1547
http_method string | always | Last method used to provision the content into FortiGate Sample: PUT
http_status string | always | Last result given by FortiGate on last operation applied Sample: 200
mkey string | success | Master key (id) used in the last call to FortiGate Sample: id
name string | always | Name of the table used to fulfill the request Sample: urlfilter
path string | always | Path of the table used to fulfill the request Sample: webfilter
revision string | always | Internal revision number Sample: 17.0.2.10658
serial string | always | Serial number of the unit Sample: FGVMEVYYQT3AB5352
status string | always | Indication of the operation's result Sample: success
vdom string | always | Virtual domain used Sample: root
version string | always | Version of the FortiGate Sample: v5.6.3

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Miguel Angel Munoz (@mamunozgonzalez)

- Nicolas Thomas (@thomnico)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.