Subsections of Initial Configuration
Health Checks
Health Checks
In server load balancing deployments, the system uses health checks to poll the members of the real server pool to determine if an application is available. You can also configure additional health checks to poll related servers, and include results for both in the health check rule. For example, you can configure an HTTP health check test and a database server health check test. In a web application that requires access to a database to function, the web server is deemed available only if both the web server and the related database server pass the health check.
Configure a Health Check
- Login to the FortiADC with username
admin
and password fortinet
- Go to Shared Resources → Health Check
- Click on +Create New

- Name: Web_Application
- Type: HTTP
- Port: 0
- Save
Info
Notice that when you change the Type to HTTP, additional options related to HTTP become available, such as method, version, response code, and authentication requirements. For this exercise, we will accept the default values for all other entries except those defined above.

Real Servers
Real Servers
In this section we will define two application servers.
- Login to the FortiADC with username
admin
and password fortinet
- Go to Server Load Balance → Real Server Pool
- Click on the Real Server Tab
- Click on +Create New

- Name: APP-Server1
- Server Type: Static
- Status: Enable
- Type: IP
- Address: 10.1.3.4
- Save

We will repeat the same steps as above to add the second application server.
- Name: APP-Server2
- Server Type: Static
- Status: Enable
- Type: IP
- Address: 10.1.3.5
- Save

Your final result should look like the image below

In the above example, we used IP addresses to define the real servers. However, we also have additional mechanisms, such as FQDN, to define the real servers. Additionally, the server status can be set to “disabled” to ensure FortiADC will not send traffic to the server, or it can be put in “maintenance mode” to allow current sessions to continue while preventing new sessions from being sent to the server. Please refer to the user guide for additional details.
Server Pools
Server Pools
A server pool is a group of servers that work together to handle incoming requests. The servers in a pool share the load, ensuring that no single server becomes overwhelmed. The Application Delivery Controller distributes traffic among the servers in the pool based on predefined criteria such as server capacity, current load, and health status. This setup enhances the availability, scalability, and reliability of the applications and services being delivered.
Real servers are physical servers that form real server pools. The Real Server configuration object specifies the status, type, and IP address or FQDN of the physical server. This Real Server configuration object can then be used as a member to form a real server pool.
When the FortiADC is deployed in L7 mode (reverse proxy), a new TCP session is established from the FortiADC to the real server. A “Real Server SSL Profile” determines how SSL is negotiated between the FortiADC and the real server.
Once a server is added to the pool we will need to define a health check so the FortiADC can determine the status or availability of a server before forwarding a request to the server.
In the next few steps we will define Real Servers and use them to create a Real Server Pool. We will start the process by defining health checks.
- Login to the FortiADC with username
admin
and password fortinet
- Go to Server Load Balance → Real Server Pool
- Click on the Real Server Pool Tab
- Click on +Create New

- Name: Web-Application
- Health Check: enable the toggle for Health Check and add the Web_Application Health Check we created earlier.
- Save
Info
Please note that if there is a requirement to encrypt the traffic between FortiADC and the application servers, you must configure the Real Server SSL profile and enable it within the server pool definition.

- Click on the +Create New new button under Member

- Real Server: APP-Server1 from the drop down menu
- Accept default values for the other options
- Save

- Real Server: APP-Server2 from the drop down menu
- Accept default values for the other options
- Save

Your finished server pool should look like this.

Because we will be using two applications to run our lab, we will repeat the above steps again to define our second Real Server Pool.
Create Real Servers for the 2nd Application
In this section we will define two application servers.
- Login to the FortiADC with username
admin
and password fortinet
- Go to Server Load Balance → Real Server Pool
- Click on the Real Server Pool Tab
- Click on +Create New
- Save

- Name: DVWA1
- Server Type: Static
- Status: Enable
- Type: IP
- Address: 10.1.3.4
- Save

- Name: DVWA2
- Server Type: Static
- Status: Enable
- Type: IP
- Address: 10.1.3.5
- Save
Next we add the servers to a server pool.
- Go to Server Load Balance → Real Server Pool
- Click on the Real Server Pool Tab
- Click on +Create New

- Name: DVWA
- Health Check: enable the toggle for Health Check and add the builtin LB_HLTCHK_ICMP
- Save

- Click +Create New
- Add the Real Servers defined in the previous step to the pool
- While adding the servers, change the listening port to 8080
Your final result should look like the image below

Virtual Servers
Define Virtual Servers
The next step is to configure a virtual server, which defines the type of traffic FortiADC will manage and how it will be processed. For this exercise, we will create two virtual servers, one for each of our web applications, while using the default settings wherever possible.
- Login to the FortiADC with username
admin
and password fortinet
- Go to Server Load Balance → Virtual Server
- Click on +Create New then Advanced Mode

- Name: Juiceshop
- Type: Layer 7

- Go to the General Tab
- Address: 10.1.2.100
- Port: 443
- Interface: Port1 ( from the dropdown Menu)
- Profile: LB_PROF_HTTPS
- Client SSL Profile: LB_CLIENT_SSL_PROF_DEFAULT
- Persistence: LB_PERSIS_SSL_SESS_ID
- Method: LB_METHOD_ROUND_ROBIN
- Real Server Pool: Web-Application

- Go to the Monitoring Tab
- Traffic Log: Enable the Toggle
- FortiView: Enable the Toggle
- Save

- Go to Server Load Balance → Virtual Server
- Click on +Create New then Advanced Mode


- Go to the General Tab
- Address: 10.1.2.101
- Port: 443
- Interface: Port1 (from the dropdown Menu)
- Profile: LB_PROF_HTTPS
- Client SSL Profile: LB_CLIENT_SSL_PROF_DEFAULT
- Persistence: LB_PERSIS_SSL_SESS_ID
- Method: LB_METHOD_ROUND_ROBIN
- Real Server Pool: DVWA

- Go to the Monitoring Tab
- Traffic Log: Enable the Toggle
- FortiView: Enable the Toggle
- Save

- Go to Fortiview → Logical Topology
Your topology should look like the image below

Test Your Configuration
Test Your Configuration
To test for the first time:
- Open an RDP session to the Client
- Open a browser and go to the Juiceshop application: https://10.1.1.100
- Open a browser and go to the DVWA application: https://10.1.1.101/dvwa
Juiceshop

Damn Vulnerable Web Application (DVWA)

This will complete the Initial Configuration Section
Application Access Gateway
Application Access Gateway (AAG)
The Agentless Application Gateway (AAG) in FortiADC provides secure, seamless remote access to enterprise applications and critical resources without requiring agent installation on endpoints or backend servers. Acting as a reverse proxy, AAG publishes a web-based authentication portal that enables clientless access to Remote Desktop Protocol (RDP), Virtual Network Computing (VNC), Secure Shell (SSH), Telnet, and web applications.
Authentication to the AAG App Portal is enforced via Access Policies. These policies define the accepted authentication methods—including Local User, LDAP, RADIUS, or SAML—and determine session behavior such as idle timeout and reauthentication. Application visibility is controlled by App Portals and App Groups.

Key Features and Benefits
AAG in FortiADC delivers secure and scalable remote access with the following capabilities:
- Agentless Access – Eliminates the need for client-side agents, reducing endpoint dependency and administrative burden.
- Federated Authentication Support – Supports SAML 2.0-based authentication using providers like Microsoft Entra ID and FortiAuthenticator.
- Simplified Deployment – Requires no software installation, enabling rapid implementation in secure environments.
- Real-Time Monitoring – Tracks user sessions and access logs for compliance and auditing.
- Application-Layer Security Controls – Enforces IP reputation filtering and geolocation restrictions through the Application Profile attached to the AAG Virtual Server.
Technical Overview
Traditional vs. Agentless Application Access
Traditional remote access solutions often require software agents installed on client devices or backend systems to enforce authentication and security policies. This introduces compatibility constraints, maintenance overhead, and security risks associated with unmanaged endpoints.
FortiADC’s Agentless Application Gateway (AAG) eliminates these dependencies by acting as a reverse proxy, terminating client sessions at the gateway and forwarding traffic to backend resources based on authentication and policy enforcement mechanisms.
Authentication Flow and Identity Integration
AAG supports the following authentication workflow:
- The user accesses the AAG App Portal via browser.
- FortiADC evaluates the Access Policy and enforces the configured authentication method by:
- Validating credentials against Local User, LDAP, or RADIUS servers.
- Redirecting to a SAML 2.0 Identity Provider (e.g., FortiAuthenticator, Microsoft Entra ID) for federated login.
- Upon successful authentication, FortiADC grants access to the App Portal associated with the user’s session.
The user can view and launch their assigned application bookmarks for services such as RDP, SSH, VNC, Telnet, and web apps.

Multi-factor authentication (MFA), OAuth, and AD FS Proxy are not currently supported for AAG access.
Architecture and Components
AAG operates at Layer 7 as an SSL-terminating reverse proxy, inspecting client requests, performing authentication, and forwarding traffic to internal resources based on predefined access policies.
- Client-SSL termination ensures encrypted client communication while enabling inspection and policy enforcement at the gateway.
- Backend authentication passthrough allows seamless integration with existing enterprise identity providers.
- Session persistence mechanisms maintain continuity for authenticated sessions.
- Real-time logging and monitoring tracks user activity and enforces compliance requirements.
Control Plane Components
The control plane in AAG manages authentication, policy enforcement, session handling, and application publishing. It acts as the centralized management layer, integrating with identity providers (IdPs) and enforcing security policies based on user roles, device attributes, and contextual data. By decoupling authentication and access control from the data plane, the control plane ensures efficient session management while maintaining high security.
App Portal Virtual Server (L7 Reverse Proxy)
- Handles user login, authentication enforcement, and session initiation.
- Performs SSL termination and supports IPv4/IPv6.
- Integrates with Access Policies and federated identity providers.
Authentication and Authorization Services
- Supports local and remote identity verification through Access Policies.
- Compatible with LDAP, RADIUS, and SAML IdPs (e.g., FortiAuthenticator, Microsoft Entra ID).
Application Portal and Bookmark Management
- Hosts a centralized, web-based portal to give users access to published applications.
- Supports dynamic bookmarks mapped via LDAP attributes for personalized access.
Data Plane Components
The data plane in AAG is responsible for handling user traffic, forwarding requests to backend applications, and enforcing security measures in real time. It processes encrypted sessions, inspects traffic for potential threats, and applies policy-based access controls. By managing the actual data exchange between users and applications, the data plane ensures that only authorized requests reach enterprise resources while maintaining performance and security.
Application Publishing and Session Management
- Delivers HTML5-based clientless access for RDP, VNC, SSH, and Telnet.
- Supports direct RDP and RemoteApp connections for seamless interaction.
- Enforces RDP attribute-based policies to regulate session parameters.
Access Control and Security Enforcement
- Enforces IP Reputation, Geo IP Blocklist, and Allowlist through Application Profiles.
- Logs session details and access records for diagnostics and compliance.
This architecture ensures a scalable, policy-driven remote access solution while maintaining strong security controls.
AAG Configuration Components in FortiADC
The Agentless Application Gateway (AAG) configuration in FortiADC consists of two primary components: App Groups and App Portals. These components define how applications are published and accessed by authenticated users.
App Portal Configuration
An App Portal defines the web-based authentication interface where users log in and access applications. Each App Portal is associated with an App Group, controlling which applications are available to authenticated users.
- Defines the authentication portal for end users.
- Associates App Groups to control user access.
- Supports TLS encryption for secure access.
For details, see Configuring an App Portal.
Supported Application Types in FortiADC AAG:
- Web RDP – Provides full desktop access via Remote Desktop Protocol (RDP) through an HTML5 browser session. No RDP client is required on the endpoint.
- Native RDP – Enables traditional RDP access using the native RDP client installed on the user’s device. Requires endpoint support for Microsoft RDP.
- RemoteApp – Launches individual Windows applications published via Remote Desktop Services, rather than a full desktop session.
- Web VNC – Offers browser-based access to VNC-enabled systems for remote control of graphical desktops.
- Web SSH – Delivers secure command-line access to Linux and Unix systems through a browser-based SSH terminal.
- Web Telnet – Enables text-based terminal sessions to legacy devices or servers using the Telnet protocol, directly within the browser.
Capacity Guidelines (Per VDOM)
To ensure efficient performance and prevent configuration errors, observe the following capacity limits per VDOM:
Item | Maximum Count |
---|
App Portals | 1024 |
App Groups | 1024 |
App Groups per App Protal (sections) | 32 |
Bookmarks per App Group | 256 |
IdPs per Access Policy | 8 |
Workflow for Configuring AAG in FortiADC

Step 1: Configure User Authentication
Select the appropriate authentication method based on your deployment requirements.
- For local authentication, create a Local User and assign it to a User Group.
- For remote authentication, configure a Remote Server (e.g., LDAP, RADIUS) and create a User Group.
- For SAML authentication, set up SAML IDP and SAML SP for federated authentication.
For recommendations, see Selecting the Optimal Authentication Method for AAG.
Step 2: Configure the Agentless Application Gateway (AAG)
Step 3: Configure Access Policies and Authorization
Apply policies to enforce authentication and authorization.
- Define an Access Policy that enforces the selected authentication method. For details, see Access Policy.
- Assign User Groups to the App Portal based on access requirements. For details, see Configuring user groups.
Step 4: Configure Virtual Server for Application Access
Set up application delivery through a virtual server.
- Use the APP Access Application Profile to configure IP Reputation, Geo IP Blocklist, and Geo IP Allowlist.
- Deploy a Layer 7 Virtual Server and assign the APP Access profile, Access Policy, and enable RDP Proxy (if required).
- Associate the App Portal with the virtual server.
For details, see Deploying the AAG Virtual Server.
Subsections of Application Access Gateway
Authentication for AAG
Selecting Optimal Authentication for AAG
Choosing the appropriate authentication method for FortiADC’s Agentless Application Gateway (AAG) is critical for securing access to applications while ensuring compatibility with existing identity management frameworks. This section provides a structured approach to determining the most suitable authentication mechanism based on user types, security policies, and infrastructure requirements.
Authentication Methods and Deployment Considerations
FortiADC supports multiple authentication mechanisms for AAG access, all enforced through Access Policies. Each authentication method is suited to specific deployment scenarios. The table below outlines the key characteristics of each method:
Authentication Method | Best Suited For | Key Advantages |
---|
Local User Authentication | Small-scale or standalone deployments without external authentication infrastructure | Self-contained user management with minimal configuration, allowing direct user administration within FortiADC |
Remote User Authentication (LDAP, RADIUS) | Enterprises with centralized identity systems | Integration with Active Directory or RADIUS servers |
SAML Authentication | Federated authentication across domains/clouds | Seamless login experience via trusted Identity Providers (IdPs), including FortiAuthenticator and Microsoft Entra ID |
Multi-factor authentication (MFA) is not currently supported in the initial AAG release. Although FortiADC supports MFA in general access policies, these features are not enforced at the AAG App Portal level.
Authentication Deployment Considerations
Local User Authentication
- Local user accounts are defined and stored directly on FortiADC. This method is suitable for small deployments or administrative access when external identity systems are unavailable. Local users can be assigned to User Groups and linked to App Portals via Access Policies.
- Pros: Simple configuration, independent of external systems
- Cons: Manual account provisioning, limited scalability
For details, see Local User.
LDAP/RADIUS Authentication
AAG integrates with LDAP directories (e.g., Microsoft Active Directory) and RADIUS servers to authenticate users based on corporate credentials. This allows centralized user account management and simplifies integration into existing identity infrastructures.
- Supports: Secure credential validation, dynamic group mapping
- Does not support: MFA enforcement for AAG App Portal access
For details, see Using an LDAP authentication server and Using a RADIUS authentication server.
SAML-Based Authentication
SAML is the preferred method for organizations using federated identity platforms such as FortiAuthenticator or Microsoft Entra ID (formerly Azure AD). FortiADC acts as a SAML 2.0 Service Provider (SP), redirecting authentication requests to the Identity Provider (IdP).
Benefits:
- Centralized authentication and single sign-on (SSO)
- Passwordless experience through external IdP
- Support for cross-domain identity federation
Aligning Authentication with Security Policies
Authentication settings should be configured in conjunction with FortiADC’s access control policies, session management rules, and logging mechanisms to ensure a secure and compliant deployment.
By selecting an appropriate authentication method—such as Local User, LDAP, RADIUS, or SAML—and integrating with centralized identity services where applicable, organizations can strengthen authentication workflows and improve user experience in their AAG deployments.
Configuring an App Group
Configuring an App Group
An App Group is a logical container that organizes application bookmarks—each representing a backend resource such as an RDP host, SSH server, or internal web application. App Groups are assigned to App Portals, which define the user-facing interface through which authenticated users access their authorized applications.
Each App Group can contain bookmarks of various types (Web, RDP, SSH, VNC, etc.), and users accessing a given App Portal will only see the applications associated with its linked App Groups.

To create an App Group:
- Navigate to Application Access Manager > Agentless Application Gateway.
The configuration page displays the App Portal tab.
- Click the App Group tab.
- Click Create New to display the configuration editor.
- In the Name field, specify a unique name for the App Group configuration object. Valid characters are A-Z, a-z, 0-9, _, and -. No space is allowed.
- Click Save.
Once the App Group is created, the App Bookmark section becomes configurable.
Each VDOM supports up to 1024 App Groups, but a single App Portal can be associated with a maximum of 32 App Groups.
App Bookmark Configuration Overview
The App Bookmark configuration workflow is entirely dependent on the specific protocol. Each App Bookmark within an App Group is configured with application-specific parameters to ensure optimal access control and user experience. Once configured, an App Group can be added to an App Portal, making the applications available to authenticated users. The steps below outline the basic workflow to configure an App Bookmark.
- Go to Application Access Manager > Agentless Application Gateway
The configuration page displays the App Portal tab.
- Click the App Group tab.
- Create a new App Group or edit an existing configuration.
- Under the App Bookmark section, click Create New to display the configuration editor.
- In the Name field, specify a unique name for the App Bookmark configuration object. Valid characters are A-Z, a-z, 0-9, _, and -. No space is allowed.
- From the Type field, select an application from the drop-down menu. This selection determines the parameters to configure. To view the configuration parameters for each application, see App Bookmark Types where you can navigate to the desired application type.
- Click Save to save the configuration.
Repeat the steps to add up to 256 Bookmarks per App Group.
App Bookmark Types
Each App Bookmark Type requires specific parameters to be configured. The following table lists the supported Types and their usage. Use the links under the Application Type column to navigate to the configuration parameters applicable to each App Bookmark Type.
Application Type | Usage |
---|
Web RDP | Provides web-based remote desktop access via an HTML5 client, eliminating the need for an RDP client on the user’s device. |
Native RDP | Establishes a direct connection to an RDP server, requiring an installed RDP client on the user’s device. |
Remote App | Enables access to specific Windows applications over RDP without exposing the full desktop session. |
Web VNC | Grants browser-based access to remote desktops running Virtual Network Computing (VNC). |
Web SSH | Allows command-line access to remote Linux or Unix servers via a secure, browser-based SSH session. |
Web Telnet | Provides browser-based access to Telnet-enabled devices for legacy terminal access. |
Note: For application types that require login credentials—such as RDP, VNC, and SSH—you must specify a username and password within the App Group configuration. When cloning an App Group, all passwords are automatically cleared and must be re-entered manually to maintain secure handling.
Web RDP
Web RDP (Remote Desktop Protocol) provides web-based access to a remote Windows desktop session without requiring an RDP client. It allows users to connect to Windows systems securely through their browser, making it ideal for remote administration, virtual desktop access, and troubleshooting.

Parameter | Description |
---|
Host | The IP address or hostname of the target Windows machine. |
Port | The port used for the RDP connection (default: 3389, range: 1-65535). |
Description | Optional description for the Web RDP bookmark. |
Advanced Settings | |
Single Sign-On | Determines whether Single Sign-On is used. |
| - Disable (default) — manual login required. You will need to set the Username and Password for this login. |
| - App Portal Login — uses portal credentials. |
Username | The username for authentication when Single Sign-On is disabled. |
Password | The password for authentication when Single Sign-On is disabled. |
SSO Credential | Appears when Single Sign-On is set to App Portal Login. The SSO Credential is set to use the App Portal Login by default. |
Color Depth | Sets the color depth for the remote session. |
| - 8 Bit |
| - 16 Bit (Default) |
| - 32 Bit |
Screen Width | Specifies the width of the remote session display (default: 1024, range: 200-8192). |
Screen Height | Specifies the height of the remote session display (default: 768, range: 200-8192). |
Security | Defines the security protocol for the RDP session. |
| - Allow the server to choose the type of security – Uses the server’s configured security settings. This is the default option. |
| - Standard RDP security – Uses legacy RDP encryption. |
| - Network level authentication – Requires authentication before establishing the RDP session. |
| - TLS encryption – Uses Transport Layer Security (TLS) for encrypted communication. |
Clipboard | Enables or disables clipboard sharing between the remote session and the local machine. |
Native RDP
Native RDP allows users to launch a full remote desktop session using an installed RDP client. Unlike Web RDP, which runs in a browser, Native RDP opens the session in the system’s RDP client, providing a more responsive experience and leveraging full client-side capabilities, including peripheral redirection, multiple monitor support, and enhanced performance.

Parameter | Description |
---|
Host | The IP address or hostname of the target Windows machine. |
Port | The port used for the RDP connection (default: 3389, range: 1-65535). |
Description | Optional description for the Native RDP bookmark. |
Advanced Settings | |
Redirect Clipboard | Allows clipboard sharing between the remote and local machine. |
Redirect Drives | Enables access to local drives within the remote session. |
Redirect Printers | Allows remote access to local printers. |
Redirect Microphone | Enables microphone redirection for remote audio input. |
Redirect Camera | Enables camera redirection for video conferencing applications. |
Multiple Monitor Support | Allows the remote session to span multiple monitors. |
Keyboard Hook Mode | Defines how keyboard shortcuts (e.g., Alt+Tab) are handled in the session. |
| - On Local – Keyboard shortcuts remain on the local machine. |
| - On Remote Desktop Focus – Shortcuts apply to the remote session only when it is the active window. |
| - On Remote Desktop Full Screen – Shortcuts apply to the remote session only when in full-screen mode. This is the default option. |
| - On Remote App Focus – Shortcuts apply to the remote application window, not the full desktop session. |
Custom Parameters | Additional RDP client parameters for advanced configurations. |
RemoteApp
RemoteApp provides access to specific applications hosted on a remote Windows server without opening a full remote desktop session. Unlike Web RDP, which grants access to the entire remote desktop environment, RemoteApp launches only the selected application in a separate window, making it appear as if it is running locally on the user’s device. This approach enhances security by restricting access to only approved applications and improves the user experience by integrating remote applications seamlessly into the local desktop environment.
Note: When publishing RemoteApp bookmarks
- Privacy and security settings, such as camera redirection, must be properly configured on the RDP session host.
- Redirect-printer support requires that the appropriate printer driver is installed on the RDP server before use.

Parameter | Description |
---|
Host | The IP address or hostname of the RemoteApp server. |
Port | The port used for the RemoteApp connection (default: 3389, range: 1-65535). |
Description | Optional description for the RemoteApp bookmark. |
App Name | The display name of the RemoteApp application. |
App Path | The full path to the executable of the RemoteApp. |
App Parameters | Additional command-line arguments for the RemoteApp. |
Advanced Settings | |
Redirect Clipboard | Allows clipboard sharing between the remote and local machine. |
Redirect Drives | Enables access to local drives within the RemoteApp session. |
Redirect Printers | Allows remote access to local printers. |
Redirect Microphone | Enables microphone redirection for remote audio input. |
Redirect Camera | Enables camera redirection for video conferencing applications. |
Multiple Monitor Support | Allows the RemoteApp session to span multiple monitors. |
Keyboard Hook Mode | Defines how keyboard shortcuts (e.g., Alt+Tab) are handled in the session. |
| - On Local – Keyboard shortcuts remain on the local machine. |
| - On Remote Desktop Focus – Shortcuts apply to the remote session only when it is the active window. |
| - On Remote Desktop Full Screen – Shortcuts apply to the remote session only when in full-screen mode. This is the default option. |
| - On Remote App Focus – Shortcuts apply to the remote application window, not the full desktop session. |
Custom Parameters | Additional RDP client parameters for advanced configurations. |
Web VNC
Web VNC (Virtual Network Computing) enables web-based remote access to graphical desktops on Linux, macOS, and other VNC-compatible systems. It is commonly used for remote system administration and technical support.

Parameter | Description |
---|
Host | The IP address or hostname of the VNC server. |
Port | The port used for the VNC connection (default: 5900, range: 1-65535). |
Description | Optional description for the Web VNC bookmark. |
Advanced Settings | |
Username | The username for VNC authentication, if required. |
Password | The password for VNC authentication, if required. |
Color Depth | Sets the color depth for the VNC session. |
| - 8 Bit |
| - 16 Bit (Default) |
| - 32 Bit |
Screen Width | Specifies the width of the VNC session display. The default value is 1024, with a valid range of 200-8192. |
Screen Height | Specifies the height of the VNC session display. The default value is 768, with a valid range of 200-8192. |
Clipboard | Enables or disables clipboard sharing between the remote and local system. |
Web SSH
Web SSH (Secure Shell) provides secure, web-based command-line access to remote Linux and Unix systems. It is commonly used for server administration and troubleshooting.

Parameter | Description |
---|
Host | The IP address or hostname of the SSH server. |
Port | The port used for the SSH connection (default: 22, range: 1-65535). |
Description | Optional description for the Web SSH bookmark. |
Advanced Settings | |
Username | The SSH login username. |
Password | The SSH login password (if password authentication is used). |
Web TELNET
Web Telnet provides browser-based access to network devices and legacy systems that use the Telnet protocol. It is commonly used for managing routers, switches, and older mainframe systems.

Parameter | Description |
---|
Host | The IP address or hostname of the Telnet server. |
Port | The port used for the Telnet connection (default: 23, range: 1-65535). |
Description | Optional description for the Web Telnet bookmark. |
Configuring an App Portal
Configuring an App Portal
An App Portal in FortiADC serves as a centralized, browser-based interface that allows end-users to securely access applications published through the Agentless Application Gateway (AAG). It aggregates applications from one or more App Groups and integrates with the configured Access Policy to enforce authentication and authorization based on user identity and group membership.
From the App Portal configuration page, administrators can customize the portal’s appearance and structure. A Caption can be entered to display descriptive text in the top banner of the portal interface. App Group configurations are added as Members of the App Portal, with each Member appearing as a dedicated tab within the portal. The Title field within each Member configuration allows administrators to define the label that appears on the corresponding tab. Each tab provides access to the set of application bookmarks defined in its associated App Group.

Before you begin:
Ensure that you have already configured the necessary App Groups containing the application bookmarks that will be made available to end-users through the App Portal. For details, see Configuring an App Group.
To configure an App Portal:
- Navigate to Application Access Manager > Agentless Application Gateway.
The configuration page displays the App Portal tab.
- Click Create New to display the configuration editor.

- In the Name field, specify a unique name for the App Portal configuration object. Valid characters are A-Z, a-z, 0-9, _, and -. No space is allowed.
- In the Caption field, enter the text you want to display in the top banner of the App Portal. This can be used to provide a welcome message, organization name, or other identifying information for users.
- In the User Session Life Time field, specify the maximum duration (in seconds) that a user session can remain idle before automatic logout. The default is 1800 seconds. Valid values range from 60 to 86400 seconds.
- Click Save. Once the App Portal is created, the Member section becomes configurable.
- Under the Member section, click Create New to display the configuration editor.

- In the Title field, specify the label that will appear as the tab header for the associated App Group within the App Portal interface.
- In the App Group field, select a predefined App Group configuration from the drop-down list.
- Click Save to apply the configuration and close the App Portal Member dialog. You can add up to 32 members to a single App Portal.
- Click Save to apply all changes to the App Portal and its member settings.
Note: Each VDOM supports up to 1024 App Groups, but a single App Portal can be associated with a maximum of 32 App Groups.
Deploying the AAG Virtual Server
Deploying the AAG Virtual Server
After configuring the App Portal and defining App Groups, the next step in deploying the Agentless Application Gateway (AAG) is to create a Layer 7 Virtual Server. This server acts as the central access point for authenticated users, routing traffic through the App Portal and enforcing security policies through access control.
FortiADC introduces a new application profile type—APP Access—to support agentless access use cases. This profile exposes AAG-specific parameters such as RDP Proxy Access Token Timeout and RDP Online User Access Limit. When bound to a Virtual Server, it enables AAG-specific capabilities, including optional RDP proxy functionality.

Configuring the APP Access profile
Before deploying the Virtual Server, an Application Profile of type APP Access must be configured. This profile defines protocol timeouts, DNS behavior, IP-based filtering, and RDP-specific limits for agentless access.
You can create a custom profile or use the predefined LB_PROF_APP_ACCESS profile.
To configure an APP Access Profile:
- Navigate to Server Load Balance > Application Resources. The configuration page displays the Application Profile tab.
- Click Create New to display the configuration editor.
- In the Name field, specify a unique name for the custom Application Profile configuration object. Valid characters are A-Z, a-z, 0-9, _, and -. No space is allowed. Once saved, the name of a Application Profile configuration cannot be changed.
- From the Type field, select APP Access.
- Configure the settings for the APP Access profile type.
- Click Save to save the configuration.

Parameter | Description |
---|
Client Header Timeout | Maximum time (in seconds) FortiADC waits to receive the complete HTTP headers from the client. The default value is 60 seconds, and the valid range is 1-86400 seconds. |
Client Body Timeout | Maximum time (in seconds) FortiADC waits to receive the complete HTTP body after headers are received. The default value is 60 seconds, and the valid range is 1-86400 seconds. |
Connect Timeout | Maximum time (in seconds) to wait for a connection attempt to a backend server to succeed. The default value is 5 seconds, and the valid range is 1-86400 seconds. |
IP Reputation | Enable to apply FortiGuard’s IP reputation service to block or allow traffic based on IP threat scores. See Managing IP Reputation policy settings. |
Geo IP Blocklist | Select a Geo IP block list configuration object to deny access from specific countries or regions. See Using the Geo IP block list. |
Geo IP Allowlist | Select a Geo IP allowlist configuration object to explicitly permit access from specific regions. See Using the Geo IP allowlist. |
DNS Override | Enable to override the system DNS settings with custom DNS servers. |
Primary DNS | The Primary DNS option is available if DNS Override is enabled. Specify the IP address of the primary DNS server. |
Secondary DNS | The Secondary DNS option is available if DNS Override is enabled. Specify the IP address of the secondary DNS server. |
RDP Proxy Access Token Timeout | Defines how long the RDP access token remains valid in seconds. The default value is 90 seconds, and the valid range is 30-600 seconds. |
RDP Online User Access Limit | Enable to limit the number of concurrent RDP sessions per user through the App Portal. |
Predefined APP Access Profile: LB_PROF_APP_ACCESS
Parameter | Default Value |
---|
Client Header Timeout | 60 |
Client Body Timeout | 60 |
Connect Timeout | 5 |
IP Reputation | Disabled |
Geo IP Blocklist | None |
Geo IP Allowlist | None |
DNS Override | Disabled |
RDP Proxy Access Token Timeout | 90 |
RDP Online User Access Limit | Disabled |
Configuring the Virtual Server for AAG
Once the APP Access profile and Access Policy are in place, configure the Virtual Server that delivers the App Portal functionality.
To configure the Virtual Server:
- Navigate to Server Load Balance > Virtual Server. The configuration page displays the Virtual Server tab.
- Click Create New > Advanced Mode to display the configuration editor.
- Configure the following key Virtual Server settings:
- In the Basic tab, select the virtual server Type as Layer 7.
- In the General tab, configure the following Configuration settings:
- Address — Specify the IP address that the virtual server will bind to.
- Port — Enter the listening port for user connections (e.g., 443 for HTTPS).
- Connection Limit — Optionally, define a maximum number of concurrent connections.
- Interface — Select the network interface on which the virtual server will listen.
- In the General tab, configure the following Resources settings:
- Profile — Select a predefined or user-defined APP Access profile. This enables agentless access features and exposes AAG-specific settings. The configuration options will adjust to what is applicable to this profile type. For more information, see Configuring the APP Access profile.
- Access Policy — Attach the corresponding Access Policy that enforces authentication and authorization rules for App Portal access.
- RDP Proxy — If RDP access is required, enable the RDP Proxy option. This activates RDP-specific settings configured in the APP Access profile.
- RDP Listening Port — Defines the TCP port on which FortiADC listens for inbound RDP client connections. This setting is only visible when RDP Proxy is enabled and applies specifically to Native RDP and RemoteApp bookmarks. The default port is 3389, and the valid range is 1–65535.
- Click Save.
The configured Virtual Server will now route users through the App Portal, enabling secure, agentless access to internal web and desktop applications.
Note: The visibility of Native RDP and RemoteApp bookmarks in the App Portal depends on whether RDP Proxy is enabled on the associated Virtual Server.
By default, RDP Proxy is disabled, and any configured Native RDP or RemoteApp bookmarks will not appear in the App Portal until it is enabled.
To ensure these application types are accessible to users, enable RDP Proxy in the Virtual Server configuration.
Accessing the AAG App Portal
Accessing the AAG App Portal
After setting up the App Portal and deploying the Agentless Application Gateway (AAG) Virtual Server with the appropriate Access Policy, users can securely log in through their browser to access internal enterprise applications. The AAG App Portal serves as a centralized interface for launching web, desktop, and terminal-based resources—no client agents required.
This section provides an overview of the end-user experience, including authentication flow, portal navigation, application access, and session handling.
Topics Covered:
- Signing In and Session Management – Authentication methods and session behavior.
- Exploring the AAG Portal Interface – Layout and navigation overview.
- Launching Applications – Accessing applications such as RDP, SSH, and web apps.
- Managing Sessions and Logging Out – Viewing active sessions and secure logout.
Signing In and Session Management
Users authenticate based on the method defined in the Access Policy bound to the AAG Virtual Server. FortiADC supports a range of authentication mechanisms, including:
- Local authentication – Users enter credentials defined on FortiADC.
- Remote authentication – Users authenticate via LDAP, RADIUS, or SAML-based identity providers.
Once authenticated, FortiADC initializes a user session, enforces idle timeouts, and supports reauthentication if required by policy.

Exploring the AAG Portal Interface
Upon successful login, users are presented with the AAG App Portal interface. The interface is browser-based, intuitive, and dynamically reflects the user’s access permissions.
The portal includes:
- Application Tiles – Icons representing RDP, SSH, VNC, or web-based resources.
- App Grouping – Applications grouped by assigned App Group.
- User Information – Includes user information and option to logout.

Launching Applications
Users can launch applications directly from the portal without requiring any local agents. Supported connection types include:
- Web Applications – Opens in a new tab or embedded frame.
- Remote Desktop (RDP) – Rendered using HTML5 viewer via FortiADC proxy.
- SSH / Telnet / VNC – Browser-based terminal access.
RDP connections honor the settings configured in the APP Access profile:
- RDP Proxy Access Token Timeout – Controls how long a token remains valid.
- RDP Online User Access Limit – Limits the number of concurrent RDP sessions per user.

Managing Sessions and Logging Out
Users can track their active sessions within the portal and safely log out once done. FortiADC enforces session cleanup and authentication token removal on logout.
Session-related capabilities:
- Switching Between Applications – Seamless navigation without reauthentication.
- Manual Logout – Ends session and removes tokens.

AAG Implementation Scenarios
AAG Implementation Scenarios
FortiADC’s Agentless Application Gateway (AAG) is designed to provide secure, browser-based access to internal applications without requiring client-side agents or VPNs. AAG is especially effective in environments where users access sensitive resources from remote locations, unmanaged devices, or hybrid cloud infrastructures.
This section outlines three practical deployment scenarios where FortiADC AAG can be applied to meet specific organizational needs:
- Secure Remote Access for Distributed Workforces
- Unified Access to Hybrid Cloud Applications
- Secure, Clientless RDP Access for Remote and BYOD Users
Each scenario presents specific challenges, followed by a technical walkthrough of the AAG solution and the resulting benefits.
Scenario 1: Secure Remote Access for Distributed Workforces

The Challenge:
Organizations need to grant secure, browser-based access to internal applications for remote employees and contractors—without relying on VPN clients or exposing internal systems to unmanaged endpoints.
The AAG Solution:
FortiADC AAG enables secure, clientless access to internal web, SSH, and RDP services via the browser-based App Portal. A Layer 7 Virtual Server acts as the centralized access point, enforcing user authentication and session handling through Access Policies. APP Access profiles and RDP Proxy support RDP for session delivery, while authentication is handled using LDAP, RADIUS, or SAML-based identity providers. Application access is controlled through App Groups and bookmarks assigned to the user’s portal session.
Outcome:
- Simplified access from unmanaged or non-compliant devices
- Reduced VPN complexity and administrative overhead
- Centralized authentication and session-level visibility
Scenario 2: Unified Access to Hybrid Cloud Applications

The Challenge:
Enterprises operating in hybrid environments struggle to provide secure, seamless access to both cloud and on-premises applications while maintaining consistent identity and policy enforcement.
AAG Solution:
FortiADC AAG centralizes access across environments using multiple Virtual Servers grouped by application location. Each is configured with APP Access profiles and Access Policies tied to federated authentication methods such as SAML. Unified access control policies ensure identity-aware enforcement and consistent auditing.
Outcome:
- Single point of access for hybrid app environments
- Reduced operational complexity via centralized policy management
- Strengthened compliance through unified logging and identity-based controls
Scenario 3: Secure, Clientless RDP Access for Remote and BYOD Users

The Challenge:
Organizations need to provide secure remote desktop access for users on BYOD (Bring Your Own Device) or unmanaged endpoints—without relying on installed RDP clients or introducing the complexity of VPN deployments.
AAG Solution:
FortiADC’s Agentless Application Gateway (AAG) enables HTML5-based RDP access directly through a web browser. A Layer 7 Virtual Server configured with an APP Access profile and RDP Proxy handles authentication and session forwarding. Access Policies authenticate users against LDAP or RADIUS, and the APP Access profile enforces session constraints, such as RDP access token timeouts and user session limits. Optional controls—such as clipboard restriction and file transfer blocking—can be configured on the backend RDP server for enhanced endpoint security.
Outcome:
- Fully browser-based RDP access from unmanaged devices
- Reduced client and VPN management overhead
- Secure session handling with enforced timeouts and session visibility
AAG Quick Start Lab Guide
AAG Quick Start Lab Guide
A Quick Start Lab Guide on how to set up the Application Access Gateway using a local user account.
Workflow:
- Configure a local user
- Configure a user group
- Configure the AAG Application Group
- Configure the AAG Application Portal
- Configure the AAG Application Access Policy
- Configure a Virtual Server for the AAG
- Test
Configure a Local User
Configure A local User
- Login to the FortiADC with the username
admin
and password fortinet
- Go to Application Access Manager → Local User
- Click +Create New

- Name: user1
- Password: user1
- Save

Configure a User Group
Configure a User Group
- Go to Application Access Manager → User Group
- Click +Create New
- Group Name: AAG-Users
- Save
- Click +Create New

- Type: Local
- Local User: user1
- Save

Configure the AAG Application Group
Configure the AAG Application Group
- Go to Application Access Manager → Agentless Application Gateway → App Group
- Click +Create New

- Name: AAG-App-Group
- Save
- Click +Create New

- Name: DVWA-SSH
- Type: Web-SSH
- Host: 10.1.3.4
- Port: 22
- Set the Advanced Setting flag to ON
- Username: xperts2025
- Password: *********
- Save
- Save
Configure the AAG Application Portal
Configure the AAG Application Portal
- Go to Application Access Manager → Agentless Application Gateway → App Portal
- Click +Create New

- Name: AAG-App-Portal
- Save
- Click +Create New

- Title: AAG-App-Portal
- App Group: AAG-App-Group
- Save
- Save
Configure the AAG Application Access Policy
Configure a Virtual Server for the AAG
Configure a Virtual Server for the AAG
- Go to Server Load Balance → Virtual Server
- Click +Create New


Info
There is no need to save yet. We will go to the General Tab and the Monitoring Tab then save the whole thing.

- Address: 10.1.2.100
- Port: 9443
- Interface: Port1
Info
The Profile needs to be an AAG Profile.
- Profile: LB_PROFILE_APP_ACCESS
- Access Policy: AAG-Access-Policy
No need to save yet.
- Click on the Monitoring Tab

- Toggle the Traffic Log flag to ON
- Save
Info
Traffic logging should be used mainly for debugging; traffic logging will consume extensive memory and CPU resources. Please disable traffic logging after debugging is complete.
Go to FortiView → Logical Topology
You should see your Application Access Gateway.

Test
Test AAG Access
- RDP to the Client
- Open Firefox
- Go to https://10.1.1.100:9443

- Username: user1
- Password: user1

You should see your Application App Group
Click the DVWA-SSH App Group

You should have access to the DVWA server via SSH.
AAG Debugging and Troubleshooting
AAG Debugging and Troubleshooting
FortiADC provides both GUI and CLI-based diagnostic tools to monitor and troubleshoot Agentless Application Gateway (AAG) activity. These tools allow administrators to inspect authentication events, session status, traffic usage, and connection behavior in real time.
This information is also available in the FortiADC 8.0.0 Administration Guide and CLI Reference:
GUI-Based Monitoring and Logging
FortiView – User Session
Navigate to FortiView > User Session to view real-time information about users currently authenticated through the AAG App Portal.

The table displays the following fields:
- VS – Virtual Server name handling the session
- Session ID – Unique identifier for the user session
- User ID – Internal user identifier
- User Name – Authenticated username
- Source IP – Origin IP address of the client
- IDP Rule – Identity provider rule that applied
- User Group – Assigned group membership
- Duration (s) – Time the session has been active
- Expire (s) – Remaining time before session expiration
This dashboard is useful for tracking session state, identifying active users, and confirming authentication success.
Event Logs – Authentication Activity
To review authentication behavior and diagnose login issues, navigate to Log & Report > Event Log and filter by User.

Each log entry provides detailed contextual information, including:
- Date – The date the event occurred
- Time – The timestamp of the event
- Log Level – Severity or verbosity of the log (e.g., notice, warning)
- User – Username of the individual attempting access
- User Group – Group membership associated with the user
- Action – Type of authentication event (e.g., login, logout, failure)
- Status – Result of the event (e.g., success, failed)
- Reason – High-level reason code for the event (e.g., invalid credentials)
- Description – Summary of the action performed
- Message – Detailed message or explanation from the system
- Vdom – Virtual domain where the event occurred
- Policy – Access Policy name that governed the authentication flow
Use this log view to validate user authentication behavior, troubleshoot policy misconfigurations, or verify enforcement across user groups and virtual domains.
Traffic Logs – Application Access
Navigate to Log & Report > Traffic Log and filter by Application Access to analyze usage and connection details for all applications accessed through the AAG App Portal.

Each entry includes:
- Date, Time, Log Level
- Duration (ms)
- Received Bytes, Sent Bytes
- Protocol, Service
- Source, Source Port
- Destination, Destination Port
- Translated Source/Destination Port
- Virtual Server
- Action (accept, deny)
- APP Type – Application type (e.g., RDP, SSH)
- User Group
- Source Country, Destination Country
- Bookmark – The application bookmark used
- AppGroup – The App Group containing the bookmark
This log provides visibility into user activity, bandwidth usage, and resource access patterns.
CLI-Based Diagnostic Tools
App-Publish Diagnostic Commands
Use the diagnose app-publish command set to inspect AAG configuration and manage user sessions directly from the CLI:
Command | Description |
---|
show-config | Displays the current AAG configuration, including App Portals, App Groups, and bookmarks. |
show-user | Lists all currently authenticated AAG users and session details. |
show-connection | Displays active application connections established through the AAG portal (e.g., RDP, SSH sessions). |
kickoff-user | Terminates the session of a specific AAG user. Useful for forced logout or session resets. |
clear-user | Clears all tracked session state for a specified user. |
clear-connection | Terminates all AAG application connections for a specific user or session. |
Example:

Module-Level Debug Logging
To enable verbose logging for the AAG module (app-publish), use the following command to view runtime behavior and debug issues:
diagnose debug module fnginx app-publish
This command provides backend insight into:
- Portal rendering behavior
- Bookmark resolution and visibility issues
- Session negotiation
- Authentication handoff and result mapping
- Application proxy session establishment and teardown
Enable debug output when troubleshooting issues related to user login failures, bookmark rendering problems, or connection errors.
Example:
