Commit Graph

814 Commits

Author SHA1 Message Date
Abhinandan Prateek 6fdd19fa7e CLOUDSTACK-9571: Fence DB if there are consecutive connection errors. 2016-11-21 15:09:50 +05:30
Rohit Yadav 0856820802 client: remove commands.properties file
We don't need commands.properties file now, remove it

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-26 13:11:51 +05:30
Rohit Yadav f30c52a16c 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

Deprecate commands.properties

- Fixes apidocs and marvin to be independent of commands.properties usage
- Removes bundling of commands.properties in deb/rpm packaging
- Removes file references across codebase

Reviewed-by: John Burwell <john.burwell@shapeblue.com>
QA-by: Boris Stoyanov <boris.stoyanov@shapeblue.com>

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-25 14:52:02 +05:30
Rohit Yadav 1065661cd5 CLOUDSTACK-8701: Allow SAML users to switch accounts
SAML authorized accounts might be across various domains, this allows for
switching of accounts only in case of SAML authenticated user accounts across
other accounts with the same SAML uid/username.

Moves the previous switch account logic to its own ui-custom module

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 11:55:14 +05:30
Rohit Yadav 20ce346f3a CLOUDSTACK-8457: SAML auth plugin improvements for production usage
* Move config options to SAML plugin
  This moves all configuration options from Config.java to SAML auth manager. This
  allows us to use the config framework.
* Make SAML2UserAuthenticator validate SAML token in httprequest
* Make logout API use ConfigKeys defined in saml auth manager
* Before doing SAML auth, cleanup local states and cookies
* Fix configurations in 4.5.1 to 4.5.2 upgrade path
* Fail if idp has no sso URL defined
* Add a default set of SAML SP cert for testing purposes
  Now to enable and use saml, one needs to do a deploydb-saml after doing a deploydb
* UI remembers login selections, IDP server

- CLOUDSTACK-8458:
    * On UI show dropdown list of discovered IdPs
    * Support SAML Federation, where there may be more than one IdP
        - New datastructure to hold metadata of SP or IdP
        - Recursive processing of IdP metadata
        - Fix login/logout APIs to get new interface and metadata data structure
        - Add org/contact information to metadata
        - Add new API: listIdps that returns list of all discovered IdPs
        - Refactor and cleanup code and tests

- CLOUDSTACK-8459:
    * Add HTTP-POST binding to SP metadata
    * Authn requests must use either HTTP POST/Artifact binding

- CLOUDSTACK-8461:
    * Use unspecified x509 cert as a fallback encryption/signing key
      In case a IDP's metadata does not clearly say if their certificates need to be
      used as signing or encryption and we don't find that, fallback to use the
      unspecified key itself.

- CLOUDSTACK-8462:
    * SAML Auth plugin should not do authorization
      This removes logic to create user if they don't exist. This strictly now
      assumes that users have been already created/imported/authorized by admins.
      As per SAML v2.0 spec section 4.1.2, the SP provider should create authn requests using
      either HTTP POST or HTTP Artifact binding to transfer the message through a
      user agent (browser in our case). The use of HTTP Redirect was one of the reasons
      why this plugin failed to work for some IdP servers that enforce this.
    * Add new User Source
      By reusing the source field, we can find if a user has been SAML enabled or not.
      The limitation is that, once say a user is imported by LDAP and then SAML
      enabled - they won't be able to use LDAP for authentication
    * UI should allow users to pass in domain they want to log into, though it is
      optional and needed only when a user has accounts across domains with same
      username and authorized IDP server
    * SAML users need to be authorized before they can authenticate
        - New column entity to track saml entity id for a user
        - Reusing source column to check if user is saml enabled or not
        - Add new source types, saml2 and saml2disabled
        - New table saml_token to solve the issue of multiple users across domains and
          to enforce security by tracking authn token and checking the samlresponse for
          the tokens
        - Implement API: authorizeSamlSso to enable/disable saml authentication for a
          user
        - Stubs to implement saml token flushing/expiry

- CLOUDSTACK-8463:
    * Use username attribute specified in global setting
      Use username attribute defined by admin from a global setting
      In case of encrypted assertion/attributes:
      - Decrypt them
      - Check signature if provided to check authenticity of message using IdP's
        public key and SP's private key
      - Loop through attributes to find the username

- CLOUDSTACK-8538:
    * Add new global config for SAML request sig algorithm

- CLOUDSTACK-8539:
    * Add metadata refresh timer task and token expiring
        - Fix domain path and save it to saml_tokens
        - Expire hour old saml tokens
        - Refresh metadata based on timer task
        - Fix unit tests

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

This closes #489
2015-06-29 12:25:02 +02:00
Harikrishna Patnala f947fad197 CS-17504: Weak SSL ciphers supported by the management server
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 13:25:33 +05:30
Min Chen 0b5b9c91e4 CS-19734:Session cookie is exposed to scripts.
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 12:51:06 +05:30
Rohit Yadav debfcdef78 CLOUDSTACK-8160: use preferable protocols
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-21 18:02:58 +05:30
Wei Zhou 21b0ad4a62 Remove error message when start management server if JAVA_HOME is not set
(cherry picked from commit 449d123ce7)
2014-12-01 13:38:27 +01:00
Frank Zhang 2db1dd7432 CLOUDSTACK-7629
addBaremetalRct() API call is not available in cloudstackAPI library in marvin.
2014-11-19 17:01:34 -08:00
Rohit Yadav cd52bed477 saml: Use camelCase api names for SAML login/logout apis
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 85c0bd68ae8a76c231ab402dd0311e3672155f71)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-10-31 00:32:29 +05:30
Anthony Xu 69d1b44bbf cloudmanagementserver.keystore is corrupted by ant.filters.ReplaceTokens,
(cherry picked from commit 055fdd5048)
2014-10-13 00:07:16 -04:00
rayeesn df198d07e1 CLOUDSTACK-7474:Failed to start MS with java7 version mismatch error 2014-09-04 10:25:36 -07:00
Rohit Yadav 2a264cc726 client: add getSPMetadata API in commands.properties
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:24 +02:00
Vania Xu 30fbff8687 Changes/additions related to SolidFire automation tests 2014-08-27 16:02:29 -06:00
Damodar 7ea7deded0 CLOUDSTACK-7106 : RPM build failing with RHEL7 Reviewed By : Rayees
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-08-26 11:04:48 +05:30
Daniel Vega 233445ed68 CLOUDSTACK-6998: GloboDNS, Integration with external DNS Provider
This is a feature to handle DNS entries by means of an external DNS Provider,
such as Bind. These entries include DNS domains and reverse domains, VM records
and reverse records.

For a complete description, please refer to the design document available at
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Bind+and+PowerDNS+integration+by+Globo+DNSAPI

For the discussion about this feature on the dev mailing list, please refer to
http://markmail.org/thread/fvwf36hpxotiibka

Summary:
- new Network Service Provider called GloboDNS
- new Network Element to manage network domains and VM records (entries) on an external API
- new Network Resource to communicate with GloboDNS (open source)
- new API command to add DNS server
- new global option to determine if this provider should override VM entries on external DNS server
- changes in UI to include GloboDNS in Providers list

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-21 11:54:44 +02:00
seif 59ea2e2960 Added the listHostTags API command 2014-08-17 20:38:46 -06:00
Rohit Yadav 6016613d5b commands.properties: add login,logout,samlsso,samlslo apis
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-12 12:01:29 +02:00
seif 67ca2557f9 Changes for a new API command to list the storage tags 2014-08-07 17:46:06 -06:00
Alena Prokharchyk 6d1482b97b CLOUDSTACK-7283: listUsers API is available for regular users now 2014-08-07 14:01:58 -07:00
Ritu Sabharwal 628d8e66f7 CLOUDSTACK-6823 : First code drop for Brocade Network plugin to orchestrate Brocade VDX switches for L2 connectivity
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-07-23 11:11:18 +02:00
Suresh Ramamurthy 03de9cc335 CLOUDSTACK-6845 : NuageVsp Network plugin
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-07-21 10:49:49 +02:00
Hugo Trippaers 539db08956 CLOUDSTACK-6892 Create separate package for the mysql HA component 2014-07-04 14:37:07 +02:00
Nitin Mehta 80ef915fd5 CLOUDSTACK-7000: ListSnapshotPolicy should list by policyid. Introduce updateSnapshotPolicy command
(cherry picked from commit fce21439fa)
2014-06-26 11:38:41 -07:00
Hugo Trippaers d781824aa9 These should have been gone a long time ago 2014-06-25 15:51:28 +02:00
Upendra Moturi 918c320438 CLOUDSTACK-6847.Link.java and console proxy files have hardcoded value 2014-06-20 12:07:50 +02:00
Tim Mackey a8212d9ef4 Cleanup of Xen and XenServer terms. Cloned xen plugin creating a xenserver plugin, then removed xen plugin
Signed-off-by: Tim Mackey <tmackey@gmail.com>
Signed-off-by: Sebastien Goasguen <runseb@gmail.com>
2014-06-07 04:50:23 -04:00
Min Chen ba848087f8 Disable IAM feature from 4.4 release. 2014-05-22 18:27:08 -07:00
Alena Prokharchyk 961e2c43bc CLOUDSTACK-6659: fixed the name for the updateIpAddress API command 2014-05-14 12:34:36 -07:00
Alena Prokharchyk 66d5ebc657 CLOUDSTACK-6596: UUID and display flag update support for LBStickinessPolicy and LBHealthCheckPolicy 2014-05-07 15:46:18 -07:00
Koushik Das b088821c61 CLOUDSTACK-6445: Simulator enhancements
Refer FS - https://cwiki.apache.org/confluence/display/CLOUDSTACK/Simulator+enhancements
2014-04-18 16:44:21 +05:30
Min Chen 99bdc8d875 Merge branch 'master' into rbac. 2014-03-13 11:05:03 -07:00
amogh.vasekar 3ee1fc28de CLOUDSTACK-6217:
Add APIs for ability to add new guest OS types, and their hypervisor specific mappings.
The table guest_os_hypervisor is currently maintained but not used, and the APIs reuse the same

Signed off by: Nitin Mehta <nitin.mehta@citrix.com>
2014-03-12 17:03:38 -07:00
Min Chen 48e08fe676 Merge branch 'master' into rbac. 2014-03-06 14:02:20 -08:00
Min Chen 9f47466fea Fix some issues in renaming iam api, also fix marvin library. 2014-02-26 17:30:34 -08:00
Hugo Trippaers afc188cb5c Forward port the fix by David from 0c2ad0338e 2014-02-25 15:18:16 +01:00
Min Chen 3b58a45e04 Merge branch 'master' into rbac. 2014-02-07 13:43:36 -08:00
Alena Prokharchyk 4305d817ba External UUID control support for PublicIpAddress/RemoteAccessVpn/PortForwardingRule/S2SVpnGateway/S2SVpnConnection 2014-02-05 15:56:40 -08:00
Alena Prokharchyk 9641e1dbee External UUID control support for NetworkACLList/LoadBalancer/ApplicationLoadBalancer 2014-02-05 10:36:21 -08:00
Alena Prokharchyk aaa20947a9 ExternalUUID control support for Firewall and Egress Firewall rules 2014-02-04 17:06:04 -08:00
Prachi Damle f84375442e Merge branch 'master' into rbac
Conflicts:
	api/src/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
	api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
	plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/com/cloud/template/TemplateAdapterBase.java
	setup/db/db/schema-430to440.sql
	tools/apidoc/gen_toc.py
2014-02-04 12:07:32 -08:00
Hiroaki KAWAI cb048f4108 Some rework stratosphere ssp plugin
* add missing command entry in commands.properties
* migrate httpclient 3.x to 4.x
* fix the broken SspClient
* add webapp session checking in mock ssp server
2014-01-30 21:31:44 +09:00
Min Chen 748dc1541c Support attaching policy to account. 2014-01-28 10:00:17 -08:00
Min Chen 33cd1ab921 Merge branch 'master' into rbac 2014-01-22 11:23:51 -08:00
Min Chen 929fbabaa2 Merge branch 'master' into rbac. 2014-01-17 14:37:08 -08:00
Alena Prokharchyk bd79fb33a6 CLOUDSTACK-5870: API support for retrieving user data 2014-01-16 15:31:18 -08:00
Min Chen 649d9d927f CLOUDSTACK-5840:Migration from NFS to S3 should be done in one API
(updateCloudToUseObjectStore) instead of two APIs.
2014-01-08 17:25:13 -08:00
Hugo Trippaers 612a41e3f5 Add UI interface for managing the OpenDaylight provider and controllers.
Fix several bugs in the code related to the api handling.

Conflicts:
	ui/scripts/system.js

ui
2014-01-08 17:08:37 +01:00
Hugo Trippaers 850bc9fa82 Hook the OpenDaylight plugin into CloudStack 2014-01-08 15:58:08 +01:00