Skip to content

Authentification explicit for Microsoft Active Directory services

authmanagers explicit object

The explicit authentification configuration is defined as a dictionnary object and contains an explicit provider.

For example :

'explicit': {
    'show_domains': True,
    'default_domain': 'AD',
    'providers': {
      'AD': { 
        'config_ref': 'adconfig', 
        'enabled': True
       }
}
Variable name Type Description
show_domains boolean Permit the domain name to be listed in API getclientdata, the default value is False
default_domain string Default domain name prefix if the user format does not containthe domain prefix like DOMAIN\USER. If the user login value is USER, the login is prefixed with the default_domain\USER
providers dictionnary { 'AD': { 'config_ref': 'adconfig', 'enabled': True }}

providers configuration

The provider authentification configuration is defined as a dictionnary object and must contain a key name. The key name must be set as the USERDOMAIN and defined in the config_ref with the exact same value.

Providers :

The provider is formated as a dictionnary

{ 'AD': { 'config_ref': 'adconfig', 'enabled': True } }

Variable name Type Description
config_ref string For increased legibility, the USERDOMAIN configuration is defined in a dedicated dictionnary used the key:value 'config_ref': 'adconfig', where key is config_ref and value is the dictionnay variable name.
enable boolean enable or disable the domain entry

The adconfig is a dictionnary. For example :

adconfig : { 'AD': {   'default'       : True, 
                       'ldap_timeout'  : 15,
                       'ldap_protocol' : 'ldap',
                       'ldap_basedn'   : 'DC=ad,DC=domain,DC=local',
                       'ldap_fqdn'     : '_ldap._tcp.ad.domain.local',
                       'domain'        : 'AD',
                       'domain_fqdn': 'AD.DOMAIN.LOCAL',
                       'servers'    : [ '192.168.7.12' ],
                        'kerberos_realm': 'AD.DOMAIN.LOCAL',
                        'query_dcs' : True,
                        'wins_servers'  : [ '192.168.1.12' ],
                        'serviceaccount': { 'login': 'SVCACCOUNT', 'password': 'SVCACCOUNTPASSWORD' }
     }
}

If this example, the Microsoft Active Directory value are set to :

Variable name Value for example
USERDOMAIN AD
USERDNSDOMAIN AD.DOMAIN.LOCAL

For Active Directory authmanagers, replace the variable name with your own value.

Variable name Type Description Example
default boolean Use this domain as default domain True
ldap_basedn string LDAP Base Distinguished Names DC=ad,DC=domain,DC=local
ldap_fqdn string _ldap._tcp.Domain_Name _ldap._tcp.ad.domain.local
domain_fqdn string domain FQDN (also know as Domain_Name) AD.DOMAIN.LOCAL
servers list of string list of the Active Director servers [ '192.168.1.12', '192.168.1.13' ]
kerberos_realm string Replace kerberos_realm wih your kerberos realm (in UPPER CASE) AD.DOMAIN.LOCAL

The explicit authentification is support LDAP and LDAPS bind.

The Microsoft Active Directory value are set to :

Variable name Value
USERDOMAIN AD
USERDNSDOMAIN AD.DOMAIN.LOCAL

For Active Directory authmanagers, replace the variable name with your own value.

Variable name Description Example
ldap_basedn Replace ldap_basedn with your LDAP Base Distinguished Names DC=ad,DC=domain,DC=local
ldap_fqdn Replace ldap_fqdn with the _ldap._tcp fqdn _ldap._tcp.ad.domain.local
domain_fqdn Replace domain_fqdn with domain FQDN value AD.DOMAIN.LOCAL
servers Replace servers with list of the Active Director servers [ '192.168.1.12', '192.168.1.13' ]
kerberos_realm Replace kerberos_realm wih your kerberos realm (in UPPER CASE) AD.DOMAIN.LOCAL

Service Account

The service account is use when od.py starts. It runs query to the Active Directory service to read the subnet and location from the sites in 'CN=Subnets,CN=Sites,CN=Configuration,' + BASE_DN , (for example CN=Subnets,CN=Sites,CN=Configuration,DC=example,DC=com)

Site

This features is only available if a service account is defined. Site is used to locate a user from his ip adress. The attributs location and subnet are cached in memory.

Variable name Type Defautl value
site_subnetdn string CN=Subnets,CN=Sites,CN=Configuration, + config.get('basedn') )
site_scope ldap python ldap.SCOPE_SUBTREE read Python ldap reference for more details
site_filter string (objectClass=subnet)
site_attrs list ['cn', 'siteObject', 'location']

Printers

This features is only available if a service account is defined. Printers are used to list printer available in the current user's site. The site is identified using the user's ip address. location is the join key to match local printer for the user.

Variable name Type Defautl value
printer_printerdn string OU=Applications + config.get('basedn')
printer_scope ldap python ldap.SCOPE_SUBTREE read Python ldap reference for more details
site_filter string (objectClass=printQueue)
site_attrs list [ 'cn', 'uNCName', 'location', 'driverName', 'driverVersion', 'name', 'portName', 'printColor', 'printerName', 'printLanguage', 'printSharename', 'serverName', 'shortServerName', 'url', 'printMediaReady', 'printBinNames', 'printMediaSupported', 'printOrientationsSupported' ]

Great, you have check how the explicit Authentification configuration works.