Raritan / Server Technology Xerus™ PDU JSON-RPC API
TacPlusManager.idl
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Copyright 2020 Raritan Inc. All rights reserved.
4  */
5 
6 /** Local and Remote Authentication Management */
7 module auth {
8 
9  /** TACACS+ server configuration interface */
10  interface TacPlusManager {
11 
12  /** TACACS+ authentication type */
13  enumeration AuthenType {
14  ASCII, ///< Plain text authentication
15  PAP, ///< PAP authentication
16  CHAP, ///< CHAP authentication
17  MSCHAP ///< MSCHAP authentication
18  };
19 
20  /** Server settings */
21  structure ServerSettings {
22  string server; ///< TACACS+ server name or IP address
23  int port; ///< TACACS+ server TCP port
24  int timeoutSeconds; ///< max time from connecting until session completion
25  int retries; ///< max number of allowed retries
26  string sharedSecret; ///< Shared secret between Xerus device and TACACs+ server
27  AuthenType authenType; ///< Authentication type
28  boolean disableAccounting;///< \c true to disable accounting, \c false to enable accounting
29  };
30 
31  constant int ERR_INVALID_CFG = 1; ///< The server configuration is invalid
32  constant int ERR_SERVER_UNSPECIFIED = 2; ///< Unspecified error
33  constant int ERR_INVALID_SHARED_SECRET = 3; ///< The shared secret is invalid
34  constant int ERR_SERVER_UNREACHABLE = 4; ///< TACACS+ server could not be contacted
35  constant int ERR_AUTHENTICATION_FAILED = 5; ///< User could not be authenticated
36  constant int ERR_NO_ROLES = 6; ///< No roles are defined for the user
37  constant int ERR_NO_KNOWN_ROLES = 7; ///< No known rules are defined for the user
38 
39  /**
40  * Get a list of TACACS+ server settings
41  *
42  * @return list of ServerSettings
43  */
44  vector<ServerSettings> getTacPlusServers();
45 
46  /**
47  * Sets a list of TACACS+ servers.
48  * Any existing TACACS+ Server configuration will be cleared / overwritten.
49  *
50  * @return 0 on success
51  * @return \c ERR_INVALID_CFG in case of invalid configuration
52  */
53  int setTacPlusServers(in vector<ServerSettings> serverList);
54 
55  /**
56  * Tests an TACACS+ server configuration.
57  *
58  * @return 0 on success
59  * @return \c ERR_SERVER_UNSPECIFIED an unspecified error occurred
60  * @return \c ERR_INVALID_CFG server configuration is invalid (reused from setTacPlusServers)
61  * @return \c ERR_INVALID_SHARED_SECRET the shared secret is invalid
62  * @return \c ERR_SERVER_UNREACHABLE TACACS+ server could not be contacted
63  * @return \c ERR_AUTHENTICATION_FAILED user could not be authenticated
64  * @return \c ERR_NO_ROLES no roles are defined for the user
65  * @return \c ERR_NO_KNOWN_ROLES no known roles are defined for the user
66  */
67  int testTacPlusServer(in string username, in string password, in ServerSettings settings);
68 
69  };
70 }
TACACS+ server configuration interface.
Definition: TacPlusManager.idl:10
int setTacPlusServers(in vector< ServerSettings > serverList)
Sets a list of TACACS+ servers.
vector< ServerSettings > getTacPlusServers()
Get a list of TACACS+ server settings.
int testTacPlusServer(in string username, in string password, in ServerSettings settings)
Tests an TACACS+ server configuration.
AuthenType
TACACS+ authentication type.
Definition: TacPlusManager.idl:13
@ CHAP
CHAP authentication.
Definition: TacPlusManager.idl:16
@ ASCII
Plain text authentication.
Definition: TacPlusManager.idl:14
@ PAP
PAP authentication.
Definition: TacPlusManager.idl:15
Local and Remote Authentication Management.
Definition: AuthManager.idl:7
Server settings.
Definition: TacPlusManager.idl:21
int port
TACACS+ server TCP port.
Definition: TacPlusManager.idl:23
AuthenType authenType
Authentication type.
Definition: TacPlusManager.idl:27
string server
TACACS+ server name or IP address.
Definition: TacPlusManager.idl:22
boolean disableAccounting
true to disable accounting, false to enable accounting
Definition: TacPlusManager.idl:28
string sharedSecret
Shared secret between Xerus device and TACACs+ server.
Definition: TacPlusManager.idl:26
int timeoutSeconds
max time from connecting until session completion
Definition: TacPlusManager.idl:24
int retries
max number of allowed retries
Definition: TacPlusManager.idl:25