FSSO
FSSO
SSO is a process that allows users to be automatically logged in to every application after being
identified, regardless of platform, technology, and domain. FSSO is a software agent that
enables FortiGate to identify network users for security policies or for VPN access, without asking
for their username and password. When a user logs in to a directory service, the FSSO agent
sends FortiGate the username, the IP address, and the list of groups that the user belongs to.
FortiGate uses this information to maintain a local database of usernames, IP addresses, and
group mappings.
Because the domain controller authenticates users, FortiGate does not perform authentication.
When the user tries to access network resources, FortiGate selects the appropriate security policy
for the destination. If the user belongs to one of the permitted user groups, the connection is
allowed.
4|Page|Mani Pahlavanzadeh
FortiOS can provide single sign-on capabilities to Windows AD, Citrix, VMware Horizon, Novell
eDirectory, and Microsoft Exchange users with the help of FSSO agent software installed on these
networks. The agent software sends information about user logons to the FortiGate unit. With
user information such as IP address and user group memberships from the network, FortiGate
security policies can allow authenticated network access to users who belong to the appropriate
user groups without requesting their credentials again.
Fortinet Single Sign-On (FSSO), through agents installed on the network, monitors user logons and
passes that information to the FortiGate unit. When a user logs on at a workstation in a
monitored domain, FSSO:
• Detects the logon event and records the workstation name, domain, and user,
• Resolves the workstation name to an IP address,
• Determines which user groups the user belongs to,
• Sends the user logon information, including IP address and groups list, to the FortiGate
unit,
• Creates one or more log entries on the FortiGate unit for this logon event as appropriate.
When the user tries to access network resources, the FortiGate unit selects the appropriate
security policy for the destination. If the user belongs to one of the permitted user groups
associated with that policy, then the connection is allowed, otherwise the connection is denied.
5|Page|Mani Pahlavanzadeh
How you deploy and configure FSSO depends on the server that provides your
directory services.
Microsoft Active Directory (AD)
There are two working modes that monitor user sign-on activities in Windows:
• DC agent mode ➔ uses a Collector Agent. The Domain Controller (DC) agent must be
installed on every domain controller when you use DC Agent mode. The DC agents monitor
user logon events and pass the information to the Collector Agent, which stores the
information and sends it to the FortiGate unit.
• Polling mode
➢ Collector Agent-Based
➢ Agentless: FortiGate also offers a polling mode that does not require a collector
agent, which is intended for simple networks with a minimal number of users.
❖ Terminal Server (TS) Agent: There is another kind of DC agent that is used exclusively
for Citrix and terminal services environments: terminal server (TS) agents. TS agents require
the Windows Active Directory collector agent or FortiAuthenticator to collect and send the
login events to FortiGate.
6|Page|Mani Pahlavanzadeh
Novell eDirectory
The eDirectory agent is installed on a Novell network to monitor user sign-ons and send the
required information to FortiGate. It functions much like the collector agent on a Windows AD
domain controller. The agent can obtain information from the Novell eDirectory using either the
Novell API or LDAP.
The Terminal Server (TS) agent can be installed on a Citrix, VMware Horizon 7.4, or Windows
Terminal Server to monitor user logons in real time. It functions much like the DC Agent on a
Windows AD domain controller.
DC agent mode is the most scalable mode and is, in most environments, the
recommended mode for FSSO.
DC agent mode requires:
• One DC agent installed on each Windows DC: If you have multiple DCs, this means that you
need multiple DC agents. DC agents monitor and forward user login events to the collector
agents. DC Agent should be installed on each Windows DC in the Windows\system32
directory.
We will learn about how we can install DC Agent on a Windows DC later in this document.
7|Page|Mani Pahlavanzadeh
A FortiAuthenticator device can act much like a CA, collecting Windows AD user
logon information and sending it to the FortiGate device. It is particularly useful in
large installations with several FortiGate units.
❖ The CA communicates with the FortiGate over TCP port 8000 and it listens on UDP port
8002 for updates from the DC agents.
8|Page|Mani Pahlavanzadeh
This slide shows the process of information passing between DC agents, the collector agent, and a
FortiGate configured for FSSO authentication.
1. When users authenticate with the DC, they provide their credentials.
2. The DC agent sees the login event, and forwards it to the collector agent. (DC agent monitors
and forwards user login events to the collector agent)
3. The collector agent aggregates all login events and forwards that information to FortiGate. The
information sent by the collector agent contains the username, host name, IP address, and user
group(s). The collector agent communicates with FortiGate over TCP port 8000 (default) and it
listens on UDP port 8002 (default), for updates from the DC agents. The ports are customizable.
4. FortiGate learns from the collector agent who the user is, their IP address, and some of the AD
groups that the user is a member of. When a user tries to access the internet, FortiGate
compares the source IP address to its list of active FSSO users. Because the user in this case has
already logged in to the domain, and FortiGate already has their information, FortiGate doesn’t
prompt the user to authenticate again. Rather it allows or denies the traffic based on the
matching firewall policy.
9|Page|Mani Pahlavanzadeh
Collector Agent-based polling mode has three methods (or options) for collecting login
information. The order on the slide from left to right shows most recommend to least
recommended:
• WMI: (Windows Management Instrumentation) is a Windows API that gets system information
from a Windows server. The DC returns all requested login events every almost 3 seconds. The
collector agent is a WMI client and sends WMI queries for user login events to the DC, which, in
this case, is a WMI server. The collector agent doesn’t need to search security event logs on the
DC for user login events; instead, the DC returns all requested login events. This reduces network
load between the collector agent and DC.
11 | P a g e | M a n i P a h l a v a n z a d e h
• WinSecLog: polls all the security event logs from the DC every almost 10 seconds or more. It
doesn’t miss any login events that have been recorded by the DC because events are not normally
deleted from the logs. There can be some delay in FortiGate receiving events if the network is
large or system is slow and, therefore, writing to the logs is slow. It also requires that the audit
success of specific event IDs is recorded in the Windows security logs.
• NetAPI: polls temporary sessions created on the DC when a user logs in or logs out and calls
the NetSessionEnum function on Windows every 9 seconds or less. It’s faster than the WinSec
and WMI methods; however, it can miss some login events if a DC is under heavy system load.
This is because sessions can be quickly created and purged from RAM, before the agent has a
chance to poll and notify FortiGate.
Event ID?
1. FSSO Collector Agent with Windows Security Event Log polling mode supports the following Windows Event
IDs:
• Windows 2008/2012/2016/2019 Event IDs: 4768, 4769*, 4776, 4624, 4770 **.
• Windows 2003 Event IDs: 672, 673*, 680, 528, 540 **.
* Some Event IDs are not supported alone and they required another event to correlate the login information.
For example:
** By default, the Collector Agent is using a subset of events. Which event IDs are monitored is configurable with
'Windows Security Event ID to poll' under Advanced settings:
2. FortiGate (FGT) has an integrated poller as well. Its local polling mode also uses the Windows Security Event
logs, however, currently the supported event subset is smaller.
* Support for these events is available by enabling under the Fortinet Single Sign-On (FSSO) section -> SSO ->
General -> Enable Windows event log polling (e.g., domain controllers/Exchange servers) [Configure Events].
12 | P a g e | M a n i P a h l a v a n z a d e h
This slide shows an example of FSSO using the collector agent-based polling mode. This example
includes a DC, a collector agent, and FortiGate, but the DC doesn’t have the dcagent (or,
alternatively, dcagent.dll) installed.
1. The user authenticates with the DC, providing their credentials.
2. The collector agent periodically (every few seconds) polls TCP port 445 of each DC directly, to
ask if anyone has logged in.
3. The collector agent sends login information to FortiGate over TCP port 8000. This is the same
information that is sent in DC agent mode.
4. When user traffic arrives at FortiGate, FortiGate already knows which users are at which IP
addresses, and no repeated authentication is required.
13 | P a g e | M a n i P a h l a v a n z a d e h
You can deploy FSSO without installing an agent (Neither DC agent nor Collector agent).
FortiGate polls the DCs directly, instead of receiving login information indirectly from a collector
agent. For Windows AD networks, FortiGate devices can also provide SSO capability by directly
polling Windows Security Event log entries on Windows DC for user log in information. This
configuration does not require a CA or DC agent.
Because FortiGate collects all of the data itself, agentless polling mode requires greater system
resources, and it doesn’t scale as easily. (More CPU and RAM required by FortiGate)
Agentless polling mode operates in a similar way to WinSecLog, but with only two event IDs: 4768
and 4769. Because there’s no collector agent, FortiGate uses the SMB protocol to read the event
viewer logs from the DCs. Event Logging must be enabled on the DCs.
In Agentless polling mode, FortiGate acts as a collector. It is responsible for polling on top of its
normal FSSO tasks but does not have all the extra features, such as workstation checks, that are
available with the external collector agent, it means FortiGate doesn’t poll workstation.
(Workstation verification is not available in Agentless polling mode)
14 | P a g e | M a n i P a h l a v a n z a d e h
This slide shows how communication is processed without agents. (There is no collector agent or
DC agent.)
1. User authenticates with the DC.
2. FortiGate polls the DC TCP port 445 to collect user login events. FortiGate registers a login
event, obtaining the username, the host name, and the IP address. FortiGate then queries for the
user's user group or groups.
3. When the user sends traffic, FortiGate already knows whose traffic it is receiving; therefore,
the user does not need to authenticate.
15 | P a g e | M a n i P a h l a v a n z a d e h
This table summarizes the main differences between DC agent mode and polling mode.
➢ DC agent mode is more complex. It requires not only a collector agent, but also a DC agent
for each monitored domain controller.
➢ However, it is also more scalable because the work of capturing logins is done by the DC
agents who pass their information directly to the collector.
➢ In polling mode, the collector needs to query every domain controller, every few seconds.
So, with each DC that is added, the number of queries grows.
➢ If you want to add a second collector agent for redundancy in polling mode, both collector
agents need to query every DC individually.
➢ In DC agent mode, the DC agent just has to collect the log once, and send a copy of the
necessary information to all the collector agents. In comparison, if you use polling mode,
some login events might be missed or delayed, depending on the polling option used.
➢ You do not have to install a collector agent on the DC, you can install it on any Windows
machine on the network.
16 | P a g e | M a n i P a h l a v a n z a d e h
Regardless of the collector method you choose, some FSSO requirements for your AD network
are the same:
• Microsoft Windows login events have the workstation name and username, but not the
workstation IP address. When the collector agent receives a login event, it queries a DNS server
to resolve the IP address of the workstation. So, FSSO requires that you have your own DNS
server. If a workstation IP address changes, DNS records must be updated immediately in order
for the collector agent to be aware of the change and report it to FortiGate.
In Collector Agent-based polling mode, Collector-Agent is the responsible for DNS Resolution.
• For full feature functionality, collector agents need connectivity with all workstations. Since a
“monitored event log” is not generated on logout, the collector agent (depending on the FSSO
mode) must use a different method to verify whether users are still logged in. So, each user
workstation is polled to see if users are still there. By default, all currently supported versions of
FSSO collector agent use WMI to verify whether a user is still logged in on remote workstations.
• The DC agent, when the user logs in, intercepts the login event on the domain controller. It then
resolves the DNS of the client, and sends it to the collector agent. The collector agent receives the
DNS and then performs a DNS resolution in order to check whether the IP address of the user has
changed.
In DC Agent mode, DC-Agent is the responsible for DNS Resolution.
17 | P a g e | M a n i P a h l a v a n z a d e h
FortiGate uses LDAP to query AD to retrieve user group information. For this to happen, you
must add the LDAP server to the Poll Active Directory Server configuration.
• The Local FSSO Agent is the backend process that is automatically created when the first
FSSO polling connector is created.
• The Active Directory Connector is the front-end connector that can be configured by
FortiGate administrators.
To verify the configuration, hover the cursor over the top right corner of the connector; a popup
window will show the currently selected groups. A successful connection is also shown by a green
up arrow in the lower right corner of the connector.
If you need to get log in information from multiple DCs, then you must configure other Active
Directory connectors for each additional DC to be monitored.
5. Click OK.
6. Add the local FSSO group to a policy.
Troubleshooting
If an authenticated AD user cannot access the internet or pass the firewall policy, verify
the local FSSO user list:
If the polling frequency shows successes and failures, that indicates sporadic network
problems or a very busy DC. If it indicates no successes or failures, then incorrect
credentials could be the issue.
If the LDAP status is connected, then the FortiGate can access the configured LDAP server.
This is required for AD group membership lookup of authenticated users because the
Windows Security Event log does not include group membership information. The
FortiGate sends an LDAP search for group membership of authenticated users to the
configure LDAP server.
FortiGate adds authenticated users to the local FSSO user list only if the group membership
is one of the groups in Group Filter.
24 | P a g e | M a n i P a h l a v a n z a d e h
If you have collector agents, using either the DC agent mode or the collector agent-based polling
mode, you must select FSSO Agent on Windows AD and configure the IP address and password
for each collector agent. (Maybe you have more than on Collector Agent for Redundancy)
To create an FSSO agent connector in the GUI:
1. Go to Security Fabric > External Connectors.
2. Click Create New.
3. In the Endpoint/Identity section, click FSSO Agent on Windows AD.
25 | P a g e | M a n i P a h l a v a n z a d e h
The FSSO Collector Agent can access Windows AD in one of two modes:
• Collector Agent: You create group filters on the collector agent. You can set FortiGate to
Collector Agent mode, and the collector agent can still use Advanced mode to access nested
groups. ➔ User groups will be pushed to the FortiGate from the collector agent.
• Local: You create group filters on FortiGate, using the LDAP server. If you set FortiGate to Local
mode, you must set the collector agent to Advanced mode, otherwise the collector agent does
not recognize the group filter sent by FortiGate and does not pass down any user logins. ➔ User
groups will be specified in the FortiGate unit's configuration.
9. Click OK.
Local
Create the FSSO collector that updates the AD user groups list
To create an FSSO agent connector in the GUI:
1. Go to Security Fabric > External Connectors.
2. Click Create New.
3. In the Endpoint/Identity section, click FSSO Agent on Windows AD.
4. Fill in the Name
5. Set the Primary FSSO Agent to the IP address of the FSSO Collector Agent, and enter its
password.
6. Set the User Group Source to Local.
7. Set the LDAP Server to one you created before. (AD-ldap server)
8. Enable Proactively Retrieve from LDAP Server.
9. Set the Search Filter to (&(objectClass=group)(cn=group*)).
The default search filter retrieves all groups, including Microsoft system groups. In this example,
the filter is configured to retrieve group1, group2, etc, and not groups like grp199.
The filter syntax is not automatically checked; if it is incorrect, the FortiGate might not retrieve
any groups.
26 | P a g e | M a n i P a h l a v a n z a d e h
10. Set the Interval (minutes) to configure how often the FortiGate contacts the remote AD LDAP
server to update the group information.
The FSSO agents are available on the Fortinet Support website. (https://support.fortinet.com)
There you will find the following:
• The DC agent (DCAgent_Setup)
• The collector agent for Microsoft servers: FSSO_Setup
• The collector agent for Novell directories: FSSO_Setup_edirectory
• The terminal server agent (TSagent) installer for Citrix and terminal servers: TSAgent_Setup
Also, for each agent, there are two versions:
➢ the executable (.exe)
➢ Microsoft Installer (.msi)
Notice that you do not need to match the FSSO version with your exact FortiGate firmware
version. When installing FSSO, grab the latest collector agent for your major release. You do
however, need to match the DC agent version to the collector agent version.
28 | P a g e | M a n i P a h l a v a n z a d e h
After you’ve downloaded the collector agent, run the installation process as Administrator and
follow these steps in the installation wizard: (Run the FSSO_Setup file with administrator privileges)
1. Read and accept the license agreement.
29 | P a g e | M a n i P a h l a v a n z a d e h
2. Optionally, change the installation location. The default folder is named FSAE
(Fortinet Server Authentication Extension).
30 | P a g e | M a n i P a h l a v a n z a d e h
3. Enter the username. By default, the agent uses the name of the currently running account;
however, you can change it using the format: DomainName\UserName.
4. Alternatively, configure your collector agent for monitoring, NTLM authentication, and
directory access. These options are also customizable after installation. Although the default is
Standard mode, when doing new FSSO setups it is always a best practice to install in Advanced
mode. You will look at some of the advantages in this document.
31 | P a g e | M a n i P a h l a v a n z a d e h
5. If you want to use DC agent mode, make sure that Launch DC Agent Install Wizard is selected.
This automatically starts the DC agent installation.
32 | P a g e | M a n i P a h l a v a n z a d e h
FSSO-CA is installed in the server and can be found in the following directory:
33 | P a g e | M a n i P a h l a v a n z a d e h
If you have just installed the collector agent and you selected Launch DC Agent
Install Wizard, the installation process for domain controller agent (DC Agent)
automatically starts.
1. Enter the IP address for the collector agent. Optionally, you can customize the listening port, if
the default value is already used by another service.
34 | P a g e | M a n i P a h l a v a n z a d e h
2. Select the domains to monitor. If any of your required domains are not listed, you should
check 2 settings:
• Cancel the wizard and set up the correct trusted relationship with the domain controller.
Then, run the wizard again.
• Note that this could also be a result of using an account without all the necessary
permissions.
3. Optionally, select users that you do not want to monitor; these users' login events are not
recorded by the collector and therefore are not passed to FortiGate. While these users are still
able to generate login events to the domain, when they are detected by the collector agent, they
are discarded so as to not interfere with the logged in user. This is especially useful in
environments with a centrally managed antivirus solution, or a scheduled backup service that
uses an AD account to start. These accounts can create login events for the collector agent that
overwrite existing user logins. This may result in FortiGate applying the incorrect policies and
profiles based on the overriding account. You can also customize the option to ignore users after
installation is complete.
4. Optionally, clear the checkboxes of domain controllers that you don’t want to install the DC
agent on. Remember, for DC agent mode FSSO, at least one domain controller must have the DC
agent installed. Also remember that installing the DC agent requires a reboot of the DC before it
will start gathering login events. You can add or remove the DC agent to DCs at any time after the
installation is complete.
5. Select DC Agent Mode as the working mode. If you select Polling Mode, the DC agent will not
be installed.
Finally, the wizard requests a system reboot.
35 | P a g e | M a n i P a h l a v a n z a d e h
On the FSSO agent configuration GUI, you can configure settings such as:
• The listening port for the communication with the DC agents (UDP)
• The listening port for the communication with FortiGate (TCP)
• NTLM authentication support
• Password authentication between the collector agent and FortiGate
• Timers
Group Filter
When configuring FSSO, administrators have the ability to specify which user
groups will be monitored by FSSO.
The Group Filter can be defined either locally on FortiGate or directly on FSSO Collector Agent.
While in general the group filter should be defined locally on FortiGate, there are situations
where the group filter needs to be defined on the FSSO Collector Agent.
The most common use cases for group filters defined on Collector Agent are:
• FortiGate does not have connectivity to the LDAP server. (We cannot select Local option)
• The Collector Agent will be serving many FortiGates, each with an identical group filter.
37 | P a g e | M a n i P a h l a v a n z a d e h
Configuration:
1. Open FSSO Collector Agent Configuration Utility.
2. Select the 'Set Group Filter' button.
3. Select the 'Add' button to create a new group filter.
4. Type the Serial Number and VDOM name of the FortiGate into the FortiGate Serial Number
field. This value must be specified in format <SN>-<VDOM>.
Note: VDOM name 'root' has to be specified even when VDOM functionality is not enabled
on the target FortiGate.
5. Select the 'Advanced' button to open the LDAP tree browser.
6. Select user groups to monitor by FSSO and confirm the selection by selecting 'Add selected
user groups'.
Note: It is necessary to select the Organizational Units icons in order to expand the LDAP
tree.
7. To reflect the change on FortiGate, navigate to Security Fabric > External Connectors > [the
FSSO Collector], ensure the User group source is set to Collector Agent, and select the
'Apply&Refresh' button.
38 | P a g e | M a n i P a h l a v a n z a d e h
The FSSO collector agent ignores any login events that match the Ignore User List entries.
Therefore, these login events are not recorded by the collector agent, nor are they reported to
FortiGate. It is a good practice to add all network service accounts to the Ignore User List. Service
accounts tend to overwrite user login events, and create issues with identity-based policy
matching.
In principle, FSSO Collector Agents capture all (user) account logins generated on monitored
Domain Controllers, whether in polling mode or DC Agent mode. This includes service accounts
and admin accounts as well.
In addition, FSSO only accounts for one user per IP (except for terminal servers and the specific
Terminal Server Agent), and the Collector Agent will overwrite an existing login on an IP if another
login event on the same IP is observed.
This means, for FSSO to work as expected, it is necessary to exclude certain accounts to prevent
login information from being overwritten. Generally, service accounts and some admin accounts
need to be excluded to prevent them from overwriting valid user logins when a login event is
triggered by a service account or admin. FSSO Collector Agent provides the ‘Ignore User List’
option for this purpose.
40 | P a g e | M a n i P a h l a v a n z a d e h
Configuration:
A. From the Start menu, select Programs -> Fortinet -> Fortinet Single Sign On Agent and
configure Fortinet Single Sign On Agent.
B. In the Common Tasks section, select 'Set Ignore User List'. The current list of ignored users is
displayed:
41 | P a g e | M a n i P a h l a v a n z a d e h
C. You can add users to the Ignore Users List in the following ways:
1. Manually enter the username: Enter the username in the appropriate format (AD or LDAP
syntax), then select 'Add'. An 'Add Ignore Users' window is displayed; checkmark the users
that are not to be monitored (so will be actively ignored by FSSO Collector Agent), then
select 'Add'.
2. Click Add Users, and then choose the users you do not want to monitor: An 'Add Ignore
Users' window is displayed; checkmark the users that are not to be monitored (so will be
actively ignored by FSSO Collector Agent), then select 'Add'.
3. Click Add by OU, and then select an OU from the directory tree. Be aware that, all users
under the selected OU are added to the Ignore User List: an 'Add Ignore Users by OU'
window is displayed, select an OU from the directory tree, then select 'Add'. All users under
the selected OU will be added to the Ignore User List.
D. Select OK. The FSSO Collector Agent might restart; currently, logged-on user information will
be maintained through the process.
The FSSO collector agent timers play an important role in ensuring the correct
operation of FSSO.
Now, you’ll take a look at each one and how they work.
To work properly ports tcp/139 and tcp/445 need to be available on stations together with
Remote Registry service.
To disable this check set the value to 0.
Take into account that station verification process works in batches. This means the Collector
agent should finish a previous verification job before it will activate this timer.
If Collector Agent cannot contact station, it will change user status to UNKNOWN but it will not
invalidate user permissions until 'Dead entry timeout interval' will be met or until new logon
event will not be detected from the same IP address. If it does connect, it verifies the user and the
status remains OK. To facilitate this verification process, you should set the remote registry
service to auto start on all domain member PCs.
Dead entries usually occur because the computer is unreachable (in standby mode or
disconnected, for example) but the user has not logged off.
When it is disabled, the user will stay with 'logged in' status forever. However, a new logon event
(either from the same user or a different user) from the same workstation will overwrite/refresh
the record.
43 | P a g e | M a n i P a h l a v a n z a d e h
FSSO periodically checks the IP addresses of logged-in users and updates the FortiGate unit when
user IP addresses change.
This timer is especially important in DHCP environments or dynamic environments when mobile
users may change their IP address as they move from one location (floor) to another together
with their laptop (mobile device).
FSSO relies heavily on DNS for IP resolves. Make sure to allow dynamic updates and configured
DHCP server to update DNS whenever client IP address change.
IP address verification prevents users from being locked out if they change IP addresses.
Enter 0 to disable IP address checking if static IP addresses are used. By default, the Collector
agent verifies every 60 seconds that IP is the same.
Example
With the default setting of every 5 minutes, the Collector agent will:
1. Perform an IP address lookup to get the correct IP address, also detect whether IP addresses have been
changed.
2. Check whether it can connect to port 139 or 445 of the remote machine. If not, set status to UNKNOWN, go to
step 5.
3. Try to open the registry of the remote machine. If failed, set status to UNKNOWN, and go to step 5.
4. Check whether the user's registry hive still exists under HKEY_USERS. If still exists, set status to USER_LOGON. If
not, set status to USER_LOGOFF.
5. If the status is:
- UNKNOWN, do nothing (the entry will be removed in 8 hours).
- USER_LOGOFF, the entry will be removed right away and FortiGate will be informed.
- USER_LOGON if:
- IP didn't change, the entry will be kept.
- IP changed, need to update FortiGate with new IP address.
44 | P a g e | M a n i P a h l a v a n z a d e h
Another important FSSO setting is AD access mode. You can set the AD access mode by clicking
Set Directory Access Information. The AD access mode specifies how the collector agent accesses
and collects the user and user group information.
There are two modes that you can use to access AD user information:
• Standard Mode
• Advanced Mode
The main difference between modes is the naming convention used:
• Standard mode uses the Windows convention, NetBios: Domain\groups
The FSSO Collector Agent receives group information from the Collector agent in the
domain\user format. In this mode, the monitored groups are specified on the Collector Agent.
• Advanced mode uses the LDAP convention: CN=User, OU=Name, DC=Domain
The FSSO Collector Agent obtains user group information using LDAP. The benefit of this
method is that it is possible to nest groups within groups. The group information is in standard
LDAP format "CN=myGroup, OU=myOrganizationUnit, DC=myDomain". In this mode the
monitored groups are specified on the FortiGate.
45 | P a g e | M a n i P a h l a v a n z a d e h
Advanced mode supports nested or inherited groups; that is, users can be members of subgroups
that belong to monitored parent groups. Additionally, in advanced mode, FortiGate firewall
policies can be applied to individual users, user groups, and OUs.
In comparison, in standard mode, you can have a firewall policy with a security profile which can
apply to user groups but not to individual users.
In advanced mode, you can configure FortiGate as an LDAP client and configure the group filters
on FortiGate. You can also configure group filters on the collector agent.
If the LDAP on the collector agent fails, it doesn't matter what the LDAP on FortiGate says, FSSO
won't work. If FortiGate LDAP fails, but the LDAP on the collector agent is still running, FortiGate
may not be able to collect logs, but the collector agent still collects logs. So, it is recommended
that you create filters from the collector agent.
It is necessary for the Collector Agent and FortiGate to have the same Directory Access mode, or
the connection between them might fail.
Even though Standard mode is the default mode of operation, sometimes it is necessary to switch
to Advanced mode in order to comply to company polices or authenticate nested groups.
On Collector Agent
1. On the Collector Agent (CA) open the Fortinet Single Sign-On Agent Configuration console and
click Set Directory Access Information button.
2. Select required mode and apply changes by clicking 'ok' button.
3. If any filters have been configured, remove old filters by clicking Set Group Filters and then
selecting filters and pressing 'remove' button.
4. After group filter is specified, FSSO service should be restarted automatically.
46 | P a g e | M a n i P a h l a v a n z a d e h
On FortiGate
1. On the FortiGate, go to Security Fabric -> Fabric Connectors and edit the FSSO entry.
2. To use the group filter specified on the FSSO collector agent, change the User Group Source to
Collector Agent. Save the setting with 'OK' and if needed afterwards 'Apply & Refresh'.
After selecting 'Apply & Refresh' button, the groups specified on FSSO CA group filter should be
seen.
3. To specify a group filter on the FortiGate, change the User Group Source to Local.
Select one of the preconfigured LDAP server entries from the FortiGate and select which groups,
users or OUs it is required to filter.
47 | P a g e | M a n i P a h l a v a n z a d e h
Collector Agent:
- Usually selected when FSSO Collector Agent is configured in Standard mode.
- Means that the Group Filter for users is specified on the Collector Agent
Local:
- Usually selected when FSSO Collector Agent is configured in Advanced mode.
- Means that the Group Filter for users is specified on the Fortigate.
48 | P a g e | M a n i P a h l a v a n z a d e h
AD Group Support
In AD settings, not all group types are supported. AD settings support filtering groups only from:
• Security groups
• Universal groups
• Groups inside OUs
• Local or universal groups that contain universal groups from child domains (only with
Global Catalog)
All FortiGate configurations include a user group called SSO_Guest_Users. When only passive
authentication is used, all the users that do not belong to any FSSO group are automatically
included in this guest group.
This allows an administrator to configure limited network access to guest users that do not belong
to the Windows AD domain.
However, if both passive and active authentication are enabled for specific traffic, you cannot use
SSO_Guest_Users, because traffic from IP addresses not on the FSSO user list must be prompted
to enter their credentials.
49 | P a g e | M a n i P a h l a v a n z a d e h
Begin with the following tips, which are useful in many FSSO troubleshooting situations:
• FSSO has a number of required ports that you must allow through all firewalls, or connections
will fail. These include ports 139 (workstation verification), 445 (workstation verification and
event log polling), 389 (LDAP), and 445 and 636 (LDAPS).
• Configure traffic shaping to have a minimum guaranteed bandwidth of 64 Kbps for each
domain controller. If there is insufficient bandwidth, some FSSO information might not reach
FortiGate.
• In an all-Windows environment, flush inactive sessions. Otherwise, a session for a
nonauthenticated machine may be sent as an authenticated user. This can occur if the DHCP
lease expires for the authenticated user with the collector agent being able to verify that the
user has logged out. Ensure DNS is configured correctly and is updating IP addresses, if
workstation IP addresses change.
• Never set the workstation verify interval to 0. This prevents the collector agent from deleting
stale entries, which means that they can be removed only by a new event overwriting them.
This can be especially dangerous in environments where FSSO and non-FSSO users share the
same DHCP pool.
• When using passive authentication only, include the group of guest users (SSO_Guest_User) in a
policy and give them access. Associate their group with a security policy. If you use active
authentication as a backup, ensure you do not add SSO_Guest_User to any polices.
SSO_Guest_User and active authentication are mutually exclusive.
50 | P a g e | M a n i P a h l a v a n z a d e h
FSSO-related log messages are generated from authentication events. These include user login
and user logout events, and NTLM authentication events. These log messages are central to
network accounting policies, and can also be useful in troubleshooting issues.
To ensure you log all the events needed, set the minimum log level to Notification or
Information. Firewall logging requires Notification as a minimum log level. The closer the log level
is to Debug level; the more information is logged.
➢ Firewall
➢ Event
System activity event All system-related events, such as ping server failure and gateway status.
User activity event All administration events, such as user logins, resets, and configuration updates.
3. Optionally you can enable any or all of the other logging event options.
4. Select Apply.
When troubleshooting FSSO agent-based deployments, you might want to look at the log
messages generated directly on the FSSO collector agent.
The Logging section of the FSSO collector agent allows the following configurations:
• Log level: Select the minimum severity level of logged messages. Includes these levels:
✓ Debug: the most detailed log level. Use it when actively troubleshooting issues.
✓ Information: includes details about login events and workstation checks. This is the
recommended level for most troubleshooting.
✓ Warning: the default level. It provides information about failures.
✓ Error: lists only the most severe events.
• Log file size limit (MB): Enter the maximum size for the log file in MB. The default is 10.
• Log login events in separate logs: Record user login-related information separately from
other logs. The information in this log includes: data received from DC agents, user login/logout
information, workstation IP change information, and data sent to FortiGate devices. When
selected, a summary of events sent and removed from FortiGate is listed under View login Events,
while all other information remains under View Log.
53 | P a g e | M a n i P a h l a v a n z a d e h
• View login Events: If Log login events in separate logs is enabled, you will can view user login-
related information.
Best Practice:
When FSSO collector agent is installed on any member server or domain controller, the Logging
level needs to be changed to 'Debug' and the size needs to be increased 100MB (or more if the
number of users is more).
To see the View Log, click on View Logs. It will open with notepad.
After changing the log level and set the required size, the log file will be available at:
C:\>Program files or Program(x64) \fortinet\FSAE\CollectorAgent.txt
54 | P a g e | M a n i P a h l a v a n z a d e h
If applying the tips from the previous topic didn’t solve your FSSO issues, you may need to apply
some debug commands.
To display the list of FSSO users that are currently logged in, use the CLI command:
diagnose debug authd fsso list
For each user, the username, user group, IP address, and the name of the workstation from which
they logged in shows. The MemberOf section shows the group that was created on the firewall,
to which you mapped the AD group. The same group should show in the User group screen on
the GUI. (Dashboard > Assests & Identities > Firewall Users)
Also, use execute fsso refresh to manually refresh user group information from any
directory service servers connected to FortiGate, using the collector agent.
55 | P a g e | M a n i P a h l a v a n z a d e h
To show the status of communication between FortiGate and each collector agent, you can use
the CLI command: diagnose debug authd fsso server-status
Also, available under diagnose debug authd fsso are commands for clearing the
FortiGate cache of all currently logged in users, filtering the display of the list of logged in users,
and refreshing the login and user group information.
56 | P a g e | M a n i P a h l a v a n z a d e h
The command diagnose debug fsso-polling detail displays status information and
some statistics related to the polls done by FortiGate on each DC in agentless polling. If the read
log offset is incrementing, FortiGate is connecting to and reading the logs on the domain
controller. If the read log offset is incrementing but you are not getting any login events,
check that the group filter is correct and that the domain controller is creating the correct event
IDs.
The command diagnose debug fsso-polling refresh-user flushes information
about all the active FSSO users.
In agentless polling mode, FortiGate frequently polls the event viewer to get the login events. You
can sniff this traffic on port 445.
Also, there is a specific FortiGate daemon that handles polling mode. It is the fssod daemon. To
enable agentless polling mode real-time debug, use the diagnose debug application
fssod -1 command.
57 | P a g e | M a n i P a h l a v a n z a d e h
LAB
Fortinet Single Sign-On Configuration
In this exercise, you will configure FortiGate for FSSO and test user authentication. The lab uses a
demo environment to emulate the behavior of an active FSSO DC agent from the Local-Client VM
using a Python script. Therefore, you will not configure a DC agent to send logon events from the
Local-Client VM.
Objectives
• Review the FSSO configuration on FortiGate
• Test the transparent or automatic user identification by generating user logon events
• Monitor the FSSO status and operation
LAB Topology:
58 | P a g e | M a n i P a h l a v a n z a d e h
Finally, you can verify the user logon event that FortiGate
collects. This event is generated after a user logs in to the
Windows Active Directory domain. Therefore, no firewall
authentication is required.
To review the FSSO server and FSSO user group configuration on FortiGate
1. Connect to the Local-FortiGate GUI, and then log in with the username admin and password password.
4. In the upper-right corner, review the Endpoint/Identity status, and see that the status is Disconnected.
cd Desktop/FSSO/
5. Click OK.
A green up arrow confirms that the communication with the FSSO collector agent is up.
62 | P a g e | M a n i P a h l a v a n z a d e h
Field Value
Name Training
Type Fortinet Single Sign-On (FSSO)
Members TRAININGAD/AD-USERS
3. Click OK.
63 | P a g e | M a n i P a h l a v a n z a d e h
To test the connection without assigning the FSSO user group to a firewall policy
You can see that all users can access the Fortinet website.
4. In the Select Entries section, select User, and then add the Training group.
64 | P a g e | M a n i P a h l a v a n z a d e h
Test FSSO
After a user logs in, they are automatically identified based on their IP address. As a result,
FortiGate allows the user to access network resources as policy decisions are made. You will test
FSSO.
To test the connection after assigning the FSSO user to the firewall policy
1. On the Local-Client VM, open a new browser tab, and then go to http://support.fortinet.com.
• user: aduser1
• IP: 10.0.1.10
To review the connection status between the FSSO collector agent and FortiGate
1. On the Local-FortiGate CLI, log in with the username admin and password password.
2. Enter the following commands to show the connection status between FortiGate and each collector agent:
1. Continuing on the Local-FortiGate CLI, log in with the username admin and password password.
3. On the Local-Client VM, on a terminal window, press Ctrl+C to stop the script, and then enter the following
command again to simulate a user logon event:
2. Click Log & Report > System Events, and then in the User Events widget, click the View Logs arrow.
69 | P a g e | M a n i P a h l a v a n z a d e h
3. Select a log, and then click Details to view more information about it.
70 | P a g e | M a n i P a h l a v a n z a d e h
2. Click Show all FSSO Logons, and then click Refresh if the user's details don't appear.
71 | P a g e | M a n i P a h l a v a n z a d e h