In order to understand the role based authorization model better, we need to distinguish between technical roles and organizational roles:
Technical roles are internal, predefined roles that are required for accessing and working in design time tools and services such as the SAP Cloud Platform cockpit. Examples include: SAP Cloud Platform Member, Developer, Tenant_Admin, etc.
Organizational roles are external, custom roles that are defined by an organization in the SAP Cloud Platform cockpit to restrict access to portal sites, pages, and applications. Organizational roles are created for various job functions. Users working in an organization are assigned to these roles. Examples for such roles could be “Manager” or “Sales”.
In terms of the identity provider for SAP Cloud Platform distinction is made between the Platform Identity Provider and Application Identity Provider:
The platform IDP is the user base for access to SAP Cloud Platform account and tools (cockpit, console client, Eclipse tools, and others). The default user base is provided by SAP ID service. You can switch to an SAP Cloud Platform Identity Authentication tenant for the platform IDP. By default, the cockpit and console client are configured to use SAP ID service as an identity provider for user authentication. If you want to use your custom user base and custom tenant settings (such as two-factor user authentication, or corporate user store, for example), you must use a custom SAP Cloud Platform Identity Authentication tenant as a platform identity provider.
By changing the platform identity provider and (thus switching the user base), you need to add as subaccount members existing users in the SAP Cloud Platform Identity Authentication tenant. You will need to assign the required platform roles (Administrator, Developer, Support User etc.) to the user base from your assigned platform IDP. Individual services on SAP Cloud Platform have their own role structures and may have specific predefined roles which will need to be assigned to the account members in your user base.
The application IDP supplies the user base for your applications. It is important to note that adding an application identity provider does not give your application developer or administrator access to the administration cockpit and associated functions. This access would still need to be granted via the platform identity provider (IDP). You can use an SAP Cloud Platform Identity Authentication tenant or your corporate IDP as the user base for your applications. Once you have assigned the application IDP, you will need to take care of the role assignments for your users. This varies according to the different runtimes supported on the SAP Cloud Platform but they all support role based authorizations, but differ in their implementation depending on the runtime, for example:
HTML5 applications may be protected by permissions. Permissions for an HTML5 application are defined in the application descriptor file. To enforce authorization for an HTML5 application, permissions can be added to application path. In the SAP Cloud Platform admin cockpit, you can create custom roles and assign them to the defined application permissions. If a user accesses an application path that starts with a path defined for a permission, the system checks if the current user is a member of the assigned role. If no role is assigned to a defined permission only subaccount members with developer permission or administrator permission have access to the protected resource.
If only authentication is required for a path, but no authorization, a security constraint can be added without a permission.
To assign users to a permission of an HTML5 application, a role must be assigned to the corresponding permission. As a result, all users who are assigned to the role get the corresponding permission. Roles are not application-specific but can be reused across multiple HTML5 applications.
To grant a user the permission to access a protected resource, you can either assign a custom role or one of the predefined virtual roles (AccountAdministrator, AccountDeveloper, Everyone) to such a permission. The “Everyone” virtual role represents all authenticated users for the configured Identity Provider.
For Java applications, SAP Cloud Platform allows developers to use the traditional Java EE web roles in their applications. The role management is performed in SAP Cloud Platform cloud cockpit. Checking for role assignment for logged in used can be done using standard Java EE Servlet API.
If you have SAP Cloud Platform extension package for SAP SuccessFactors configured for your subaccount, you can change the default SAP Cloud Platform role provider to another one. This allows you to manage the roles in your SAP SuccessFactors system.