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}
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 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.