Introduction
In modern enterprise environments, providing secure remote access to corporate resources is essential. FortiGate firewalls offer robust VPN capabilities that can be deployed without requiring dedicated VPN client software through agentless VPN configurations. When combined with Mobile Device Management (MDM) solutions like VMware Workspace ONE and Microsoft Intune, organizations can automatically provision VPN configurations to user devices at scale, ensuring consistent security policies and simplified end-user experience.
This guide walks through configuring FortiGate for agentless VPN access using built-in operating system VPN clients (IKEv2/IPsec) and deploying these configurations automatically through enterprise MDM platforms.
Understanding FortiGate Agentless VPN
Agentless VPN refers to VPN connectivity that leverages native VPN clients built into operating systems rather than requiring proprietary VPN client software. This approach offers several advantages:
- No additional software installation or licensing costs
- Reduced endpoint management overhead
- Native OS integration for improved stability
- Simplified user experience with OS-native interfaces
- Support across multiple platforms (Windows, macOS, iOS, Android)
Prerequisites
Before beginning configuration, ensure you have:
- FortiGate firewall running FortiOS 6.0 or later (FortiOS 7.0+ recommended)
- Valid SSL certificates (self-signed or CA-issued)
- Active RADIUS or LDAP authentication server (optional but recommended)
Part 1: FortiGate Configuration
Step 1: Configure User Authentication
For enterprise deployments, integrating FortiGate with your existing authentication infrastructure ensures centralized user management.
Configuring LDAP Authentication:
- Navigate to User & Authentication > LDAP Servers
- Click Create New
- Configure the following:
- Name: Enter a descriptive name (e.g., “Corporate-AD”)
- Server Name/IP: Enter your LDAP/AD server address
- Server Port: 389 for LDAP, 636 for LDAPS
- Common Name Identifier: cn (for Active Directory)
- Distinguished Name: Enter your domain DN (e.g., “DC=company,DC=com”)
- Bind Type: Regular or Anonymous
- Username/Password: Service account credentials if using Regular bind
- Click Test Connectivity
- Click OK to save
Configuring RADIUS Authentication:
- Navigate to User & Authentication > RADIUS Servers
- Click Create New to add a RADIUS server
- Configure the following parameters:
- Name: Enter a descriptive name (e.g., “Corporate-RADIUS”)
- Primary Server Name/IP: Enter your RADIUS server address
- Primary Server Secret: Enter the shared secret
- Authentication Method: Select appropriate method (PAP, CHAP, MS-CHAPv2)
- NAS IP: Specify FortiGate’s interface IP facing the RADIUS server
- Click Test Connectivity to verify configuration
- Click OK to save
Step 2: Create User Groups
- Navigate to User & Authentication > User Groups
- Click Create New
- Configure:
- Name: “VPN-Users”
- Type: Firewall
- Remote Groups: Add your RADIUS or LDAP server
- Remote Server: Select previously configured authentication server
- If using LDAP, specify the remote group name matching your AD security group
- Click OK
Step 3: Configure VPN Portal Settings
VPN portals define the user experience and access parameters for VPN connections.
- Navigate to VPN > SSL-VPN Portals (Note: despite the menu location, these settings apply to IPsec VPN as well)
- Click Create New or edit the default “tunnel-access” portal
- Configure portal settings:
- Portal Name: “AgentlessVPN-Portal”
- Tunnel Mode: Enable
- Split Tunneling: Enable (recommended for performance)
- Split Tunneling Routing Address: Add internal network ranges requiring VPN access
- DNS Server: Specify internal DNS servers
- WINS Server: Configure if needed for legacy Windows environments
- Click OK to save
Step 4: Configure IPsec VPN Settings
Create Phase 1 (IKE) Configuration:
- Navigate to VPN > IPsec Wizard
- Select Custom and click Next
- Configure Phase 1 parameters:
- Name: “AgentlessVPN-Phase1”
- Template Type: Custom
- Remote Gateway: Dialup User
- Incoming Interface: Select WAN interface
- IP Version: IPv4
- IKE Version: 2
- Authentication Method: Pre-shared Key or Certificate
- Pre-shared Key: Enter a strong key (if using PSK)
- Peer Options:
- Local ID: Enter FortiGate’s external hostname or IP
- Accept Peer ID: Any
- Mode Config: Enable
- IP Address Range: Define address pool for VPN clients (e.g., 10.10.10.100-10.10.10.200)
- DNS Server: Internal DNS servers
- Configure Phase 1 Proposal:
- Encryption: AES256-GCM, AES256
- Authentication: SHA256, SHA512
- Diffie-Hellman Group: 14, 15, 19, 20
- Key Lifetime: 28800 seconds
- Configure Dead Peer Detection:
- DPD: On Idle
- Retry Interval: 10 seconds
- Retry Count: 3
- Click Next
Create Phase 2 (IPsec) Configuration:
- Configure Phase 2 parameters:
- Name: “AgentlessVPN-Phase2”
- Local Address: Specify internal network subnets requiring VPN access
- Remote Address: 0.0.0.0/0 (for full tunnel) or specific subnets (for split tunnel)
- Configure Phase 2 Proposal:
- Encryption: AES256-GCM, AES256
- Authentication: SHA256, SHA512
- PFS Group: 14, 15, 19, 20
- Key Lifetime: 3600 seconds
- Click OK to create the VPN tunnel
Step 5: Configure Firewall Policies
Create VPN to Internal Policy:
- Navigate to Policy & Objects > Firewall Policy
- Click Create New
- Configure:
- Name: “VPN-to-Internal”
- Incoming Interface: Select your VPN tunnel (e.g., “AgentlessVPN-Phase1”)
- Outgoing Interface: Select internal interface (e.g., “port1” or “internal”)
- Source: Select “VPN-Users” group
- Destination: “all” or specific internal address objects
- Service: “ALL” or specific services
- Action: Accept
- NAT: Disable
- Configure security profiles as needed (Antivirus, IPS, Web Filter)
- Enable Logging for troubleshooting
- Click OK
Create Internal to VPN Policy (if needed):
- Click Create New
- Configure:
- Name: “Internal-to-VPN”
- Incoming Interface: Internal interface
- Outgoing Interface: VPN tunnel
- Source: Internal network objects
- Destination: VPN address pool or “all”
- Service: “ALL”
- Action: Accept
- NAT: Disable
- Click OK
Step 6: Verify Configuration
- Navigate to VPN > Monitor > IPsec Monitor
- Verify the VPN tunnel appears in the list (it will show as “Down” until a client connects)
- Navigate to Log & Report > Forward Traffic to monitor connection attempts
- Test connectivity using FortiClient or native OS VPN client manually before MDM deployment
Part 2: Deploying VPN Configuration via Workspace ONE
Workspace ONE UEM provides comprehensive VPN payload management for iOS, Android, Windows, and macOS devices.
iOS Configuration
Create VPN Profile:
- Log into Workspace ONE UEM Console
- Navigate to Devices > Profiles & Resources > Profiles
- Click Add > Add Profile
- Select Apple iOS as platform
- Configure basic profile information:
- Name: “FortiGate AgentlessVPN – iOS”
- Description: Enter detailed description
- Assignment Groups: Select target user or device groups
- Click VPN payload in the left menu
- Click Configure
- Select Connection Type: IKEv2
- Configure VPN settings:
- Connection Name: “Corporate VPN”
- Server: FortiGate external hostname or IP address
- Remote Identifier: FortiGate external hostname (matching Local ID in Phase 1)
- Local Identifier: Leave blank or specify if using certificate authentication
- Authentication Type: Username & Password or Certificate
- Enable VPN On Demand: Optional (allows automatic VPN triggering)
- Certificate: Select if using certificate-based authentication
- Configure IKEv2 Advanced Settings:
- Dead Peer Detection Rate: Medium
- Server Certificate Issuer Common Name: Enter if validating server certificate
- Use Extended Authentication (EAP): Disable
- Enable Perfect Forward Secrecy: Enable
- Disable Redirect: Disable
- Configure Proxy settings if required
- Click Save
- Click Publish to make profile available
- Enable VPN On Demand
- Add rules:
- Domain: Internal domain names requiring VPN (e.g., “corp.company.com”)
- Action: Connect
- Domain: Public domains (e.g., “www.google.com”)
- Action: Never Connect
- This ensures VPN connects automatically when accessing internal resources
Android Configuration
Create VPN Profile:
- Navigate to Devices > Profiles & Resources > Profiles
- Click Add > Add Profile
- Select Android as platform
- Configure basic profile information
- Click VPN payload
- Click Configure
- Select Connection Type: IKEv2/IPsec
- Configure VPN settings:
- Connection Name: “Corporate VPN”
- Server Address: FortiGate external hostname or IP
- VPN Type: IKEv2/IPsec PSK or IKEv2/IPsec RSA
- IPsec Identifier: FortiGate server identifier
- IPsec Pre-shared Key: Enter PSK (if using PSK authentication)
- Always-on VPN: Optional (prevents traffic outside VPN)
- Per-App VPN: Optional (restrict VPN to specific apps)
- Click Save
- Click Publish
Windows 10/11 Configuration
Create VPN Profile:
- Navigate to Devices > Profiles & Resources > Profiles
- Click Add > Add Profile
- Select Windows > Windows 10/11 as platform
- Configure basic profile information
- Click VPN payload
- Click Configure
- Configure VPN settings:
- Connection Name: “Corporate VPN”
- Connection Type: IKEv2
- Server Name or Address: FortiGate external hostname or IP
- Authentication Method: EAP (Extensible Authentication Protocol) or Certificate
- EAP Configuration: MSCHAPv2
- Remember Credentials: Enable
- Configure routing:
- Custom Routes: Add internal network routes for split tunneling
- DNS Suffix: Add internal DNS suffix
- Configure advanced settings:
- Cryptography Suite: Configure to match FortiGate Phase 1/2 proposals
- Perfect Forward Secrecy: Enable
- Dead Peer Detection: Configure timeout values
- Click Save & Publish
- Create separate VPN profile with Device Tunnel connection type
- Configure certificate-based authentication
- Assign to device groups rather than user groups
- Enable before user login for seamless connectivity
macOS Configuration
Create VPN Profile:
- Navigate to Devices > Profiles & Resources > Profiles
- Click Add > Add Profile
- Select Apple macOS as platform
- Configure basic profile information
- Click VPN payload
- Click Configure
- Configure similar to iOS settings:
- Connection Type: IKEv2
- Server: FortiGate hostname/IP
- Remote Identifier: FortiGate identifier
- Authentication Type: Username & Password or Certificate
- Configure VPN On Demand rules if needed
- Click Save & Publish
Profile Assignment and Deployment
- Navigate to the published profile
- Click Assignment
- Select assignment type:
- User Groups: Assign to specific user groups
- Device Groups: Assign to specific device groups
- Smart Groups: Use dynamic criteria for automatic assignment
- Configure deployment timing:
- Push: Immediate deployment
- Auto: Deploy when device checks in
- Click Save
Part 3: Deploying VPN Configuration via Microsoft Intune
Microsoft Intune offers native VPN profile management across Windows, iOS, Android, and macOS platforms.
iOS/iPadOS Configuration
Create VPN Configuration Profile:
- Sign in to Microsoft Intune admin center (https://intune.microsoft.com)
- Navigate to Devices > Configuration profiles
- Click Create profile
- Select:
- Platform: iOS/iPadOS
- Profile type: VPN
- Click Create
- Configure Basics:
- Name: “FortiGate Agentless VPN – iOS”
- Description: Detailed description
- Click Next
- Configure Configuration settings:
- Connection type: IKEv2
- Connection name: “Corporate VPN” (user-visible name)
- VPN server address: FortiGate external hostname or IP
- Authentication method: Username and password or Certificates
- Remote identifier: FortiGate server identifier
- Local identifier: Leave blank or specify user identifier
- Client Authentication type: Username and password
- Username source: User Principal Name or SAMAccountName
- Disable IPv6: Optional
- Configure IKEv2 settings:
- Dead peer detection interval: 600 seconds
- Server certificate type: Select appropriate option
- Always-on VPN: Enable/Disable based on requirements
- Per-app VPN: Configure if restricting to specific apps
- Configure Automatic VPN (On-Demand):
- Add: Rules for when VPN should connect
- On-demand match domains: Internal domains requiring VPN
- On-demand match domain action: Connect if needed
- Configure Split tunneling (if needed):
- Excluded routes: Routes that should not use VPN
- Included routes: Routes that must use VPN
- Click Next
- Configure Assignments:
- Included groups: Select Azure AD groups
- Excluded groups: Specify exclusions if needed
- Click Next
- Review and click Create
Android Configuration
Create VPN Configuration Profile:
- Navigate to Devices > Configuration profiles
- Click Create profile
- Select:
- Platform: Android Enterprise
- Profile type: VPN (Device Owner/Corporate-owned work profile)
- Click Create
- Configure Basics with name and description
- Configure Configuration settings:
- Connection type: IKEv2
- Connection name: “Corporate VPN”
- VPN server address: FortiGate hostname/IP
- Authentication method: Username and password
- Identity certificate: Select if using certificate authentication
- Always-on VPN: Enable/Disable
- Block connections without VPN: Configure based on security requirements
- Configure Per-app VPN if needed:
- Add apps: Select specific applications requiring VPN
- Click Next
- Configure Assignments
- Review and click Create
Windows 10/11 Configuration
Create VPN Configuration Profile:
- Navigate to Devices > Configuration profiles
- Click Create profile
- Select:
- Platform: Windows 10 and later
- Profile type: VPN
- Click Create
- Configure Basics
- Configure Configuration settings – Base VPN:
- Connection name: “Corporate VPN”
- Servers: Add FortiGate server
- Description: “Primary VPN Gateway”
- IP address or FQDN: FortiGate external address
- Default server: Enable
- Connection type: IKEv2
- Authentication method: Certificates or Username and password
- Remember credentials at each logon: Enable
- Configure IKEv2 settings:
- Machine certificate identity privacy: Disable
- Use internal DHCP server: Disable
- Cryptography suite:
- Cipher suites: Configure to match FortiGate (AES256-GCM, AES256)
- Integrity check: SHA256
- Diffie-Hellman Group: Group 14, 19, 20
- PFS Group: PFS2048, PFSECP256, PFSECP384
- Configure Proxy settings if required
- Configure Split tunneling:
- Routes: Add internal network routes
- DNS suffixes: Add internal DNS suffixes
- Configure Always On settings if needed:
- Enable Always On: Yes
- Enable device tunnel: Configure for computer-level VPN
- Click Next
- Configure Assignments
- Review and click Create
macOS Configuration
Create VPN Configuration Profile:
- Navigate to Devices > Configuration profiles
- Click Create profile
- Select:
- Platform: macOS
- Profile type: VPN
- Click Create
- Configure Basics
- Configure Configuration settings:
- Connection type: IKEv2
- Connection name: “Corporate VPN”
- VPN server address: FortiGate hostname/IP
- Authentication method: Username and password or Certificates
- Remote identifier: FortiGate server identifier
- Local identifier: User identifier
- Client Authentication type: Username and password
- Configure On Demand VPN rules
- Configure Per-app VPN if needed
- Click Next
- Configure Assignments
- Review and click Create
- Navigate to Endpoint security > Conditional Access
- Click New policy
- Configure policy:
- Name: “Require VPN for Sensitive Apps”
- Users: Select target users/groups
- Cloud apps: Select apps requiring VPN
- Conditions: Configure device platforms
- Grant: Require device to be marked as compliant AND require VPN
- Enable policy
Testing VPN Connectivity
Windows Testing
- Open Settings > Network & Internet > VPN
- Locate “Corporate VPN” connection
- Click Connect
- Enter credentials when prompted
- Verify connection status shows “Connected”
- Test access to internal resources (file shares, internal websites)
- Run
ipconfigto verify VPN adapter and IP assignment - Test split tunneling by accessing public internet sites
macOS Testing
- Open System Preferences > Network
- Select “Corporate VPN” interface
- Click Connect
- Enter credentials
- Verify connection status
- Test internal resource access
- Use
ifconfigto verify VPN interface
iOS/iPadOS Testing
- Open Settings > General > VPN & Device Management
- Verify VPN profile is installed
- Open Settings > VPN
- Enable “Corporate VPN” toggle
- Enter credentials if prompted
- Verify VPN icon appears in status bar
- Test accessing internal resources via Safari or enterprise apps
Android Testing
- Open Settings > Network & Internet > VPN
- Select “Corporate VPN”
- Tap Connect
- Enter credentials
- Verify VPN connected notification
- Test internal resource access
Troubleshooting Common Issues
Connection Failures
- Navigate to Log & Report > VPN Events
- Check for Phase 1 negotiation errors
- Verify authentication method matches client configuration
- Ensure Phase 1 proposals include common ciphers supported by client OS
Client verification:
- Verify server address is correct and reachable
- Check pre-shared key matches exactly (case-sensitive)
- Verify client OS supports configured cipher suites
- Test basic connectivity:
ping [FortiGate-IP]ortelnet [FortiGate-IP] 500
- Check VPN Events for Phase 2 specific errors
- Verify Phase 2 proposal compatibility
- Ensure PFS group settings match
- Check selector/proxy-id configuration matches client expectations
- Verify RADIUS/LDAP server connectivity from FortiGate
- Test user authentication:
- Navigate to User & Authentication > User > User Definition
- Click Test Connectivity on authentication server
- Check user group membership in authentication backend
- Review authentication logs on RADIUS/LDAP server
- Verify credentials are not expired or locked
Connectivity Issues After Connection
- Navigate to Policy & Objects > Firewall Policy
- Verify VPN-to-Internal policy exists and is enabled
- Enable logging on firewall policy
- Check Log & Report > Forward Traffic for dropped connections
- Verify policy source/destination objects match VPN traffic
Routing verification:
- Navigate to Network > Static Routes
- Verify routes for internal networks
- Check that VPN clients receive correct routes in Mode Config
- On client, verify routing table includes internal network routes
- Verify DNS servers configured in VPN Mode Config
- Check that DNS servers are accessible from VPN client pool
- Create firewall policy allowing VPN clients to DNS servers
- Test DNS resolution from FortiGate:
diagnose sniffer packet any 'port 53' 4 - On client, verify DNS servers received via VPN connection:
ipconfig /all(Windows) orscutil --dns(macOS)
MDM Deployment Issues
- Navigate to Monitor > Devices > Select Device
- Check Event Log for profile installation errors
- Verify device check-in status
- Ensure device meets platform requirements for VPN profile
- Check for conflicting VPN profiles
Intune:
- Navigate to Devices > All devices > Select Device
- Check Device configuration status
- Review error details and remediation suggestions
- Verify user group membership and assignments
- Check for certificate-related issues if using certificate authentication
- Verify MDM assignment includes target user/device
- Force device sync: On device, trigger manual check-in
- Check MDM console for pending profiles
- Verify network connectivity from device to MDM infrastructure
- Review device enrollment status
Performance Issues
- Test baseline internet speed without VPN
- Enable split tunneling to reduce VPN traffic
- Adjust encryption algorithms (AES-GCM offers better performance)
- Check FortiGate CPU utilization: Dashboard > System Resources
- Review IPS/AV settings on VPN firewall policy (may cause performance impact)
- Consider upgrading FortiGate hardware or increasing VPN license capacity
- Adjust DPD settings in Phase 1:
- Increase retry interval
- Increase retry count
- Configure VPN On Demand rules to reduce unnecessary connections
- Check for NAT timeout issues on intermediate firewalls
- Enable NAT-T if VPN traffic traverses NAT devices
- Review client power management settings (sleep/hibernation)
Optional Advanced Configurations
Use SAML Authentication with Workspace ONE Access
This section configures FortiGate to use Workspace ONE Access as a SAML identity provider for VPN authentication.
Step 1: Configure Workspace ONE Access SAML Authentication
Configure SAML Application in Workspace ONE Access:
- Log into Workspace ONE Access console (https://your-tenant.vidmpreview.com or on-premises URL)
- Navigate to Catalog > Web Apps
- Click New
- Select SAML 2.0 as the type
- Configure application details:
- Name: “FortiGate VPN”
- Description: “FortiGate VPN SAML Authentication”
- Icon: Upload FortiGate logo or select generic VPN icon
- Click Next
Configure SAML Metadata:
- In the application configuration, select Configuration tab
- Under SAML Metadata, select Manual
- Configure the following Service Provider details:
- Single Sign-On URL (ACS URL):
https://:10443/remote/saml/login - Example:
https://vpn.company.com:10443/remote/saml/login - Check Use this URL for Recipient and Destination
- Recipient URL: (Auto-filled from Single Sign-On URL)
https://vpn.company.com:10443/remote/saml/login- Application ID (Entity ID):
https://:10443/remote/saml/metadata - Example:
https://vpn.company.com:10443/remote/saml/metadata - Username Format: Email Address or User Principal Name
- Username Value: ${user.email} or ${user.userName}
- Single Sign-On URL (ACS URL):
- Configure Advanced Properties:
- Name ID Format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- Name ID Value: ${user.email}
- Signature Algorithm: RSA-SHA256
- Digest Algorithm: SHA256
- Assertion Lifetime: 300 seconds
- Click Next
Configure Attribute Mapping:
- Under Attribute Mapping, add the following attributes:
- username: ${user.userName}
- email: ${user.email}
- groups: ${user.groups}
- Click Next
Configure Access Policies:
- In the Access Policies tab, click Create Rule
- Configure policy:
- Rule Name: “VPN Users Access”
- Users: Select specific groups (e.g., “VPN-Users”, “Remote-Workers”) or “All Users”
- Network Ranges: Configure if restricting by IP range (optional)
- Device Compliance: Require managed devices if using Workspace ONE UEM (optional)
- Configure Authentication Methods:
- Password: Enable for username/password authentication
- Multi-factor Authentication: Configure if requiring additional factors (RADIUS, DUO, etc.)
- Actions:
- Perform this action when all conditions are met: Allow Access
- Re-authenticate after: 480 minutes (default)
- Click Save
Export SAML Metadata:
- Navigate to SAML Metadata tab
- Click Export Metadata and save the XML file
- Alternatively, copy the Identity Provider (IdP) metadata URL:
- Example:
https://your-tenant.vidmpreview.com/SAAS/API/1.0/GET/metadata/sp.xml?entityID=FortiGateVPN
- Example:
Deploy Application to Users:
- Click Deployment tab
- Configure deployment:
- Deployment Type: Automatic
- Categories: Assign to appropriate category (e.g., “IT Services”)
- User/Group Assignment: Add user groups who should see the application
- Click Save and Publish
Step 2: Configure FortiGate SAML Settings
Import SAML Metadata (Recommended Method):
- On FortiGate, navigate to User & Authentication > SAML SSO
- Click Create New
- Click Import Metadata
- Upload the metadata XML file downloaded from Workspace ONE Access
- FortiGate will auto-populate most fields
- Verify and adjust:
- Name: “WorkspaceONE-SAML”
- IdP Entity ID: (Auto-populated from metadata)
- IdP Single Sign-On URL: (Auto-populated from metadata)
- IdP Single Logout URL: (Auto-populated if available)
- IdP Certificate: (Auto-imported from metadata)
- SP Entity ID: Must match Application ID in Workspace ONE Access
- Example:
https://vpn.company.com:10443/remote/saml/metadata - SP Single Sign-On URL: Must match ACS URL in Workspace ONE Access
- Example:
https://vpn.company.com:10443/remote/saml/login - SP Certificate: Select or create a certificate for FortiGate
- Configure User/Group Attribute:
- User Name: Select attribute containing username (typically “username” or “email”)
- Group Name: “groups” (if using group-based access control)
- Enable Clock Tolerance: 60 seconds
- Click OK
Alternative Method – Manual Configuration:
- Navigate to User & Authentication > SAML SSO
- Click Create New
- Configure IdP Settings:
- Name: “WorkspaceONE-SAML”
- IdP Entity ID:
https://your-tenant.vidmpreview.com/SAAS/jersey/manager/api/saml/metadata - IdP Single Sign-On URL:
https://your-tenant.vidmpreview.com/SAAS/auth/federation/sso - IdP Single Logout URL:
https://your-tenant.vidmpreview.com/SAAS/auth/federation/slo - IdP Certificate: Click Import and upload certificate file from metadata
- Configure Service Provider (FortiGate) Settings:
- SP Entity ID:
https://vpn.company.com:10443/remote/saml/metadata - SP Single Sign-On URL:
https://vpn.company.com:10443/remote/saml/login - SP Certificate: Select FortiGate’s certificate
- SP Entity ID:
- Configure User Attribute Mapping:
- User Name: “username” or “email”
- Group Name: “groups”
- Configure Advanced Options:
- Clock Tolerance: 60 seconds
- Digest Method: sha256
- Signature Method: rsa-sha256
- Click OK
Step 3: Create SAML User Groups
Create Generic SAML User Group:
- Navigate to User & Authentication > User Groups
- Click Create New
- Configure:
- Name: “SAML-VPN-All-Users”
- Type: Firewall
- Members: Click Add
- Type: Select SAML Users
- SAML Server: Select “WorkspaceONE-SAML”
- Groups: Leave empty to match all authenticated users
- Click OK
Create Group-Specific SAML Mapping (Optional):
- Navigate to User & Authentication > User Groups
- Click Create New
- Configure:
- Name: “SAML-VPN-Employees” (example group name)
- Type: Firewall
- Members: Click Add
- Type: Select SAML Users
- SAML Server: Select “WorkspaceONE-SAML”
- Groups: Enter exact group name from Workspace ONE Access
- Example: “VPN-Users” or “CN=VPN-Users,OU=Groups,DC=company,DC=com”
- Click OK
Step 4: Configure SSL-VPN Settings with SAML
- Navigate to VPN > SSL-VPN Settings
- Configure:
- Listen on Interface(s): Select WAN interface
- Listen on Port: 10443 (or preferred port)
- Server Certificate: Select certificate matching SP Entity ID hostname
- Restrict Access: Configure as needed
- Under Authentication/Portal Mapping, click Create New:
- Users/Groups: Select “SAML-VPN-All-Users”
- Portal: Select “AgentlessVPN-Portal”
- Authentication Method: Keep default (will use SAML)
- For group-specific access, create additional mappings:
- Click Create New
- Users/Groups: Select specific SAML group (e.g., “SAML-VPN-Employees”)
- Portal: Select portal with appropriate access level
- Enable SSL-VPN Service
- Click Apply
Use SAML Authentication with Microsoft Entra ID
This section configures FortiGate to use Microsoft Entra ID as a SAML identity provider for VPN authentication.
Step 1: Configure Microsoft Entra ID SAML Authentication
Configure SAML Application in Microsoft Entra ID:
- Sign in to Microsoft Entra admin center (https://entra.microsoft.com)
- Navigate to Identity > Applications > Enterprise applications
- Click New application
- Click Create your own application
- Configure:
- Name: “FortiGate VPN SAML”
- Select: “Integrate any other application you don’t find in the gallery (Non-gallery)”
- Click Create
Configure Single Sign-On:
- In the newly created application, navigate to Single sign-on
- Click SAML
- Click Edit on Basic SAML Configuration
- Configure the following (replace with your FortiGate details):
- Identifier (Entity ID):
https://:10443/remote/saml/metadata - Example:
https://vpn.company.com:10443/remote/saml/metadata - Reply URL (Assertion Consumer Service URL):
https://:10443/remote/saml/login - Example:
https://vpn.company.com:10443/remote/saml/login - Sign on URL (optional): Same as Reply URL
- Click Save
Configure Attributes & Claims:
- Click Edit on Attributes & Claims
- Verify the following claims exist (add if missing):
- Required claim – Unique User Identifier (Name ID): user.userprincipalname (or user.mail)
- Additional claim – username: user.userprincipalname
- Additional claim – group: user.groups (if using group-based access)
- Click Save
Download Federation Metadata:
- Scroll to SAML Certificates section
- Click Download next to Federation Metadata XML
- Save the XML file for later use
- Alternatively, note the App Federation Metadata Url for direct metadata import
Assign Users/Groups:
- Navigate to Users and groups in the Enterprise application
- Click Add user/group
- Select users or groups who should have VPN access
- Click Assign
Configure Conditional Access (Optional):
- Navigate to Identity > Protection > Conditional Access
- Click New policy
- Configure:
- Name: “Require MFA for VPN”
- Assignments > Users: Select users/groups
- Assignments > Cloud apps: Select “FortiGate VPN SAML” application
- Access controls > Grant: Require multi-factor authentication
- Enable policy: On
- Click Create
Step 2: Configure FortiGate SAML Settings
Import SAML Metadata (Recommended Method):
- On FortiGate, navigate to User & Authentication > SAML SSO
- Click Create New
- Click Import Metadata
- Upload the Federation Metadata XML downloaded from Entra ID
- FortiGate will auto-populate most fields
- Verify and adjust:
- Name: “EntraID-SAML”
- IdP Entity ID: (Auto-populated from metadata)
- Format:
https://sts.windows.net// - IdP Single Sign-On URL: (Auto-populated from metadata)
- Format:
https://login.microsoftonline.com//saml2 - IdP Single Logout URL: (Auto-populated if available)
- IdP Certificate: (Auto-imported from metadata)
- SP Entity ID: Must match Identifier in Entra ID
- Example:
https://vpn.company.com:10443/remote/saml/metadata - SP Single Sign-On URL: Must match Reply URL in Entra ID
- Example:
https://vpn.company.com:10443/remote/saml/login - SP Certificate: Select or create a certificate for FortiGate
- Configure User/Group Attribute:
- User Name: Select attribute containing username (typically “username” or leave as default)
- Group Name: “group” (if using group-based access control)
- Enable Clock Tolerance: 60 seconds
- Click OK
Alternative Method – Manual Configuration:
- Navigate to User & Authentication > SAML SSO
- Click Create New
- Configure IdP Settings:
- Name: “EntraID-SAML”
- IdP Entity ID: Copy from Entra ID metadata
- Example:
https://sts.windows.net/12345678-1234-1234-1234-123456789abc/ - IdP Single Sign-On URL: Copy from Entra ID Federation Metadata XML
- Look for
SingleSignOnServicewithHTTP-Redirectbinding - Example:
https://login.microsoftonline.com/12345678-1234-1234-1234-123456789abc/saml2 - IdP Single Logout URL: Copy from Entra ID if available
- IdP Certificate: Click Import and upload certificate from Federation Metadata XML
- Certificate is located within
tags - Configure Service Provider (FortiGate) Settings:
- SP Entity ID:
https://vpn.company.com:10443/remote/saml/metadata - SP Single Sign-On URL:
https://vpn.company.com:10443/remote/saml/login - SP Certificate: Select FortiGate’s certificate
- Configure User Attribute Mapping:
- User Name: Select the attribute to use for username (typically “username” or leave as default)
- Group Name: “group” (if using group-based access control)
- Configure Advanced Options:
- Clock Tolerance: 60 seconds
- Digest Method: sha256
- Signature Method: rsa-sha256
- Click OK
Step 3: Create SAML User Groups
Create Generic SAML User Group:
- Navigate to User & Authentication > User Groups
- Click Create New
- Configure:
- Name: “SAML-VPN-All-Users”
- Type: Firewall
- Members: Click Add
- Type: Select SAML Users
- SAML Server: Select “EntraID-SAML”
- Groups: Leave empty to match all authenticated users
- Click OK
Create Group-Specific SAML Mapping (Optional):
- Navigate to User & Authentication > User Groups
- Click Create New
- Configure:
- Name: “SAML-VPN-Employees” (example group name)
- Type: Firewall
- Members: Click Add
- Type: Select SAML Users
- SAML Server: Select “EntraID-SAML”
- Groups: Enter Entra ID group Object ID or display name
- Example: “12345678-1234-1234-1234-123456789abc” (Object ID)
- Or: “VPN-Users” (display name, if configured in claims)
- Click OK
Step 4: Configure SSL-VPN Settings with SAML
- Navigate to VPN > SSL-VPN Settings
- Configure:
- Listen on Interface(s): Select WAN interface
- Listen on Port: 10443 (or preferred port)
- Server Certificate: Select certificate matching SP Entity ID hostname
- Restrict Access: Configure as needed
- Under Authentication/Portal Mapping, click Create New:
- Users/Groups: Select “SAML-VPN-All-Users”
- Portal: Select “AgentlessVPN-Portal”
- Authentication Method: Keep default (will use SAML)
- For group-specific access, create additional mappings:
- Click Create New
- Users/Groups: Select specific SAML group (e.g., “SAML-VPN-Employees”)
- Portal: Select portal with appropriate access level
- Enable SSL-VPN Service
- Click Apply
Certificate-Based Authentication
For enhanced security without passwords:
- Deploy PKI Infrastructure:
- Set up internal CA or use third-party PKI
- Create certificate templates for VPN users/devices
- Configure certificate auto-enrollment where possible
- FortiGate Configuration:
- Import CA certificates to FortiGate
- Configure Phase 1 for certificate authentication
- Set up certificate-based user authentication
- Map certificate fields to user groups
- MDM Distribution:
- Use MDM SCEP or certificate payload
- Distribute user/device certificates automatically
- Configure VPN profile to use deployed certificates
- Implement certificate renewal automation
Conclusion
Deploying FortiGate agentless VPN with enterprise MDM solutions provides a scalable, secure, and user-friendly remote access solution. By leveraging native OS VPN capabilities and automated MDM deployment, organizations can ensure consistent security policies while minimizing end-user friction and support overhead.
- Agentless VPN reduces complexity and costs while maintaining strong security
- MDM integration enables zero-touch deployment and centralized management
- Proper authentication integration ensures alignment with enterprise identity governance
- Regular monitoring and maintenance are essential for optimal security and performance
- Advanced configurations like HA and certificate-based authentication enhance reliability and security
This comprehensive approach to VPN deployment aligns with modern enterprise security requirements while providing the flexibility to adapt to evolving business needs and security landscapes.


