Role Based Access Control¶
Methods for managing role based access control (RBAC) within Landscape.
Central to RBAC is the concept of a role. Roles can have permissions, access groups and administrators associated with them.
AddAccessGroupsToRole¶
Add the given access groups to a role.
Arguments:
- name: The name of the role to modify.
- access_groups: A list of names of access groups to add.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- UnknownAccessGroups: One or more of the given access groups are unknown.
- ReadOnlyRoleError: The role’s access groups are read-only.
For example, the following request adds the access group ‘my-group’ to the role named ‘MyRole’. Any person with this role granted will inherit ‘my-group’ permissions:
?action=AddAccessGroupsToRole&name=MyRole &access_groups.1=my-groupThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": [], "access_groups": ["my-group"] }
AddPermissionsToRole¶
Add permissions to a role.
Arguments:
- name: The name of the role to modify.
- permissions: A list of permissions to add.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- InvalidPermissions: One or more of the given permissions are invalid.
- ReadOnlyRole: The specified role can’t be modified.
For example, the following request adds the ‘ExecuteScript’ permission to the role named ‘MyRole’:
?action=AddPermissionsToRole&name=MyRole&permissions.1=ExecuteScriptThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": ["ExecuteScript"], "persons": [], "access_groups": [] }
AddPersonsToRole¶
Add the given persons to a role. Those persons will be granted the role.
Arguments:
- name: The name of the role to modify.
- persons: A list of emails of persons to add.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- UnknownPersons: One or more of the given emails are unknown.
For example, the following request grants the role named ‘MyRole’ to the person in the account with email 'john@example.com‘:
?action=AddPersonsToRole&name=MyRole&persons.1=john@example.comThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": ["john@example.com"], "access_groups": [] }
CopyRole¶
Copy an existing access role to an access role with a new name.
Arguments:
- name: The name of an existing access role to copy.
- destination_name: The name of the copied role. It must start with a letter and can contain alphanumeric characters, ‘-‘ and ‘+’.
- description: Optional description of the role.
The following errors may be raised:
- UnknownRole: No role with the specified name is found.
- DuplicateRole: A role with the specified name exists.
- InvalidRoleName: The provided name is not valid for a role.
For example, the following request creates a role named ‘BaseRole1’ from BaseRole:
?action=CopyRole&name=BaseRole&destination_name=BaseRole1The method returns a JSON serialized representation of the new role:
{"key": 1012, "name": "BaseRole1", "description": "", "permissions": [], "persons": [], "access_groups": [] }
CreateAccessGroup¶
Create a new access group.
Arguments:
- title: The title of the access group.
- parent: Optionally, the name of the access group that this access group should be added as a child of. If this parameter is omitted the child will be added below the root access group of the account.
The following errors may be raised:
- DuplicateAccessGroup: An access group with the specified title already exists.
- InvalidAccessGroup: The provided name is not valid for an access group.
For example, the following request creates an access group named ‘Production’ as child of the access group ‘Servers’:
?action=CreateAccessGroup&name=Production &title=Production&parent=ServersThe method returns a JSON serialized representation of the new access group:
{"title": "MyAccessGroup", "parent": "ParentAccessGroup", "children": "" }
CreateRole¶
Create a new access role.
Arguments:
- name: The name of the role. It must start with a letter and can contain alphanumeric characters, ‘-‘ and ‘+’.
- description: Optional description of the role.
The following errors may be raised:
- DuplicateRole: A role with the specified name exists.
- InvalidRoleName: The provided name is not valid for a role.
For example, the following request creates a role named ‘MyRole’:
?action=CreateRole&name=MyRoleThe method returns a JSON serialized representation of the new role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": [], "access_groups": [] }
GetAccessGroups¶
Get all access groups in the account.
Arguments:
- names: Optionally, a list of access group names to get. Only matching access groups will be returned.
For example, the following request fetches all access groups in the caller’s account:
?action=GetAccessGroupsThe method returns a JSON serialized representation of the account access groups:
[{"name": "MyAccessGroup", "title": "", "parent": "ParentAccessGroup", "children": ""}]
GetPermissions¶
Get all available permissions.
Example of valid call:
?action=GetPermissionsThe method returns a JSON serialized list of permissions:
[{"name": "ViewComputer", "title": "View Computers"}, {"name": "ManageComputer", "title": "Manage Computers"}, ...]
GetRoles¶
Get all roles in the account.
Arguments:
- names: Optionally, a list of role names to get. Only matching roles will be returned.
For example, the following request fetches all roles in the caller’s account:
?action=GetRolesThe method returns a JSON serialized representation of the account roles:
[{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "global_permissions": [], "persons": [], "access_groups": []} ]
RemoveAccessGroup¶
Remove an access group.
Arguments:
- name: The name of the access group to remove.
For example, the following request removes an access group named ‘MyAccessGroup’, a child of the access group ‘ParentAccessGroup’:
?action=RemoveAccessGroup&name=MyAccessGroupThe method returns a JSON serialized representation of the state of the parent access group after the child is removed:
{"name": "ParentAccessGroup", "title": "parent", "parent": "GrandParentAccessGroup", "children": "" }
RemoveAccessGroupsFromRole¶
Remove the given access groups from a role.
Arguments:
- name: The name of the role to modify.
- access_groups: A list of names of access groups to remove.
For example, the following request removes the access group ‘my-group’ from the role named ‘MyRole’. Any person with this role granted will lose ‘my-group’ permissions:
?action=RemoveAccessGroupsFromRole&name=MyRole &access_groups.1=my-groupThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": [], "access_groups": [] }
RemovePermissionsFromRole¶
Remove permissions from a role.
Arguments:
- name: The name of the role to modify.
- permissions: A list of permissions to remove.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- InvalidPermissions: One or more of the given permissions are invalid.
- ReadOnlyRole: The specified role can’t be modified.
For example, the following request will remove the ‘ExecuteScript’ permission to the role named ‘MyRole’:
?action=RemovePermissionsFromRole&name=MyRole &permissions.1=ExecuteScriptThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": [], "access_groups": [] }
RemovePersonsFromRole¶
Remove the given people from a role.
Arguments:
- name: The name of the role to modify.
- persons: A list of the email addresses of people to remove.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- UnknownPersons: One or more of the given email addresses are unknown.
For example, the following request removes the role named ‘MyRole’ from the person in the account with email 'john@example.com‘:
?action=RemovePersonsFromRole&name=MyRole&persons.1=john@example.comThe method returns a JSON serialized representation of the edited role:
{"key": 1012, "name": "MyRole", "description": "", "permissions": [], "persons": [], "access_groups": [] }
RemoveRole¶
Removes an access role.
Arguments:
- name: The name of the role.
The following errors may be raised:
- UnknownRole: No role with the specified name was found.
- InvalidRoleName: When trying to remove the default GlobalAdmin role.
For example, the following request removes a role named ‘MyRole’:
?action=RemoveRole&name=MyRoleAn empty response is returned is the role is successfuly removed:
{}