Legrand / Raritan / Server Technology Xerus™ JSON-RPC API

Loading...
Searching...
No Matches
LdapManager.idl
1/* SPDX-License-Identifier: BSD-3-Clause */
2/*
3 * Copyright 2010 Raritan Inc. All rights reserved.
4 */
5
6/** Local and Remote Authentication Management */
7module auth {
8
9 /** LDAP server configuration interface */
10 interface LdapManager {
11
12 /** LDAP server type */
13 enumeration ServerType {
14 ACTIVE_DIRECTORY, ///< Active directory
15 OPEN_LDAP ///< OpenLDAP
16 };
17
18 /** LDAP server type */
19 enumeration SecurityProtocol {
20 SEC_PROTO_NONE, ///< no security protocol
21 SEC_PROTO_SSL, ///< use SSL
22 SEC_PROTO_STARTTLS ///< use STARTTLS
23 };
24
25 /** Server settings */
26 structure ServerSettings {
27 string server; ///< IP or name of ldap server
28 ServerType type; ///< Type of LDAP server
29 SecurityProtocol secProto; ///< Security protocol
30 int port; ///< Server port (only for SEC_PROT_NONE and SEC_PROT_STARTTLS)
31 int sslPort; ///< SSL port (only for SEC_PROT_SSL)
32 boolean forceTrustedCert; ///< Enforce trusted certificates
33 boolean allowOffTimeRangeCerts; ///< allow expired and not yet valid certificates
34 string certificate; ///< Certificates
35 string adsDomain; ///< ADS domain
36 boolean useAnonymousBind; ///< use anonymous bind
37 string bindDN; ///< Bind DN
38 string bindPwd; ///< Bind password
39 string searchBaseDN; ///< Base DN for search
40 string loginNameAttr; ///< Login name attribute
41 string userEntryObjClass; ///< User entry object class
42 string userSearchFilter; ///< User search subfilter
43 boolean groupInfoInUserEntry; ///< Group membership info in user entry
44 boolean supportNestedGroups; ///< Support nested groups (only if groupInfoInUserEntry is \c true)
45 string groupMemberAttr; ///< Group member attribute
46 string groupEntryObjClass; ///< Group entry object class
47 string groupSearchFilter; ///< Group search subfilter
48 };
49
50 /**
51 * Get a list of LDAP server settings
52 *
53 * @return list of ServerSettings
54 */
55 vector<ServerSettings> getLdapServers();
56
57 constant int ERR_CYCLIC_DEP = 1; ///< Cyclic dependency in server list (not used anymore)
58 constant int ERR_INVALID_CFG = 2; ///< The server configuration is invalid
59 /**
60 * Sets a list of LDAP servers.
61 * Any existing LDAP Server configuration will be cleared / overwritten.
62 *
63 * @return 0 on success
64 * @return \c ERR_INVALID_CFG in case of invalid configuration
65 */
66 int setLdapServers(in vector<ServerSettings> serverList);
67
68 constant int ERR_SERVER_UNSPECIFIED = 1; ///< Unspecified error
69 constant int ERR_SERVER_UNREACHABLE = 3; ///< LDAP server could not be contacted
70 constant int ERR_AUTHENTICATION_FAILED = 4; ///< User could not be authenticated
71 constant int ERR_NO_ROLES = 5; ///< No roles are defined for the user
72 constant int ERR_NO_KNOWN_ROLES = 6; ///< No known rules are defined for the user
73 /**
74 * Tests an LDAP server configuration.
75 *
76 * @return 0 on success
77 * @return \c ERR_SERVER_UNSPECIFIED an unspecified error occurred
78 * @return \c ERR_INVALID_CFG LDAP server configuration is invalid (reused from setLdapServers)
79 * @return \c ERR_SERVER_UNREACHABLE LDAP server could not be contacted
80 * @return \c ERR_AUTHENTICATION_FAILED user could not be authenticated
81 * @return \c ERR_NO_ROLES no roles are defined for the user
82 * @return \c ERR_NO_KNOWN_ROLES no known roles are defined for the user
83 */
84 int testLdapServer(in string username, in string password, in ServerSettings settings, out string diagMsg);
85
86 };
87
88}
auth::LdapManager
LDAP server configuration interface.
Definition LdapManager.idl:10
auth::LdapManager::ServerType
ServerType
LDAP server type.
Definition LdapManager.idl:13
auth::LdapManager::ACTIVE_DIRECTORY
@ ACTIVE_DIRECTORY
Active directory.
Definition LdapManager.idl:14
auth::LdapManager::SecurityProtocol
SecurityProtocol
LDAP server type.
Definition LdapManager.idl:19
auth::LdapManager::SEC_PROTO_NONE
@ SEC_PROTO_NONE
no security protocol
Definition LdapManager.idl:20
auth::LdapManager::SEC_PROTO_SSL
@ SEC_PROTO_SSL
use SSL
Definition LdapManager.idl:21
auth::LdapManager::setLdapServers
int setLdapServers(in vector< ServerSettings > serverList)
Sets a list of LDAP servers.
auth::LdapManager::testLdapServer
int testLdapServer(in string username, in string password, in ServerSettings settings, out string diagMsg)
Tests an LDAP server configuration.
auth::LdapManager::getLdapServers
vector< ServerSettings > getLdapServers()
Get a list of LDAP server settings.
auth
Local and Remote Authentication Management.
Definition AuthManager.idl:7
auth::LdapManager::ServerSettings
Server settings.
Definition LdapManager.idl:26
auth::LdapManager::ServerSettings::type
ServerType type
Type of LDAP server.
Definition LdapManager.idl:28
auth::LdapManager::ServerSettings::groupSearchFilter
string groupSearchFilter
Group search subfilter.
Definition LdapManager.idl:47
auth::LdapManager::ServerSettings::groupMemberAttr
string groupMemberAttr
Group member attribute.
Definition LdapManager.idl:45
auth::LdapManager::ServerSettings::supportNestedGroups
boolean supportNestedGroups
Support nested groups (only if groupInfoInUserEntry is true)
Definition LdapManager.idl:44
auth::LdapManager::ServerSettings::forceTrustedCert
boolean forceTrustedCert
Enforce trusted certificates.
Definition LdapManager.idl:32
auth::LdapManager::ServerSettings::userSearchFilter
string userSearchFilter
User search subfilter.
Definition LdapManager.idl:42
auth::LdapManager::ServerSettings::server
string server
IP or name of ldap server.
Definition LdapManager.idl:27
auth::LdapManager::ServerSettings::certificate
string certificate
Certificates.
Definition LdapManager.idl:34
auth::LdapManager::ServerSettings::groupInfoInUserEntry
boolean groupInfoInUserEntry
Group membership info in user entry.
Definition LdapManager.idl:43
auth::LdapManager::ServerSettings::groupEntryObjClass
string groupEntryObjClass
Group entry object class.
Definition LdapManager.idl:46
auth::LdapManager::ServerSettings::port
int port
Server port (only for SEC_PROT_NONE and SEC_PROT_STARTTLS)
Definition LdapManager.idl:30
auth::LdapManager::ServerSettings::bindDN
string bindDN
Bind DN.
Definition LdapManager.idl:37
auth::LdapManager::ServerSettings::allowOffTimeRangeCerts
boolean allowOffTimeRangeCerts
allow expired and not yet valid certificates
Definition LdapManager.idl:33
auth::LdapManager::ServerSettings::sslPort
int sslPort
SSL port (only for SEC_PROT_SSL)
Definition LdapManager.idl:31
auth::LdapManager::ServerSettings::loginNameAttr
string loginNameAttr
Login name attribute.
Definition LdapManager.idl:40
auth::LdapManager::ServerSettings::bindPwd
string bindPwd
Bind password.
Definition LdapManager.idl:38
auth::LdapManager::ServerSettings::adsDomain
string adsDomain
ADS domain.
Definition LdapManager.idl:35
auth::LdapManager::ServerSettings::userEntryObjClass
string userEntryObjClass
User entry object class.
Definition LdapManager.idl:41
auth::LdapManager::ServerSettings::useAnonymousBind
boolean useAnonymousBind
use anonymous bind
Definition LdapManager.idl:36
auth::LdapManager::ServerSettings::searchBaseDN
string searchBaseDN
Base DN for search.
Definition LdapManager.idl:39
auth::LdapManager::ServerSettings::secProto
SecurityProtocol secProto
Security protocol.
Definition LdapManager.idl:29