Commit Graph

67 Commits

Author SHA1 Message Date
Rohit Yadav 4347776ac6 CLOUDSTACK-8562: DB-Backed Dynamic Role Based API Access Checker
This feature allows root administrators to define new roles and associate API
permissions to them.

A limited form of role-based access control for the CloudStack management server
API is provided through a properties file, commands.properties, embedded in the
WAR distribution. Therefore, customizing API permissions requires unpacking the
distribution and modifying this file consistently on all servers. The old system
also does not permit the specification of additional roles.

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack

DB-Backed Dynamic Role Based API Access Checker for CloudStack brings following
changes, features and use-cases:
- Moves the API access definitions from commands.properties to the mgmt server DB
- Allows defining custom roles (such as a read-only ROOT admin) beyond the
  current set of four (4) roles
- All roles will resolve to one of the four known roles types (Admin, Resource
  Admin, Domain Admin and User) which maintains this association by requiring
  all new defined roles to specify a role type.
- Allows changes to roles and API permissions per role at runtime including additions or
  removal of roles and/or modifications of permissions, without the need
  of restarting management server(s)

Upgrade/installation notes:
- The feature will be enabled by default for new installations, existing
  deployments will continue to use the older static role based api access checker
  with an option to enable this feature
- During fresh installation or upgrade, the upgrade paths will add four default
  roles based on the four default role types
- For ease of migration, at the time of upgrade commands.properties will be used
  to add existing set of permissions to the default roles. cloud.account
  will have a new role_id column which will be populated based on default roles
  as well

Dynamic-roles migration tool: scripts/util/migrate-dynamicroles.py
- Allows admins to migrate to the dynamic role based checker at a future date
- Performs a harder one-way migrate and update
- Migrates rules from existing commands.properties file into db and deprecates it
- Enables an internal hidden switch to enable dynamic role based checker feature

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-11 09:45:19 +05:30
Rohit Yadav 7ff31f1b22 Merge remote-tracking branch 'origin/inetaddress'
- Tested locally against unit tests
- TravisCI build passed: https://travis-ci.org/apache/cloudstack/builds/41990351
- Manual QA passed for basic auth and saml auth using default IDP settings

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	server/src/com/cloud/api/ApiServlet.java
2014-11-25 14:32:09 +05:30
Laszlo Hornyak 3577423da9 removed executable flags from java classes
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:49:01 +01:00
Wido den Hollander 4bd49df3f5 Use InetAddress for passing Remote Address instead of String 2014-11-21 12:10:35 +01:00
Min Chen b259bccee7 CLOUDSTACK-6742: listVolumes - As regularuser , able to list Vms and
volumes of other users.
2014-05-22 18:28:00 -07:00
Min Chen ba848087f8 Disable IAM feature from 4.4 release. 2014-05-22 18:27:08 -07:00
Min Chen a9072a6612 CLOUDSTACK-6513: Optimize code by removing deprecated utility to
QueryManagerImpl as private method just used for listTemplates and
listAffinityGroups to avoid misuse by new list APIs.
2014-05-01 15:57:28 -07:00
Min Chen 44ff7fea5f CLOUDSTACK-6513: IAM - Templates - When templates are listed with
templatefilter="shared" is used , we see public templates also being
included in the list. This commit reverts listTemplates behavior to 4.3
old logic without using consistent interpretation of list parameters
adopted in new IAM model.
2014-04-28 11:11:53 -07:00
Min Chen 929fbabaa2 Merge branch 'master' into rbac. 2014-01-17 14:37:08 -08:00
Min Chen 6583cb3800 Add listAclGroupsByAccount to QuerySelector adapters and remove
AclProxyService interface.
2014-01-14 16:19:25 -08:00
Prachi Damle fac9f2da0f Adding messageBus events for adding and removal of an account. 2014-01-13 22:12:39 -08:00
Min Chen bae498c89e Handle search of those entities without db view created using new ACL
model.
2014-01-13 21:55:56 -08:00
Min Chen 729a79e85c Refactor db view based list apis to use new IAM acl search criteria. 2013-12-16 14:31:32 -08:00
Min Chen 11c0c263f2 QueryChecker interface and ACL search criteria to be used for query api
for entities with db views created.
2013-11-22 16:36:38 -08:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Min Chen 91e176cb0d Fix a bug in listVm logic to use revokedIds and grantedIds. 2013-11-19 16:41:40 -08:00
Min Chen 2b4703b6e6 Change ListVMsCmd to use new role and entity permission information. 2013-10-09 21:56:52 -07:00
Alena Prokharchyk 1300fc8128 AccountManager/Service: reduced visibility for methods that are called only from AccountManagerImpl itself 2013-05-30 11:18:32 -07:00
Alena Prokharchyk 973fc84d6c AccountManager: fixed unchecked conversion warning 2013-05-30 11:18:32 -07:00
Kishan Kavala 2dd31f331d CLOUDSTACK-1636: Removed the concept of owner region.
Removed region_id from user/account and domain tables.
Removed forwarding of api calls to owner region.
Removed api_key and secret_key from region table.
Included related DB upgrade changes.
2013-03-14 11:53:40 +05:30
Kishan Kavala a1fdb0c2d4 CLOUDSTACK-241: Remove API sync. Merge changes from 4.1 branch. Converted tabs to spaces. 2013-03-08 19:02:41 +05:30
Kishan Kavala e37fdce125 CLOUDSTACK-241: Removed API based account sync. Removed all the related API changes and RegionsAPIUtil.
Converted tabs to spaces in the related files.
Verified account, user and domain APIs.
2013-02-26 14:21:21 +05:30
Kishan Kavala 8b1a5b1de2 - Separated RegionServiceImpl and RegionManagerImpl
- Added comments
- Changed package name to org.apache.cloudstack.region
2013-01-31 18:08:20 +05:30
Kishan Kavala 1f57d925eb Apply API refactoring changes. Make changes to Regions API to work with new code 2013-01-25 18:41:59 +05:30
Rohit Yadav ed0637b8c2 api: Refactor move acl to org.apache.cloudstack
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 15:30:58 -08:00
Min Chen c167ad45e3 Move view based VO and Dao classes to cloud-server module to hide the
details from API client, also extract query related methods into
QueryService interface.
2012-12-14 10:47:58 -08:00
Rohit Yadav e398b1e47a api: Refactor command and response classes to org.apache.cloudstack.api.*
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-07 19:23:24 -08:00
Min Chen b0ce8fd4ff api: Optimize and improve api, db call perfomance
This is part 1 of list API refactoring. Commands covered:
listVmsCmd, listRoutersCmd Response covered:
UserVmResponse, DomainRouterResponse. DB views created:
user_vm_view, domain_router_view.

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-05 20:06:20 -08:00
Kishan Kavala f0f33bf4da Added Mock ApiServer, Regions API calls with api keys 2012-10-17 14:16:36 +05:30
Kishan Kavala 4fcf64dd74 updated regions branch with changes from master 2012-09-27 17:04:59 +05:30
kishan 4ea36b82e9 propogate account changes to other Regions 2012-08-24 15:59:59 +05:30
David Nalley e87558256c Patch from Chip Childers
https://reviews.apache.org/r/5704/
License header updates for the server folder
2012-07-02 09:51:21 -04:00
saksham f6d16d0ab5 CS-15018: Event USER.LOGIN should contain the client IP address. Changes made in accordance with the coding convention.
Reviewed-by: Alena Prokharchyk
2012-06-18 10:18:30 -07:00
frank 2f634c0913 Switch to Apache license 2012-04-03 04:50:05 -07:00
Alena Prokharchyk cad392cd68 bug 13335: fixed listProjectInvitations by projectId
status 13335: resolved fixed
2012-02-07 13:16:27 -08:00
Alena Prokharchyk f0c4980dff bug 13110: use Ternary data structure when build search criteria
status 13110: resolved fixed
2012-01-16 14:15:28 -08:00
Alena Prokharchyk c581506103 bug 12306: list* command revamp 2012-01-09 10:07:42 -08:00
Alena Prokharchyk 8d27ecf4de bug 12635: enable project account when activate the project
status 12635: resolved fixed
2011-12-19 12:23:41 -08:00
frank d6db4a686e Bug 11313 - Add an account param/detail/map in the XXXAccount API calls
status 11313: resolved fixed
2011-11-07 14:24:36 -08:00
alena b413a625f4 1) replaced joinProject API with updateProjectInvitation api. You can accept/decline the invitataion with this command
2) Added deleteProjectInviation command. Can be executed by project admin only
2011-10-27 18:32:00 -07:00
alena 998568283c Don't allow to add accounts to the domain of type Project
Don't allow to manipulate (delete/update) accounts/domains of type Project
2011-10-05 13:24:25 -07:00
alena ccd47c1b21 Implemented Project Invitations 2011-09-26 17:47:20 -07:00
alena a1331d1cfc Intermidiate checkin to Project feature:
1) Introduce new managers - ProjectManager and DomainManager. Moved all domain related code from AccountManager to DomainManager.
2) Moved some code from ManagementServerImpl to the correct managers.
3) New resource limit for Domain - Project
2011-09-20 18:35:28 -07:00
alena ba64010cb5 bug 11470: 1) fixed listResourceLimits 2) Fixed -1 to be treated as unlimited for all the resources
status 11470: resolved fixed
2011-09-19 09:47:07 -07:00
alena f6a79c603f bug 11036: resource count update is refactored
status 11036: resolved fixed

1) Use row locks instead of global lock when update resource_count table. When update resource_count for account, make sure that we lock account+all related domains
2) Insert resource_count records for account/domain at the moment when account/domain is created.
3) As a part of DB upgrade, insert missing resource_count records for all non-removed accounts/domains

Conflicts:

	core/src/com/cloud/alert/AlertManager.java
	server/test/com/cloud/agent/MockAgentManagerImpl.java
2011-09-13 10:47:36 -07:00
alena e3f179844e bug 11236: domainAdmin/regularUser can edit/delete/copy/extract Public template/iso only if it was created by them. They still can use/see public template/iso when execute list/deploy/attachIso commands. Root admin can operate with other people templates w/o any restrictions.
status 11236: resolved fixed
2011-08-24 14:48:35 -07:00
Murali Reddy 6310991bdc bug 9419: implement api to reset resource count
added a command to reset resource count for account/domain based on real usage of resources
2011-06-13 10:55:57 +05:30
nit debe236a8d bug 8710: CONTD....Introducing a new user role in cloudstack called RESOURCE_DOMAIN_ADMIN. The role would have all the domain_admin rights and the rights to list zone,pods,clusters and so on. More info in the bug 2011-04-11 19:40:37 +05:30
alena a8e70cf9b4 bug 8763: Fixed account cleanup process - don't destroy networks when vm expunge failed
status 8763: resolved fixed

Conflicts:

	server/src/com/cloud/user/AccountManagerImpl.java
2011-03-01 14:25:09 -08:00