Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 4 of 5

Planning security and connectivity

10 min

Listen to this lesson

0:00 / 8:55

A side-by-side extension crosses a boundary every time it calls SAP S/4HANA. Planning that crossing is part of the design, not an afterthought for go-live week. For the fleet app, four questions had to be answered: who are the users and where do they sign in, which identity does the app use when it calls SAP S/4HANA, how does the request reach a system that is not on the internet, and what exactly is that identity allowed to do there.

Users and identity providerUsers sign in through SAP Cloud Identity Services, which can delegate to the corporate identity provider
App security in the subaccountTrust configuration, roles and role collections decide what a signed-in user may do in the app
DestinationPer-subaccount connection details: URL, proxy type and authentication type for the SAP S/4HANA system
Secure tunnelCloud Connector (or another private connectivity option) reaches the private SAP S/4HANA system
SAP S/4HANA authorizationThe technical or propagated user's roles decide what the API call may read or change
The layers every call from a side-by-side extension passes through.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-201

Users and roles in the app

Contoso's subaccounts trust its SAP Cloud Identity Services tenant, which delegates to the corporate directory for employees. Fleet desk staff are grouped in the identity provider, and the groups are mapped to role collections in each subaccount. The app declares its own roles (for the fleet app: a fleet agent role and a fleet supervisor role). Course sap-btp-204 covers this in depth; at design time you need the list of roles, who gets them, and whether access must also be restricted by data, such as by customer.

How a fleet desk employee gets app rights: identity provider groups map to role collections in each subaccount, and role collections bundle roles built from the app's own role templates.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-201

Which identity calls SAP S/4HANA?

There are two broad choices. With a technical user, the app calls SAP S/4HANA as one communication user with tightly limited authorizations; the app itself decides what each of its users may see. With principal propagation, the signed-in user's identity is forwarded so that SAP S/4HANA checks that person's own authorizations and records them in change documents. Read-only lookups for external users usually use a technical user. Writes on behalf of internal users, where SAP S/4HANA must know who made the change, are good candidates for principal propagation.

  1. Does SAP S/4HANA need to know which person made the change (audit, change documents, user-level authorization)?Yes → principal propagation · No → continue
  2. Are the app's users unknown to SAP S/4HANA, such as external customers?Yes → technical communication user with narrow roles · No → continue
  3. Is the call a background or system-to-system job?Yes → technical user (for example OAuth client credentials or basic) · No → review with security
Choosing the identity for calls to SAP S/4HANA.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-201

Reaching a private system

CMD, CMQ and CMP run in SAP's private cloud under RISE and are not exposed to the internet. The usual path from SAP BTP is a destination with proxy type OnPremise, routed through the Cloud Connector, which opens an outbound tunnel to the subaccount and only lets through the hosts and URL paths it has been told to expose. Under RISE, how the Cloud Connector is installed and who operates it is agreed with SAP; check your contract and the RISE connectivity options. The destination lives in each subaccount, so cmc-ext-test points to CMQ client 100 and cmc-ext-prod to CMP. Course sap-btp-203 covers destinations and the Cloud Connector in detail.

The fleet app's read path into private CMP: the destination supplies URL and authentication, and the Cloud Connector lets through only the exposed host and API paths.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-201
Design decisionContoso fleet app choiceWhere it is configured
User sign-inSAP Cloud Identity Services, corporate IdP for employees; separate user store for Great Lakes Fleet Services contactsSubaccount trust configuration
App authorizationFleet agent and fleet supervisor roles; customer-level restrictionApp security descriptor, role collections
Identity toward SAP S/4HANATechnical communication user for readsDestination and SAP S/4HANA user and roles
Network pathDestination with OnPremise proxy through the Cloud ConnectorDestination; Cloud Connector access control
What the API user may doRead sales orders and business partners for sales area 1710 / 10 / 00 onlySAP S/4HANA roles (PFCG)

The fleet app's security and connectivity plan.

What would you do?

To save time, a developer suggests that the fleet app call SAP S/4HANA with a dialog user that has the SAP_ALL profile, "just for test", and that the same destination be copied to production later. What should Priya and the security lead insist on?

Key points
  • Plan four things: user sign-in, app roles, the identity used toward SAP S/4HANA, and the network path.
  • Technical users suit external-user reads and system jobs; principal propagation suits writes that SAP S/4HANA must attribute to a person.
  • Destinations are per subaccount; private systems are reached through the Cloud Connector with proxy type OnPremise.
  • Under RISE, agree the connectivity setup and its operation with SAP.
  • Apply least privilege in SAP S/4HANA roles and Cloud Connector path allowlists, in test as well as production.

Check your understanding · not graded

Lesson check

  1. 1. When is principal propagation the better choice for calls to SAP S/4HANA?

  2. 2. Which destination proxy type is used to reach a private SAP S/4HANA system through the Cloud Connector?

  3. 3. Why should the test subaccount's communication user have the same narrow roles as production?

  4. 4. Where are app users' role collections usually tied to people at Contoso?