# fortios_vpn_ssl_web_portal – Portal 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 vpn_ssl_web feature and portal 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.

state
string
added in 2.9

Choices:
- present
- absent

Indicates whether to create or remove the object. This attribute was present already in previous version in a deeper level. It has been moved out to this outer level.

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.
vpn_ssl_web_portal dictionary | Default: null | Portal.

allow_user_access
string

Choices:
- web
- ftp
- smb
- telnet
- ssh
- vnc
- rdp
- ping
- citrix
- portforward

Allow user access to SSL-VPN applications.

auto_connect
string

Choices:
- enable
- disable

Enable/disable automatic connect by client when system is up.

| bookmark_group list |  | Portal bookmark group.
|  | bookmarks list |  | Bookmark table.
|  |  | additional_params string |  | Additional parameters.

apptype
string

Choices:
- citrix
- ftp
- portforward
- rdp
- smb
- ssh
- telnet
- vnc
- web

Application type.

|  |  | description string |  | Description.
|  |  | folder string |  | Network shared file folder parameter.
|  |  | form_data list |  | Form data.
|  |  |  | name string / required |  | Name.
|  |  |  | value string |  | Value.
|  |  | host string |  | Host name/IP parameter.
|  |  | listening_port integer |  | Listening port (0 - 65535).
|  |  | load_balancing_info string |  | The load balancing information or cookie which should be provided to the connection broker.
|  |  | logon_password string |  | Logon password.
|  |  | logon_user string |  | Logon user.
|  |  | name string / required |  | Bookmark name.
|  |  | port integer |  | Remote port.
|  |  | preconnection_blob string |  | An arbitrary string which identifies the RDP source.
|  |  | preconnection_id integer |  | The numeric ID of the RDP source (0-2147483648).
|  |  | remote_port integer |  | Remote port (0 - 65535).

security
string

Choices:
- rdp
- nla
- tls
- any

Security mode for RDP connection.

server_layout
string

Choices:
- de-de-qwertz
- en-gb-qwerty
- en-us-qwerty
- es-es-qwerty
- fr-fr-azerty
- fr-ch-qwertz
- it-it-qwerty
- ja-jp-qwerty
- pt-br-qwerty
- sv-se-qwerty
- tr-tr-qwerty
- failsafe

Server side keyboard layout.

show_status_window
string

Choices:
- enable
- disable

Enable/disable showing of status window.

sso
string

Choices:
- disable
- static
- auto

Single Sign-On.

sso_credential
string

Choices:
- sslvpn-login
- alternative

Single sign-on credentials.

sso_credential_sent_once
string

Choices:
- enable
- disable

Single sign-on credentials are only sent once to remote server.

|  |  | sso_password string |  | SSO password.
|  |  | sso_username string |  | SSO user name.
|  |  | url string |  | URL parameter.
|  | name string / required |  | Bookmark group name.
| custom_lang string |  | Change the web portal display language. Overrides config system global set language. You can use config system custom-language and execute system custom-language to add custom language files. Source system.custom-language.name.

customize_forticlient_download_url
string

Choices:
- enable
- disable

Enable support of customized download URL for FortiClient.

display_bookmark
string

Choices:
- enable
- disable

Enable to display the web portal bookmark widget.

display_connection_tools
string

Choices:
- enable
- disable

Enable to display the web portal connection tools widget.

display_history
string

Choices:
- enable
- disable

Enable to display the web portal user login history widget.

display_status
string

Choices:
- enable
- disable

Enable to display the web portal status widget.

| dns_server1 string |  | IPv4 DNS server 1.
| dns_server2 string |  | IPv4 DNS server 2.
| dns_suffix string |  | DNS suffix.

exclusive_routing
string

Choices:
- enable
- disable

Enable/disable all traffic go through tunnel only.

forticlient_download
string

Choices:
- enable
- disable

Enable/disable download option for FortiClient.

forticlient_download_method
string

Choices:
- direct
- ssl-vpn

FortiClient download method.

| heading string |  | Web portal heading message.

hide_sso_credential
string

Choices:
- enable
- disable

Enable to prevent SSO credential being sent to client.

host_check
string

Choices:
- none
- av
- fw
- av-fw
- custom

Type of host checking performed on endpoints.

| host_check_interval integer |  | Periodic host check interval. Value of 0 means disabled and host checking only happens when the endpoint connects.
| host_check_policy list |  | One or more policies to require the endpoint to have specific security software.
|  | name string / required |  | Host check software list name. Source vpn.ssl.web.host-check-software.name.

ip_mode
string

Choices:
- range
- user-group

Method by which users of this SSL-VPN tunnel obtain IP addresses.

| ip_pools list |  | IPv4 firewall source address objects reserved for SSL-VPN tunnel mode clients.
|  | name string / required |  | Address name. Source firewall.address.name firewall.addrgrp.name.
| ipv6_dns_server1 string |  | IPv6 DNS server 1.
| ipv6_dns_server2 string |  | IPv6 DNS server 2.

ipv6_exclusive_routing
string

Choices:
- enable
- disable

Enable/disable all IPv6 traffic go through tunnel only.

| ipv6_pools list |  | IPv4 firewall source address objects reserved for SSL-VPN tunnel mode clients.
|  | name string / required |  | Address name. Source firewall.address6.name firewall.addrgrp6.name.

ipv6_service_restriction
string

Choices:
- enable
- disable

Enable/disable IPv6 tunnel service restriction.

ipv6_split_tunneling
string

Choices:
- enable
- disable

Enable/disable IPv6 split tunneling.

| ipv6_split_tunneling_routing_address list |  | IPv6 SSL-VPN tunnel mode firewall address objects that override firewall policy destination addresses to control split-tunneling access.
|  | name string / required |  | Address name. Source firewall.address6.name firewall.addrgrp6.name.

ipv6_tunnel_mode
string

Choices:
- enable
- disable

Enable/disable IPv6 SSL-VPN tunnel mode.

| ipv6_wins_server1 string |  | IPv6 WINS server 1.
| ipv6_wins_server2 string |  | IPv6 WINS server 2.

keep_alive
string

Choices:
- enable
- disable

Enable/disable automatic reconnect for FortiClient connections.

limit_user_logins
string

Choices:
- enable
- disable

Enable to limit each user to one SSL-VPN session at a time.

mac_addr_action
string

Choices:
- allow
- deny

Client MAC address action.

mac_addr_check
string

Choices:
- enable
- disable

Enable/disable MAC address host checking.

| mac_addr_check_rule list |  | Client MAC address check rule.
|  | mac_addr_list list |  | Client MAC address list.
|  |  | addr string / required |  | Client MAC address.
|  | mac_addr_mask integer |  | Client MAC address mask.
|  | name string / required |  | Client MAC address check rule name.
| macos_forticlient_download_url string |  | Download URL for Mac FortiClient.
| name string / required |  | Portal name.

os_check
string

Choices:
- enable
- disable

Enable to let the FortiGate decide action based on client OS.

| os_check_list list |  | SSL VPN OS checks.

action
string

Choices:
- deny
- allow
- check-up-to-date

OS check options.

|  | latest_patch_level string |  | Latest OS patch level.
|  | name string / required |  | Name.
|  | tolerance integer |  | OS patch level tolerance.
| redir_url string |  | Client login redirect URL.

save_password
string

Choices:
- enable
- disable

Enable/disable FortiClient saving the user's password.

service_restriction
string

Choices:
- enable
- disable

Enable/disable tunnel service restriction.

skip_check_for_unsupported_browser
string

Choices:
- enable
- disable

Enable to skip host check if browser does not support it.

skip_check_for_unsupported_os
string

Choices:
- enable
- disable

Enable to skip host check if client OS does not support it.

smb_ntlmv1_auth
string

Choices:
- enable
- disable

Enable support of NTLMv1 for Samba authentication.

smbv1
string

Choices:
- enable
- disable

Enable/disable support of SMBv1 for Samba.

| split_dns list |  | Split DNS for SSL VPN.
|  | dns_server1 string |  | DNS server 1.
|  | dns_server2 string |  | DNS server 2.
|  | domains string |  | Split DNS domains used for SSL-VPN clients separated by comma(,).
|  | id integer / required |  | ID.
|  | ipv6_dns_server1 string |  | IPv6 DNS server 1.
|  | ipv6_dns_server2 string |  | IPv6 DNS server 2.

split_tunneling
string

Choices:
- enable
- disable

Enable/disable IPv4 split tunneling.

| split_tunneling_routing_address list |  | IPv4 SSL-VPN tunnel mode firewall address objects that override firewall policy destination addresses to control split-tunneling access.
|  | name string / required |  | Address name. Source firewall.address.name firewall.addrgrp.name.

state
string

Choices:
- present
- absent

Deprecated
Starting with Ansible 2.9 we recommend using the top-level 'state' parameter.

Indicates whether to create or remove the object.

theme
string

Choices:
- blue
- green
- red
- melongene
- mariner

Web portal color scheme.

tunnel_mode
string

Choices:
- enable
- disable

Enable/disable IPv4 SSL-VPN tunnel mode.

user_bookmark
string

Choices:
- enable
- disable

Enable to allow web portal users to create their own bookmarks.

user_group_bookmark
string

Choices:
- enable
- disable

Enable to allow web portal users to create bookmarks for all users in the same user group.

web_mode
string

Choices:
- enable
- disable

Enable/disable SSL VPN web mode.

| windows_forticlient_download_url string |  | Download URL for Windows FortiClient.
| wins_server1 string |  | IPv4 WINS server 1.
| wins_server2 string |  | IPv4 WINS server 1.

## 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: Portal.
        fortios_vpn_ssl_web_portal:
          host:  "{{ host }}"
          username: "{{ username }}"
          password: "{{ password }}"
          vdom:  "{{ vdom }}"
          https: "False"
          state: "present"
          vpn_ssl_web_portal:
            allow_user_access: "web"
            auto_connect: "enable"
            bookmark_group:
             -
                bookmarks:
                 -
                    additional_params: "<your_own_value>"
                    apptype: "citrix"
                    description: "<your_own_value>"
                    folder: "<your_own_value>"
                    form_data:
                     -
                        name: "default_name_12"
                        value: "<your_own_value>"
                    host: "<your_own_value>"
                    listening_port: "15"
                    load_balancing_info: "<your_own_value>"
                    logon_password: "<your_own_value>"
                    logon_user: "<your_own_value>"
                    name: "default_name_19"
                    port: "20"
                    preconnection_blob: "<your_own_value>"
                    preconnection_id: "22"
                    remote_port: "23"
                    security: "rdp"
                    server_layout: "de-de-qwertz"
                    show_status_window: "enable"
                    sso: "disable"
                    sso_credential: "sslvpn-login"
                    sso_credential_sent_once: "enable"
                    sso_password: "<your_own_value>"
                    sso_username: "<your_own_value>"
                    url: "myurl.com"
                name: "default_name_33"
            custom_lang: "<your_own_value> (source system.custom-language.name)"
            customize_forticlient_download_url: "enable"
            display_bookmark: "enable"
            display_connection_tools: "enable"
            display_history: "enable"
            display_status: "enable"
            dns_server1: "<your_own_value>"
            dns_server2: "<your_own_value>"
            dns_suffix: "<your_own_value>"
            exclusive_routing: "enable"
            forticlient_download: "enable"
            forticlient_download_method: "direct"
            heading: "<your_own_value>"
            hide_sso_credential: "enable"
            host_check: "none"
            host_check_interval: "49"
            host_check_policy:
             -
                name: "default_name_51 (source vpn.ssl.web.host-check-software.name)"
            ip_mode: "range"
            ip_pools:
             -
                name: "default_name_54 (source firewall.address.name firewall.addrgrp.name)"
            ipv6_dns_server1: "<your_own_value>"
            ipv6_dns_server2: "<your_own_value>"
            ipv6_exclusive_routing: "enable"
            ipv6_pools:
             -
                name: "default_name_59 (source firewall.address6.name firewall.addrgrp6.name)"
            ipv6_service_restriction: "enable"
            ipv6_split_tunneling: "enable"
            ipv6_split_tunneling_routing_address:
             -
                name: "default_name_63 (source firewall.address6.name firewall.addrgrp6.name)"
            ipv6_tunnel_mode: "enable"
            ipv6_wins_server1: "<your_own_value>"
            ipv6_wins_server2: "<your_own_value>"
            keep_alive: "enable"
            limit_user_logins: "enable"
            mac_addr_action: "allow"
            mac_addr_check: "enable"
            mac_addr_check_rule:
             -
                mac_addr_list:
                 -
                    addr: "<your_own_value>"
                mac_addr_mask: "74"
                name: "default_name_75"
            macos_forticlient_download_url: "<your_own_value>"
            name: "default_name_77"
            os_check: "enable"
            os_check_list:
             -
                action: "deny"
                latest_patch_level: "<your_own_value>"
                name: "default_name_82"
                tolerance: "83"
            redir_url: "<your_own_value>"
            save_password: "enable"
            service_restriction: "enable"
            skip_check_for_unsupported_browser: "enable"
            skip_check_for_unsupported_os: "enable"
            smb_ntlmv1_auth: "enable"
            smbv1: "enable"
            split_dns:
             -
                dns_server1: "<your_own_value>"
                dns_server2: "<your_own_value>"
                domains: "<your_own_value>"
                id:  "95"
                ipv6_dns_server1: "<your_own_value>"
                ipv6_dns_server2: "<your_own_value>"
            split_tunneling: "enable"
            split_tunneling_routing_address:
             -
                name: "default_name_100 (source firewall.address.name firewall.addrgrp.name)"
            theme: "blue"
            tunnel_mode: "enable"
            user_bookmark: "enable"
            user_group_bookmark: "enable"
            web_mode: "enable"
            windows_forticlient_download_url: "<your_own_value>"
            wins_server1: "<your_own_value>"
            wins_server2: "<your_own_value>"

## 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.