User account management

The following fields are required for all user account management API requests:

  • authToken - Authentication token generated by Plixer Scrutinizer to allow API access

  • rm - user_api (runmode corresponding to the function set being accessed)

  • action - One or more of the following actions to be initiated by the request:

Request examples

Below are additional details and request examples for actions that can be included in an user account management API call.

createUser

Creating user accounts using the createUser action requires an additional json field containing an array (users) of the following:

  • name - Username for the account

  • pass - Password for the account

  • membership - Array of one or more user group IDs to assign the user account to

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=createUser' \
--form 'json=
{
    "users": [
        {
            "name": "NewAdmin",
            "pass": "NewAdminPassword",
            "membership": [1]
        },
        {
            "name": "NewGuest",
            "pass": "NewGuestPassword",
            "membership": [2]
        }
    ]

}'

Note

User group IDs are stored in the plixer.usergroups table. By default, 1 is the administrators group and 2 is the guest users group.

Returned JSON object

{
    "data": [
       {
           "id": 3,
           "name": "NewAdmin"
       },
       {
           "id": 4,
           "name": "NewGuest"
       }
    ]
}

delUser

Deleting user accounts using the delUser action requires an additional json field containing an array (delUsers) of the usernames and/or user IDs of the accounts to be deleted:

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--header 'Content-Type: application/json' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=delUser' \
--form 'json=
{
    "delUsers": [
        11,
        "NewGuest",
        207
    ]
}'

Returned JSON object

{
    "data": [
       "Deleting user id 11 (1 matched)",
       "Deleting user named 'NewGuest' (1 matched)",
       "Deleting user id 207 (0 matched)"
    ]
}

createUsergroup

Creating user groups using the createUsergroup action requires an additional json field containing an array (usergroups) of the following:

  • name - User group name

  • template_usergroup - Existing user group ID of the existing group to use as the template for the new user group

  • users - Array of usernames or user IDs to be added to the group (if an empty array is passed, an empty user group will be created)

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=createUsergroup' \
--form 'json=
{
    "usergroups": [
        {
            "name": "My Group",
            "template_usergroup": 1,
            "users": [1,"AnotherUser"]
        },
        }
            "name": "Other Group",
            "template_usergroup": 2,
            "users": ["MyUser",2]
        }
    ]

}'

Returned JSON object

{
    "data": [
       {
           "id": 5,
           "name": "My Group",
           "members": [1,"AnotherUser"]
       },
       {
           "name": "Other Group",
           "error": "A usergroup already exists with that name"
       }
    ]
}

delUsergroups

Deleting user groups using the delUsergroups action requires an additional json field containing an array (delUsergroups) of the names and/or IDs of the user groups to be deleted.

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--header 'Content-Type: application/json' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=delUsergroups' \
--form 'json=
{
    "delUsergroups": [
        3,
        "My User Group"
    ]
}

Returned JSON object

{
    "data":[
       "Deleting usergroup id 3 (1 matched)",
       "Deleting usergroup named 'My User Group' (0 matched)",
    ]
}

membership

Editing user group membership using the membership action requires an additional json field containing add and/or remove arrays to specify the usernames/user IDs and user groups to add/remove them to/from.

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=membership' \
--form 'json=
{
    "membership":
    {
        "add": [
            {
                "user_id": 13,
                "usergroup_id": 5
            },
            {
                "user_name": "NewUser",
                "usergroup_name": "Other Group"
            }
        ],
        "remove": [
            {
                "user_name": "USER3",
                "usergroup_id": 4
            }
        ]
    }

}'

Returned JSON object

{
    "data":
        "added": [
            "User 13 added to usergroup 5",
            "User 14 added to usergroup 3"
        ],
        "removed": [
            "User 15 removed from usergroup 4"
        ]
}

prefs

The prefs action modifies one or more user preferences for a single user account and requires an additional json field containing an array (prefs) of all preference changes.

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=prefs' \
--form 'json=
{
    "user_id": 11,
    "prefs": [
        {
            "pref": "statsTopn",
            "setting": 10
        },
        {
            "pref": "language",
            "setting": "english"
        }
    ]
}

Returned JSON object

{
    "data": {
        "updated": [
            "statusTopn updated to 10 for user_id 11",
            "language updated to english for user_id 11"
        ],
        "errors": []
    }
}

permissions

The permissions action updates permissions for one or more user groups and requires an additional json field containing all user groups names/IDs and permission changes as add and remove arrays.

The following table lists all available permission_type and seccode (for use with the “plixer” permission_type) options in the request:

permission_type

device

IP address of a device in hex (e.g. ‘0A010107’)

interface

IP address of a device in hex and the interface index separated by a hyphen(e.g. ‘0A010107-1’)

group

Group ID of a mapping/device group from plixer.groups

report

saved_id of a saved report from reporting.saved_reports

gadget

gadget_id of a dashboard gadget from plixer.dash_gadgets (e.g. ‘welcomeGadget’)

thirdparty

ID of a third-party link from plixer.third_party

plixer

Permission code corresponding to different functions/sections within Plixer Scrutinizer (see below)

seccode

3rdPartyIntegration

Create, edit, and delete third-party integration links

ackBBEvent

Acknowledge alarms

adminTab

Access the Admin tab/section

alarmSettings

Configure alarm notifications

alarmsTab

Access the Alarm Monitor tab/section

allDevices

Access the status of all devices and their interfaces

allGadgets

Access all gadgets created by any user

allGroups

Access all mapping/device groups

allInterfaces

Report on interfaces for any device

allLogalotReports

All Logalot reports

allReportFolders

Access all saved report folders

allReports

Access all saved reports created by any user

allThirdparty

Access all configured third-party links

almDelete

Permanently delete alarms

ApplicationGroups

Configure application groups

asnames

Configure AS names

auditing

Access auditing reports containing logs of Plixer Scrutinizer user actions

auth

Manage external authentication tokens

Authentication

Manage external authentication types

authLdapServers

Manage LDAP server configuration for Plixer Scrutinizer authentication

awsSettings

AWS configuration

changeUserPasswords

Change passwords for other users without needing their credentials

createDashTabs

Create new dashboards

createUsers

Create new local Plixer Scrutinizer user accounts

dashboardAdmin

Manage all dashboards created by any user

DataHistory

Configure data history/retention settings

deleteReport

Delete saved reports regardless of owner

deleteUsers

Delete local Plixer Scrutinizer user accounts

DeviceDetails

Edit device interface details

EmailNotifications

Configure the mailserver for Plixer Scrutinizer reports and emails

faExclusions

Configure flow analytics exclusions

fa_mgmt_link

Configure flow analytics thresholds and settings

feedbackForm

Access the link to send feedback to Plixer

FlowAnalyticsSettings

Access global flow analytics settings

helpTab

Access the Help tab/section

HostNames

Edit hostname information

IPGroups

Configure Plixer Scrutinizer IP groups

language

Create and edit language localization settings

licensing

Configure Plixer Scrutinizer product licensing and features

LogalotPrefs

Configure global alarm settings

MACAddresses

Configure device MAC address information

ManageCollectors

Manage devices collecting flow data for Plixer Scrutinizer

ManageExporters

Manage devices exporting flow data to Plixer Scrutinizer

mappingGroupConfiguration

Create and edit mapping/device groups

mappingObjectConfiguration

Create and edit mapping objects

mapsTab

Access the Network Maps page

myViewTab

Access the Dashboards page

NotificationManager

Manage alarm notifications

PolicyManager

Manage alarm policies

protocolExclusions

Edit protocol exclusions for flow reports

proxySettings

Configure proxy server settings in Plixer Scrutinizer

radiusConf

Manage RADIUS server configuration for Plixer Scrutinizer authentication

ReportDesigner

Design new custom report types

reportFilters

Update the filters used in reports

reportFolders

Manage saved report folders

reportSettings

Reporting engine configuration options

runReport

Run flow reports

saveReport

Name and save flow reports

scheduledReports

Create, edit, and delete scheduled email reports

sf_asa_acls

Configure ASA ACL descriptions

SNMPCredentials

Manage SNMP credentials for polling device information

srCreate

Schedule saved reports to be emailed on a regular basis

sso

Add, delete, and edit Identity Provider configurations for Single Sign-On integration

statusTab

Access the Status tab

syslogNotifications

Syslog server configuration

SystemPreferences

Administrative access to global Plixer Scrutinizer preferences

tacacsConf

Manage TACACS+ server configuration for Plixer Scrutinizer authentication

tos

Edit TOS configuration

userAccounts

Admin access to the user management page

usergroups

Manage Scrutinizer user groups

viewUserIdentity

View identity and access information relevant to GDPR restrictions

viptelaSettings

Configure Viptela settings

Vitals

View Plixer Scrutinizer server vitals reports

wkp

Edit WKP configuration

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=permissions' \
--form 'json=
{
    "permissions":
    {
        "add": [
            {
                "usergroup_name": "Dashboarders",
                "permission_type": "device",
                "seccode": "0A010107"
            }
        ],
        "remove": [
            {
                "usergroup_name": "ReadOnlyReporters",
                "permission_type": "plixer",
                "seccode": "allGadgets"
            }
        ]
    }

}'

Returned JSON object

{
    "data":
    {
        "errors": []
        "updated": [
            "Added device permission 0A010107 to usergroup 26",
            "Removed plixer permission allGadgets from usergroup 27"
        ]
    }
}

changeUsername

The changeUsername action is used to edit the name of an existing user account and requires an additional json field specifying the account (by oldname or user_id) and the new name.

API request example

curl --location  --insecure --request POST 'https://<SCRUTINIZER_ADDRESS>/fcgi/scrut_fcgi.fcgi' \
--form 'authToken=<AUTH_TOKEN>' \
--form 'rm=user_api' \
--form 'action=changeUsername' \
--form 'json=
{
    "changeUsername":
    {
        "oldname": "MyUser",
        "newname": "OpSCT"
    }

}'

Returned JSON object

{
    "data":
    {
        "message": "User MyUser successfully renamed to OpSCT"
    }
}