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 id; ///< Entry ID
28 string server; ///< IP or name of ldap server
29 string adoptSettingsId; ///< Use settings from LDAP server with <ID>
30 ServerType type; ///< Type of LDAP server
31 SecurityProtocol secProto; ///< Security protocol
32 int port; ///< Server port (only for SEC_PROT_NONE and SEC_PROT_STARTTLS)
33 int sslPort; ///< SSL port (only for SEC_PROT_SSL)
34 boolean forceTrustedCert; ///< Enforce trusted certificates
35 boolean allowOffTimeRangeCerts; ///< allow expired and not yet valid certificates
36 string certificate; ///< Certificates
37 string adsDomain; ///< ADS domain
38 boolean useAnonymousBind; ///< use anonymous bind
39 string bindDN; ///< Bind DN
40 string bindPwd; ///< Bind password
41 string searchBaseDN; ///< Base DN for search
42 string loginNameAttr; ///< Login name attribute
43 string userEntryObjClass; ///< User entry object class
44 string userSearchFilter; ///< User search subfilter
45 boolean groupInfoInUserEntry; ///< Group membership info in user entry
46 boolean supportNestedGroups; ///< Support nested groups (only if groupInfoInUserEntry is \c true)
47 string groupMemberAttr; ///< Group member attribute
48 string groupEntryObjClass; ///< Group entry object class
49 string groupSearchFilter; ///< Group search subfilter
50 };
51
52 /**
53 * Get a list of LDAP server settings
54 *
55 * @return list of ServerSettings
56 */
57 vector<ServerSettings> getLdapServers();
58
59 constant int ERR_CYCLIC_DEP = 1; ///< Cyclic dependency in server list
60 constant int ERR_INVALID_CFG = 2; ///< The server configuration is invalid
61 /**
62 * Sets a list of LDAP servers.
63 * Any existing LDAP Server configuration will be cleared / overwritten.
64 *
65 * @return 0 on success
66 * @return \c ERR_CYCLIC_DEP in case of cyclic dependency
67 * @return \c ERR_INVALID_CFG in case of invalid configuration
68 */
69 int setLdapServers(in vector<ServerSettings> serverList);
70
71 constant int ERR_SERVER_UNSPECIFIED = 1; ///< Unspecified error
72 constant int ERR_SERVER_UNREACHABLE = 3; ///< LDAP server could not be contacted
73 constant int ERR_AUTHENTICATION_FAILED = 4; ///< User could not be authenticated
74 constant int ERR_NO_ROLES = 5; ///< No roles are defined for the user
75 constant int ERR_NO_KNOWN_ROLES = 6; ///< No known rules are defined for the user
76 /**
77 * Tests an LDAP server configuration.
78 *
79 * @return 0 on success
80 * @return \c ERR_SERVER_UNSPECIFIED an unspecified error occurred
81 * @return \c ERR_INVALID_CFG LDAP server configuration is invalid (reused from setLdapServers)
82 * @return \c ERR_SERVER_UNREACHABLE LDAP server could not be contacted
83 * @return \c ERR_AUTHENTICATION_FAILED user could not be authenticated
84 * @return \c ERR_NO_ROLES no roles are defined for the user
85 * @return \c ERR_NO_KNOWN_ROLES no known roles are defined for the user
86 */
87 int testLdapServer(in string username, in string password, in ServerSettings settings, out string diagMsg);
88
89 };
90
91}
LDAP server configuration interface.
ServerType
LDAP server type.
@ ACTIVE_DIRECTORY
Active directory.
SecurityProtocol
LDAP server type.
@ SEC_PROTO_NONE
no security protocol
int setLdapServers(in vector< ServerSettings > serverList)
Sets a list of LDAP servers.
int testLdapServer(in string username, in string password, in ServerSettings settings, out string diagMsg)
Tests an LDAP server configuration.
vector< ServerSettings > getLdapServers()
Get a list of LDAP server settings.
Local and Remote Authentication Management.
ServerType type
Type of LDAP server.
string groupSearchFilter
Group search subfilter.
string groupMemberAttr
Group member attribute.
boolean supportNestedGroups
Support nested groups (only if groupInfoInUserEntry is true)
boolean forceTrustedCert
Enforce trusted certificates.
string userSearchFilter
User search subfilter.
string adoptSettingsId
Use settings from LDAP server with <ID>
string server
IP or name of ldap server.
boolean groupInfoInUserEntry
Group membership info in user entry.
string groupEntryObjClass
Group entry object class.
int port
Server port (only for SEC_PROT_NONE and SEC_PROT_STARTTLS)
boolean allowOffTimeRangeCerts
allow expired and not yet valid certificates
int sslPort
SSL port (only for SEC_PROT_SSL)
string loginNameAttr
Login name attribute.
string userEntryObjClass
User entry object class.
boolean useAnonymousBind
use anonymous bind
string searchBaseDN
Base DN for search.
SecurityProtocol secProto
Security protocol.