FortiNAC
NOTE: FortiNAC is now named FortiNAC-F. For post-9.4 articles, see FortiNAC-F. FortiNAC is a zero-trust network access solution that provides users with enhanced visibility into the Internet of Things (IoT) devices on their enterprise networks.
akanibek
Staff
Staff
Article Id 345096
Description

This article provides the solution when a profiled (Sponsor, System Administrator, Help Desk) remote LDAP user on the FortiNAC-F cannot log in to the GUI.

 

Login_failed page.png

 

Scope

FortiNAC v9.4.X, FortiNAC -F v7.2, FortiNAC -F v7.4.

Solution

To address this issue, it is necessary to be verify if the issue matches to this article. Some debugs need to be enabled, and reproduce the issue:

  1. Enable debugs in the FortiNAC console, and tail 'output.master' while reproducing the issue:

 

execute enter-shell
nacdebug -name DirectoryManager true
nacdebug -name DirectoryAccess true

#Disable debugs after fininshing tshoot:
#nacdebug -name DirectoryManager false
#nacdebug -name DirectoryAccess false

logs
tail -f output.master

 

  1. Reproduce the issue. Stop debugs, and search for these lines. Filter out with search patterns like - 'DirectoryManager', or user account name:

 

yams INFO :: 2024-09-27 12:29:40:744 :: #65348 :: DirectoryUser::Returned from makeClient!!
yams.DirectoryManager FINER :: 2024-09-27 12:29:40:744 :: #65348 :: DirectoryManager::SUCCESS finding user1, ad
yams.DirectoryManager FINER :: 2024-09-27 12:29:40:744 :: #65348 :: kerberos login command /usr/bin/wbinfo --krb5auth=forti.lab\aduser1%
yams INFO :: 2024-09-27 12:29:40:846 :: #65348 :: No client found for ID of aduser1 com.bsc.api.client.AuthRegistrationsException: kerberosAuthentication: Failed to authenticate user: aduser1
com.bsc.api.client.AuthRegistrationsException: User is not in the directory.yams SEVERE :: 2024-09-27 12:29:40:847 :: #65348 :: at com.bsc.plugin.ldap.DirectoryManager.findDirectoryUser(DirectoryManager.java:734)

 

If there is the same output (below there are other debugs snippets to compare), then follow the article. Otherwise, provide a debug grab-log snapshot to the TAC with a timestamp, and test account.

 

To resolve this issue, LDAP settings, and Radius Winbind services need to be checked on FortiNAC side:

Technical Tip: MSCHAPv2 authentication, join FortiNAC in domain and checks
Troubleshooting Tip: FortiNAC Winbind Domain Join fails with 'Included profile file could not be rea...
Troubleshooting Tip: Local Winbind configuration fails to start

 

  1. Go to Admin GUI -> System -> Settings -> Authentication -> LDAP, select the appropriate LDAP server and select the 'Modify' button.

 

LDAPSettings.png

 

  1. Select ‘Additional settings’, and check if the attribute ‘NetBIOS name’ has been filled:

 

LDAP-additional settings.png

 

According to Configuration, the ‘NetBIOS name’ attribute should match the one configured in the Radius Winbind settings, in the case authentication needs to be processed with Kerberos protocol.

 

Additional outputs:

Configurations when authentication could fail:

  1. Different ‘Netbios name’ attribute values are specified.
  2. FortiNAC is not being joined to the domain, and the ‘NetBIOS name’ is configured on the LDAP settings.

 

Debug outputs when NetBIOS name is not similar (LDAP’s value is – ‘xyz.lab’, Radius Winbind value is ‘forti.lab’):

 

yams INFO :: 2024-09-27 12:57:13:421 :: #257951 :: DirectoryUser::Returned from makeClient!!
yams.DirectoryManager FINER :: 2024-09-27 12:57:13:421 :: #257951 :: DirectoryManager::SUCCESS finding user1, ad
yams.DirectoryManager FINER :: 2024-09-27 12:57:13:421 :: #257951 :: kerberos login command /usr/bin/wbinfo --krb5auth=xyz.lab\aduser1%
yams INFO :: 2024-09-27 12:57:13:525 :: #257951 :: No client found for ID of aduser1 com.bsc.api.client.AuthRegistrationsException: kerberosAuthentication: Failed to authenticate user: aduser1
com.bsc.api.client.AuthRegistrationsException: User is not in the directory.yams SEVERE :: 2024-09-27 12:57:13:525 :: #257951 :: at com.bsc.plugin.ldap.DirectoryManager.findDirectoryUser(DirectoryManager.java:734)

 

When values are the same (Winbind is enabled) – authentication is performed using Kerberos authentication:

 

yams.DirectoryManager FINER :: 2024-09-27 12:58:42:083 :: #259499 :: DirectoryManager::SUCCESS finding user1, ad
yams.DirectoryManager FINER :: 2024-09-27 12:58:42:083 :: #259499 :: kerberos login command /usr/bin/wbinfo --krb5auth=forti.lab\aduser1%
yams INFO :: 2024-09-27 12:58:42:088 :: #418 :: CommonMib getArpCacheSNMP error: 2 0 reading 1.3.6.1.2.1.4.22.1.2 from device 192.168.1.1
yams SEVERE :: 2024-09-27 12:58:42:089 :: #418 :: java.lang.NullPointerException
yams.DirectoryManager FINER :: 2024-09-27 12:58:42:187 :: #259499 :: DireectoryManager::kerberosAuthentication: SUCCESS aduser1
yams.DirectoryManager FINER :: 2024-09-27 12:58:42:292 :: #259499 :: DirectoryManager::findDirectoryUser SUCCESS Kerberos authenticating user1, ad
yams.DirectoryManager FINER :: 2024-09-27 12:58:42:292 :: #259499 :: DirectoryManager::findDirectoryUser() - loop thename UserRecord:

 

When the NetBIOS attribute is not specified on the LDAP Settings, authentication is processed with LDAP protocol:

 

yams INFO :: 2024-09-27 12:59:59:327 :: #65348 :: DirectoryUser::Returned from makeClient!!
yams.DirectoryManager FINER :: 2024-09-27 12:59:59:327 :: #65348 :: DirectoryManager::SUCCESS finding user1, ad
yams INFO :: 2024-09-27 12:59:59:327 :: #65348 :: Setting ldap referral to follow 192.168.40.10
yams.DirectoryManager FINER :: 2024-09-27 12:59:59:331 :: #65348 :: DirectoryManager::findDirectoryUser SUCCESS LDAP authenticating user1, ad
yams.DirectoryManager FINER :: 2024-09-27 12:59:59:331 :: #65348 :: DirectoryManager::findDirectoryUser() - loop thename UserRecord: