Overview
Resources
Remote authentication: List all authentication sequences
Returns a list of all supported authentication sequences of primary and fallback authentication methods.
GET https://{device}/api/mgmt.remote_authentication/1.0/all_auth_sequencesAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "id": number, "authentication_sequence": string } ] Example: [ { "id": 1, "authentication_sequence": "Local, RADIUS, TACACS+" }, { "id": 2, "authentication_sequence": "Local, TACACS+, RADIUS" }, { "id": 3, "authentication_sequence": "Local, RADIUS" }, { "id": 4, "authentication_sequence": "Local, TACACS+" }, { "id": 5, "authentication_sequence": "Local only" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GetAllAuthSequences | <array of <object>> | List of all supported authentication sequences along with their unique IDs of primary and fallback authentication methods | |
GetAllAuthSequences[item] | <object> | ||
GetAllAuthSequences[item].id | <number> | Unique ID denoting each authentication sequence | |
GetAllAuthSequences[item]. authentication_sequence |
<string> | authentication sequence in string format |
Remote authentication: Get current authentication sequence
Returns currently set authentication sequence of primary and fallback authentication methods.
GET https://{device}/api/mgmt.remote_authentication/1.0/current_auth_sequenceAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "id": number, "authentication_sequence": string } Example: { "id": 1, "authentication_sequence": "Local, RADIUS, TACACS+" }
Property Name | Type | Description | Notes |
---|---|---|---|
response | <object> | Dictionary showing ID and authentication sequenceof | |
response.id | <number> | Unique ID denoting each authentication sequence | |
response.authentication_sequence | <string> | authentication sequence in string format |
Remote authentication: Set current authentication sequence
Sets current authentication sequence.
POST https://{device}/api/mgmt.remote_authentication/1.0/current_auth_sequenceAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "id": number } Example: { "id": 1 }
Property Name | Type | Description | Notes |
---|---|---|---|
SetCurrentAuthentication | <object> | ID of the authentication sequence | |
SetCurrentAuthentication.id | <number> |
On success, the server does not provide any body in the responses.
Remote authentication: Add radius server
Adds new radius server.
POST https://{device}/api/mgmt.remote_authentication/1.0/radius/serverAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "address": string, "port": number, "secret": string, "protocol": string, "enabled": boolean } Example: { "address": "10.70.45.14", "port": 1812, "secret": "secretKey", "protocol": "PAP", "enabled": true }
Property Name | Type | Description | Notes |
---|---|---|---|
AddRadiusServer | <object> | Required fields to add a new radius server | |
AddRadiusServer.address | <string> | Server IP | |
AddRadiusServer.port | <number> | Server Port | |
AddRadiusServer.secret | <string> | Secret key | |
AddRadiusServer.protocol | <string> | Protocol | |
AddRadiusServer.enabled | <boolean> |
On success, the server does not provide any body in the responses.
Remote authentication: List all radius servers
Returns a list of all radius servers.
GET https://{device}/api/mgmt.remote_authentication/1.0/radius/serverAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "server_id": number, "port": number, "order": number, "address": string, "protocol": string, "secret": string, "enabled": number } ] Example: [ { "server_id": 1, "port": 1812, "order": 0, "address": "10.70.45.13", "protocol": "PAP", "secret": "****************", "enabled": 1 }, { "server_id": 2, "port": 1812, "order": 1, "address": "10.70.45.14", "protocol": "PAP", "secret": "****************", "enabled": 1 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GetAllRadiusServer | <array of <object>> | List of all radius servers | |
GetAllRadiusServer[item] | <object> | ||
GetAllRadiusServer[item].server_id | <number> | Unique ID denoting each radius server | |
GetAllRadiusServer[item].port | <number> | Server Port | |
GetAllRadiusServer[item].order | <number> | Index of radius servers in all radius server's order list | |
GetAllRadiusServer[item].address | <string> | Server IP | |
GetAllRadiusServer[item].protocol | <string> | Server protocol | |
GetAllRadiusServer[item].secret | <string> | Secret key passed while adding server, it will be cloaked(instead of text "*" will be shown) to reveal it pass "uncloak" argument in API's URL | |
GetAllRadiusServer[item].enabled | <number> | 1 denoting to true and 0 to false |
Remote authentication: Update an existing radius server
Updates a radius server having server ID passed in request URL.
PUT https://{device}/api/mgmt.remote_authentication/1.0/radius/server/<id>Authorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "address": string, "port": number, "secret": string, "protocol": string, "enabled": boolean } Example: { "address": "10.70.45.14", "port": 1812, "secret": "secretKey", "protocol": "PAP", "enabled": true }
Property Name | Type | Description | Notes |
---|---|---|---|
UpdateRadiusServer | <object> | Required fields to updatea a radius server | |
UpdateRadiusServer.address | <string> | Server IP | |
UpdateRadiusServer.port | <number> | Server Port | |
UpdateRadiusServer.secret | <string> | Secret key | |
UpdateRadiusServer.protocol | <string> | Protocol | |
UpdateRadiusServer.enabled | <boolean> |
On success, the server does not provide any body in the responses.
Remote authentication: Delete a radius server by ID
Deletes a radius server having server ID passed in request URL.
DELETE https://{device}/api/mgmt.remote_authentication/1.0/radius/server/<id>Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Remote authentication: Delete all radius servers
Deletes all radius servers.
DELETE https://{device}/api/mgmt.remote_authentication/1.0/radius/serverAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Remote authentication: Reorder radius server
This method can be used or multiple scenarios, mainly if user wants to change the order of existing servers, in-order to change the order first use GET API to list all radius servers (pass "uncloak" argument to reveal secret else it cloaked keys won't work)then change the server in that returned at which ever order you want to have and then pass the same list of servers as body to this request, internally this API will be deleting all existing radius servers and inserting one by one passed in the body .
POST https://{device}/api/mgmt.remote_authentication/1.0/radius/reorderAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
[ { "port": number, "address": string, "protocol": string, "secret": string, "enabled": number } ] Example: [ { "server_id": 1, "port": 1812, "order": 0, "address": "10.70.45.13", "protocol": "PAP", "secret": "check", "enabled": 1 }, { "server_id": 2, "port": 1812, "order": 1, "address": "10.70.45.14", "protocol": "PAP", "secret": "test", "enabled": 1 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
ReorderRadiusServers | <array of <object>> | List of radius servers | |
ReorderRadiusServers[item] | <object> | ||
ReorderRadiusServers[item].port | <number> | Server Port | |
ReorderRadiusServers[item].address | <string> | Server IP | |
ReorderRadiusServers[item].protocol | <string> | Server protocol | |
ReorderRadiusServers[item].secret | <string> | Secret key | |
ReorderRadiusServers[item].enabled | <number> | 1 denoting to true and 0 to false |
On success, the server does not provide any body in the responses.
Remote authentication: Get global radius settings
Returns radius settings like NAS settings, connection timeout and max number of tries.
GET https://{device}/api/mgmt.remote_authentication/1.0/radius/settingsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "authentication": { "use_nas_id": boolean, "nas_id_type": string, "nas_id_value": string, "use_nas_ip": boolean }, "connection_timeout": number, "max_number_of_tries": number } Example: { "authentication": { "use_nas_id": true, "nas_id_type": "custom", "nas_id_value": "customValue", "use_nas_ip": false }, "connection_timeout": 5, "max_number_of_tries": 3 }
Property Name | Type | Description | Notes |
---|---|---|---|
GetRadiusSettings | <object> | Dictionary showing NAS settings, connection timeout and max number of tries. | |
GetRadiusSettings.authentication | <object> | NAS-Identifier and/or NAS-IP-Address to be sent to RADIUS Servers. | |
GetRadiusSettings.authentication. use_nas_id |
<boolean> | Send NAS-Identifier as part of Authentication Request | |
GetRadiusSettings.authentication. nas_id_type |
<string> | "custom" if want to use custom NAS-Identifier or set "dyanmic" if want to use the hostname of the SteelCentral Flow Gateway as a NAS-Identifier | |
GetRadiusSettings.authentication. nas_id_value |
<string> | Nas-identifier value | |
GetRadiusSettings.authentication. use_nas_ip |
<boolean> | Send NAS-IP-Address as part of Authentication Request | |
GetRadiusSettings.connection_timeout | <number> | connection timeout time in seconds | |
GetRadiusSettings.max_number_of_tries | <number> | max number of tries |
Remote authentication: Set global radius settings
Sets global radius settings
POST https://{device}/api/mgmt.remote_authentication/1.0/radius/settingsAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "authentication": { "use_nas_id": boolean, "nas_id_type": string, "nas_id_value": string, "use_nas_ip": boolean }, "connection_timeout": number, "max_number_of_tries": number } Example: { "connection_timeout": 5, "max_number_of_tries": 3 }
Property Name | Type | Description | Notes |
---|---|---|---|
SetRadiusSettings | <object> | ||
SetRadiusSettings.authentication | <object> | Set NAS-Identifier and/or NAS-IP-Address to be sent to RADIUS Servers, "use_nas_id" and "use_nas_ip" both can't be empty | |
SetRadiusSettings.authentication. use_nas_id |
<boolean> | Send NAS-Identifier as part of Authentication Request | |
SetRadiusSettings.authentication. nas_id_type |
<string> | set "custom" if want to use custom NAS-Identifier or set "dyanmic" if want to use the hostname of the SteelCentral Flow Gateway as a NAS-Identifier | |
SetRadiusSettings.authentication. nas_id_value |
<string> | If "nas_id_type" is set to "custom" then it is mandatory to pass Nas-identifier value | |
SetRadiusSettings.authentication. use_nas_ip |
<boolean> | Send NAS-IP-Address as part of Authentication Request | |
SetRadiusSettings.connection_timeout | <number> | connection timeout time in seconds | |
SetRadiusSettings.max_number_of_tries | <number> | max number of tries |
On success, the server does not provide any body in the responses.
Remote authentication: Get radius roles and s attribute mapping
Returns all roles and permissions along with their attribut's ID and attributes value for radius servers.
GET https://{device}/api/mgmt.remote_authentication/1.0/radius/role_mappingAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "role": string, "attribute": number, "attribute_value": string } ] Example: [ { "role": "Developer", "attribute": null, "attribute_value": null }, { "role": "Administrator", "attribute": 17164, "attribute_value": "2" }, { "role": "Operator", "attribute": null, "attribute_value": null }, { "role": "Monitor", "attribute": null, "attribute_value": null }, { "role": "Event Viewer", "attribute": null, "attribute_value": null }, { "role": "Dashboard Viewer", "attribute": null, "attribute_value": null }, { "role": "Restricted", "attribute": null, "attribute_value": null }, { "role": "Allow to view active directory user information", "attribute": null, "attribute_value": null }, { "role": "Allow to edit Dashboards", "attribute": null, "attribute_value": null }, { "role": "Allow to view packet details", "attribute": null, "attribute_value": null }, { "role": "Limit Data Resolution to only \"automatic\"", "attribute": null, "attribute_value": null } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GetRadiusRoleMapping | <array of <object>> | List of all roles and permissions along with their attribut's ID and attributes value | |
GetRadiusRoleMapping[item] | <object> | ||
GetRadiusRoleMapping[item].role | <string> | Name of role or permission | |
GetRadiusRoleMapping[item].attribute | <number> | Attribute ID | |
GetRadiusRoleMapping[item]. attribute_value |
<string> | Attribute value |
Remote authentication: Set radius roles and s attribute mapping
Sets the roles and permissions with attribut's ID and attributes value.
POST https://{device}/api/mgmt.remote_authentication/1.0/radius/role_mappingAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
[ { "role": string, "attribute": number, "attribute_value": string } ] Example: [ { "role": "Administrator", "attribute": 17164, "attribute_value": "2" }, { "role": "Limit Data Resolution to only \"automatic\"", "attribute": 17164, "attribute_value": "7" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
SetRadiusRoleMapping | <array of <object>> | Required fields to set the roles and permissions with attribut's ID and attributes value | |
SetRadiusRoleMapping[item] | <object> | ||
SetRadiusRoleMapping[item].role | <string> | Name of role or permission | |
SetRadiusRoleMapping[item].attribute | <number> | Attribute ID | |
SetRadiusRoleMapping[item]. attribute_value |
<string> | Attribute value |
On success, the server does not provide any body in the responses.
Remote authentication: Add tacacs server
Adds new tacacs server.
POST https://{device}/api/mgmt.remote_authentication/1.0/tacacs/serverAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "address": string, "port": number, "secret": string, "protocol": string, "client_port": number, "enabled": boolean } Example: { "address": "10.70.45.14", "port": 1812, "secret": "secretKey", "protocol": "PAP", "client_port": "70", "enabled": true }
Property Name | Type | Description | Notes |
---|---|---|---|
AddTacacsServer | <object> | Required fields to add a new tacacs server | |
AddTacacsServer.address | <string> | Server IP | |
AddTacacsServer.port | <number> | Server Port | |
AddTacacsServer.secret | <string> | Secret key | |
AddTacacsServer.protocol | <string> | Protocol | |
AddTacacsServer.client_port | <number> | client port | |
AddTacacsServer.enabled | <boolean> |
On success, the server does not provide any body in the responses.
Remote authentication: List all tacacs servers
Returns a list of all tacacs servers.
GET https://{device}/api/mgmt.remote_authentication/1.0/tacacs/serverAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "server_id": number, "port": number, "order": number, "address": string, "protocol": string, "client_port": string, "secret": string, "enabled": number } ] Example: [ { "server_id": 1, "port": 1812, "order": 0, "address": "10.70.45.13", "protocol": "PAP", "client_port": "8080", "secret": "****************", "enabled": 1 }, { "server_id": 2, "port": 1812, "order": 1, "address": "10.70.45.14", "protocol": "PAP", "client_port": "7000", "secret": "****************", "enabled": 1 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GetAllTacacsServer | <array of <object>> | List of all tacacs servers | |
GetAllTacacsServer[item] | <object> | ||
GetAllTacacsServer[item].server_id | <number> | Unique ID denoting each tacacs server | |
GetAllTacacsServer[item].port | <number> | Server Port | |
GetAllTacacsServer[item].order | <number> | Index of tacacs servers in all radius server's order list | |
GetAllTacacsServer[item].address | <string> | Server IP | |
GetAllTacacsServer[item].protocol | <string> | Server protocol | |
GetAllTacacsServer[item].client_port | <string> | client port | |
GetAllTacacsServer[item].secret | <string> | Secret key passed while adding server, it will be cloaked(instead of text "*" will be shown) to reveal it pass "uncloak" argument in API's URL | |
GetAllTacacsServer[item].enabled | <number> | 1 denoting to true and 0 to false |
Remote authentication: Update an existing tacacs server
Updates a tacacs server having server ID passed in request URL.
PUT https://{device}/api/mgmt.remote_authentication/1.0/tacacs/server/<id>Authorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "address": string, "port": number, "secret": string, "client_port": number, "protocol": string, "enabled": boolean } Example: { "address": "10.70.45.14", "port": 1812, "secret": "secretKey", "client_port": 7000, "protocol": "PAP", "enabled": true }
Property Name | Type | Description | Notes |
---|---|---|---|
UpdateTacacsServer | <object> | Required fields to updatea a tacacs server | |
UpdateTacacsServer.address | <string> | Server IP | |
UpdateTacacsServer.port | <number> | Server Port | |
UpdateTacacsServer.secret | <string> | Secret key | |
UpdateTacacsServer.client_port | <number> | client port | |
UpdateTacacsServer.protocol | <string> | Protocol | |
UpdateTacacsServer.enabled | <boolean> |
On success, the server does not provide any body in the responses.
Remote authentication: Delete a tacacs server by ID
Deletes a tacacs server having server ID passed in request URL.
DELETE https://{device}/api/mgmt.remote_authentication/1.0/tacacs/server/<id>Authorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Remote authentication: Delete all tacacs servers
Deletes all radius servers.
DELETE https://{device}/api/mgmt.remote_authentication/1.0/tacacs/serverAuthorization
This request requires authorization.
Response BodyOn success, the server does not provide any body in the responses.
Remote authentication: Reorder tacacs server
This method can be used or multiple scenarios, mainly if user wants to change the order of existing servers, in-order to change the order first use GET API to list all tacacs servers (pass "uncloak" argument to reveal secret else it cloaked keys won't work)then change the server in that returned at which ever order you want to have and then pass the same list of servers as body to this request, internally this API will be deleting all existing tacacs servers and inserting one by one passed in the body .
POST https://{device}/api/mgmt.remote_authentication/1.0/tacacs/reorderAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
[ { "port": number, "address": string, "protocol": string, "client_port": number, "secret": string, "enabled": number } ] Example: [ { "server_id": 1, "port": 1812, "order": 0, "address": "10.70.45.13", "protocol": "PAP", "client_port": 710, "secret": "check", "enabled": 1 }, { "server_id": 2, "port": 1812, "order": 1, "address": "10.70.45.14", "protocol": "PAP", "client_port": 700, "secret": "test", "enabled": 1 } ]
Property Name | Type | Description | Notes |
---|---|---|---|
ReorderTacacsServers | <array of <object>> | List of tacacs servers | |
ReorderTacacsServers[item] | <object> | ||
ReorderTacacsServers[item].port | <number> | Server Port | |
ReorderTacacsServers[item].address | <string> | Server IP | |
ReorderTacacsServers[item].protocol | <string> | Server protocol | |
ReorderTacacsServers[item].client_port | <number> | client port | |
ReorderTacacsServers[item].secret | <string> | Secret key | |
ReorderTacacsServers[item].enabled | <number> | 1 denoting to true and 0 to false |
On success, the server does not provide any body in the responses.
Remote authentication: Get tacacs server's settings
Returns connection timeout time in seconds along with authorization service for any tacacs server.
GET https://{device}/api/mgmt.remote_authentication/1.0/tacacs/settingsAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
{ "connection_timeout": number, "auth_service": string } Example: { "connection_timeout": 5, "auth_service": "serviceName" }
Property Name | Type | Description | Notes |
---|---|---|---|
GetTacacsSettings | <object> | Dictionary showing connection timeout and auth_service | |
GetTacacsSettings.connection_timeout | <number> | connection timeout time in seconds | |
GetTacacsSettings.auth_service | <string> | authorization service name |
Remote authentication: Set tacacs server's settings
Sets connection timeout time in seconds and authorization service for any tacacs server. User needs to pass only the one which needs to be set no need to pass both unless trying to set both
POST https://{device}/api/mgmt.remote_authentication/1.0/tacacs/connectionAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
{ "connection_timeout": number, "auth_service": string } Example: { "connection_timeout": 5, "auth_service": "serviceName" }
Property Name | Type | Description | Notes |
---|---|---|---|
SetTacacsSettings | <object> | connection timeout and authorization service name | |
SetTacacsSettings.connection_timeout | <number> | connection timeout time in seconds | |
SetTacacsSettings.auth_service | <string> | authorization service name |
On success, the server does not provide any body in the responses.
Remote authentication: Get tacacs roles and s attribute mapping
Returns all roles and permissions along with their attribut's name and attributes value for tacacs servers.
GET https://{device}/api/mgmt.remote_authentication/1.0/tacacs/role_mappingAuthorization
This request requires authorization.
Response BodyOn success, the server returns a response body with the following structure:
- JSON
[ { "role": string, "attribute": string, "attribute_value": string } ] Example: [ { "role": "Developer", "attribute": null, "attribute_value": null }, { "role": "Administrator", "attribute": 17164, "attribute_value": "2" }, { "role": "Operator", "attribute": null, "attribute_value": null }, { "role": "Monitor", "attribute": null, "attribute_value": null }, { "role": "Event Viewer", "attribute": null, "attribute_value": null }, { "role": "Dashboard Viewer", "attribute": null, "attribute_value": null }, { "role": "Restricted", "attribute": null, "attribute_value": null }, { "role": "Allow to view active directory user information", "attribute": null, "attribute_value": null }, { "role": "Allow to edit Dashboards", "attribute": null, "attribute_value": null }, { "role": "Allow to view packet details", "attribute": null, "attribute_value": null }, { "role": "Limit Data Resolution to only \"automatic\"", "attribute": null, "attribute_value": null }, { "role": "Traffic Filter", "attribute": null, "attribute_value": null } ]
Property Name | Type | Description | Notes |
---|---|---|---|
GetTacacsRoleMapping | <array of <object>> | List of all roles and permissions along with their attribut's name and attributes value | |
GetTacacsRoleMapping[item] | <object> | ||
GetTacacsRoleMapping[item].role | <string> | Name of role or permission | |
GetTacacsRoleMapping[item].attribute | <string> | Attribute name | |
GetTacacsRoleMapping[item]. attribute_value |
<string> | Attribute value |
Remote authentication: Set tacacs roles and s attribute mapping
Sets the roles and permissions with attribut's ID and attributes value.
POST https://{device}/api/mgmt.remote_authentication/1.0/tacacs/role_mappingAuthorization
This request requires authorization.
Request BodyProvide a request body with the following structure:
- JSON
[ { "role": string, "attribute": string, "attribute_value": string } ] Example: [ { "role": "Administrator", "attribute": "cascade", "attribute_value": "2" }, { "role": "Limit Data Resolution to only \"automatic\"", "attribute": "class", "attribute_value": "7" } ]
Property Name | Type | Description | Notes |
---|---|---|---|
SetTacacsRoleMapping | <array of <object>> | Required fields to set the roles and permissions with attribut's name and attributes value | |
SetTacacsRoleMapping[item] | <object> | ||
SetTacacsRoleMapping[item].role | <string> | Name of role or permission | |
SetTacacsRoleMapping[item].attribute | <string> | Attribute name | |
SetTacacsRoleMapping[item]. attribute_value |
<string> | Attribute value |
On success, the server does not provide any body in the responses.
Error Codes
In the event that an error occurs while processing a request, the server will respond with appropriate HTTP status code and additional information in the response body:
{ "error_id": "{error identifier}", "error_text": "{error description}", "error_info": {error specific data structure, optional} }
The table below lists the possible errors and the associated HTTP status codes that may returned.
Error ID | HTTP Status | Comments |
---|---|---|
BAD_REQUEST | 400 | Invalid argument. |
AUTH_REQUIRED | 401 | Authentication required. |
AUTH_INVALID_CREDENTIALS | 401 | Make sure the user name is correct and type your password again. Be sure to use the correct case for the user name and password. |
INTERNAL_ERROR | 500 | Internal error. |