默认情况下,fortigate 防火墙在使用LDAP对AD域用户认证时,并不对用户帐号的group组属性进行校验

如果不仅仅想实现认证功能,还想实现授权功能,可以在活动目录上事先建立好不同权限的用户组(该group不一定要放在CN=Users,DC=abc,DC=com下,放在任意创建的OU下都可以),然后在fortigate 防火墙在配置LDAP时,再加上用户帐号的group组属性校验来完成此功能。

比如普通AD用户不能使用×××权限,而只有属于SSL×××组的用户才能使用×××权限,那么在fortigate 防火墙上可以分别建两个ldap,然后在安全策略里分别调用。

配置案例:

事先在AD上的自定义OU=98_IT_device_account,DC=abc,DC=com下创建好SSL×××的用户组

config user ldap
    edit "ldap-***"
        set server "66.0.32.5"
        set cnid "sAMAccountName"
        set dn "DC=abc,DC=com"
        set type regular
        set username "ldap_***[email protected]"
        set password .....NF2QiNf9IWLFHn2/UId8DaYf2bUWDdi.....
        set group "CN=SSL×××,OU=98_IT_device_account,DC=abc,DC=com"
    next
end

 config user ldap
    edit "ldap-normal"
        set server "66.0.32.5"
        set cnid "sAMAccountName"
        set dn "DC=abc,DC=com"
        set type regular
        set username "ldap_***[email protected]"
        set password ENC...........aYf2bUWDdi        
    next
end

 

在防火墙上
diagnose debug application fnbamd –1
diagnose debug enable
用diagnose 去看,看到组检查正确

注意:set group命令只能在命令行(CLI)下 配置,而无法在web页面里设置。参考:
http://kc.forticare.com/default.asp?id=3141&Lang=1

 

关于fortigate 防火墙的过滤器,如下摘自官网

In ldap user config, the set filter command is used for group searching. By default it is set to (&(objectcategory=group)(member=*)), which should be fine for LDAP on Windows AD.
 
The filter used for group searching can be any string depends on LDAP setup. For example:
 
(&(objectcategory=group)(member=*))    Default for Windows AD LDAP
 
(&(objectclass=groupofnames)(member=*))
(&(objectclass=groupofuniquenames)(uniquemember=*))
(&(objectclass=posixgroup)(memberuid=*))    Linux OpenLDAP