Icon Web Server Security

The web server uses a role-based access control (RBAC) architecture:

Image

There are three main functional components to this architecture:
  • Privileges

  • Roles

  • Users
Privileges are assigned to roles, which are then assigned to users. Both roles and users can be designated as active or inactive. The net effect is that each user has a set of effective privileges that are the union of all privileges granted to all of the active roles that are granted to the user. Once a user authenticates against the web server, this set of effective privileges is assigned to the web server session that is created during authentication. Please see the Web Server Authentication topic for more information on how sessions are created during authentication.

Privileges are used to secure access to various server objects like databases, dataset commands, server applications, and native server modules. Each of these server objects can be assigned a privilege that determines whether the object is accessible to the user.

Warning If a server object is not assigned a privilege, then it is assumed to be globally accessible to any user. Also, server applications have access to all databases and datasets, regardless of the authenticated user that is making the request to the server application. This makes it very important to monitor and audit who is designated as being able to install/uninstall server applications in the web server.

Privileges can also provide access control within server applications. Server applications can check to see if the user executing a server application request has been granted a given role or privilege using one of the following methods of the incoming web server request instance:

HasRole
HasPrivilege

Please see the Server Applications topic for more information on how to access the properties and methods of incoming web server requests in server applications.

The web server is automatically configured with a set of pre-defined privileges, roles, and users that are primarily used for securing administrative access to the web server. They provide fine-grained control over what administrative functionality is granted to any given role.

Privileges
The following is the list of pre-defined privileges in the web server, separated by functional group:

Privilege Management

PrivilegeDescription
AddPrivilegeAllows the user to add new privileges.
UpdatePrivilegeAllows the user to update existing privileges.
RemovePrivilegeAllows the user to remove existing privileges.
GetPrivilegesAllows the user to enumerate all privileges.

Role Management

PrivilegeDescription
AddRoleAllows the user to add new roles.
UpdateRoleAllows the user to update existing roles.
RemoveRoleAllows the user to remove existing roles.
UpdateRoleActiveStatusAllows the user to update the active status of existing roles.
UpdateRolePrivilegesAllows the user to update the assigned privileges of existing roles.
GetRolePrivilegesAllows the user to enumerate the assigned privileges of existing roles.
GetRolesAllows the user to enumerate all roles.

User Management

PrivilegeDescription
AddUserAllows the user to add new users.
UpdateUserAllows the user to update existing users.
RemoveUserAllows the user to remove existing users.
UpdateUserActiveStatusAllows the user to update the active status of existing users.
UpdateUserLockStatusAllows the user to update the lock status of existing users.
UpdateUserPasswordAllows the user to update the password of existing users.
UpdateUserRolesAllows the user to update the assigned roles of existing users.
GetUserRolesAllows the user to enumerate the assigned roles of existing users.
GetUsersAllows the user to enumerate all users.

Database Management

PrivilegeDescription
TestDatabaseAllows the user to test database connections.
AddDatabaseAllows the user to add new databases.
UpdateDatabaseAllows the user to update existing databases.
RenameDatabaseAllows the user to rename existing databases.
RemoveDatabaseAllows the user to remove existing databases.
GetDatabasePrivilegesAllows the user to get the assigned privileges for an existing database.
SetDatabasePrivilegesAllows the user to set the assigned privileges for an existing database.
GetDatabaseTablesAllows the user to enumerate all base tables in an existing database.
GetDatabasesAllows the user to enumerate all databases.
AddDataSetAllows the user to add new datasets to an existing database.
UpdateDataSetAllows the user to update existing datasets in an existing database.
RenameDataSetAllows the user to rename existing datasets in an existing database.
RemoveDataSetAllows the user to remove existing datasets in an existing database.
AddDataSetCommandAllows the user to add new commands to an existing dataset.
UpdateDataSetCommandAllows the user to update existing commands in an existing dataset.
RenameDataSetCommandAllows the user to rename existing commands in an existing dataset.
RemoveDataSetCommandAllows the user to remove existing commands in an existing dataset.
GetDataSetCommandPrivilegesAllows the user to get the assigned privileges for an existing command.
SetDataSetCommandPrivilegesAllows the user to set the assigned privileges for an existing command.
GenerateDataSetCommandsAllows the user to generate the commands for an existing dataset.

Native Server Module Management

PrivilegeDescription
InstallModuleAllows the user to install a native server module.
RenameModuleAllows the user to rename an existing installed native server module.
UninstallModuleAllows the user to uninstall an existing installed native server module.
GetModulePrivilegesAllows the user to get the assigned privileges for an existing installed native server module.
SetModulePrivilegesAllows the user to set the assigned privileges for an existing installed native server module.
GetModulesAllows the user to enumerate all installed native server modules.

Server Application Management

PrivilegeDescription
InstallApplicationAllows the user to install a server application.
RenameApplicationAllows the user to renaming an existing installed server application.
UninstallApplicationAllows the user to uninstall an existing installed server application.
GetApplicationPrivilegesAllows the user to get the assigned privileges for an existing installed server application.
SetApplicationPrivilegesAllows the user to set the assigned privileges for an existing installed server application.
GetApplicationsAllows the user to enumerate all installed server applications.
DebugApplicationAllows the user to debug an existing installed server application.

Server Status

PrivilegeDescription
GetServerStatusAllows the user to retrieve various server statistics.

Deployment and Folder/File Management

PrivilegeDescription
UploadFilesAllows the user to upload files to the web server.
DownloadFilesAllows the user to download files from the web server as a .zip file.
RenameFileAllows the user to rename existing files on the web server.
RemoveFileAllows the user to remove existing files on the web server.
CreateFolderAllows the user to create new folders on the web server.
RenameFolderAllows the user to rename existing folders on the web server.
RemoveFolderAllows the user to remove existing folders on the web server.
GetFilesAllows the user to enumerate all files in an existing folder.

Roles
The following is the list of pre-defined roles in the web server and their assigned privileges:

RoleDefault Assigned Privileges
AdministratorsAll of the pre-defined privileges
PublicNone

Users
The following is the list of pre-defined users in the web server and their assigned roles:

UserDefault Assigned Roles
AdministratorAdministrators
AnonymousPublic

Default Authentication Information
The pre-defined Administrator user uses the following password (case-sensitive):

EWBDefault

Warning You should not deploy instances of the web server into production without first ensuring that such instances have been properly configured so that the default Administrator password has been changed. For both the 32-bit and 64-bit web server services, but not the console version of the web server included for development purposes, the web server will log a warning into the system log if the default password is still set for the pre-defined Administrator user. Please see the Web Server Logging topic for more information.

The pre-defined Anonymous user does not have a password.
Image