Skip to main content

SAP OData Authorization Requirements

Applies to: S/4HANA Private Cloud Edition, OData V2 and V4, Basic authentication over HTTPS

This topic is intended for SAP Basis and IT administrators. It describes the authorization requirements for Process Runner to call an SAP OData service on a user's behalf using basic authentication over HTTPS.

Note: This guide does not apply to S/4HANA Public Cloud Edition, which uses Communication Arrangements and does not permit customer PFCG editing.

Authorization model

For Process Runner to call an SAP OData service, the SAP user requires authorizations at three layers. The following table describes each layer for OData V2 and V4.

Layer OData V2 OData V4
Service start authorization S_SERVICE S_START (object type G4BA)
Application authorization object (same as underlying transaction or BAPI) For example, M_BEST_BSA, EKG, EKO, WRK for purchase orders Same objects as V2 (SAP dispatches to the same ABAP code)
CDS access controls (DCL) Not applicable Applies to CDS/RAP-based services (most V4 services)

Supported SAP user types

Process Runner supports all SAP user types, subject to the authorization restrictions imposed by your organization.

User type GUI logon Password expiry Notes
Communication (C) No Yes (general policy applies) Assign SECPOL to suppress expiry (SAP KBA 3315955).
System (B) No No (excluded) Supported if it follows company authorization policy.
Dialog (A) Yes Yes Supported if it follows company authorization policy.
Service (S) Yes No Supported if it follows company authorization policy.

OData V2 authorization — S_SERVICE fields

SRV_NAME is a hash, not the service name. Populate S_SERVICE by adding the service to a PFCG role via the role menu as a TADIR Service. Profile Generator computes the hash from table USOBHASH automatically.

Field Value How to set
SRV_NAME Hash (auto-generated; not the human-readable name) PFCG > role menu > Add > TADIR Service > Program ID R3TR, Object type IWSV (backend) + IWSG (frontend group)
SRV_TYPE HT Set automatically when TADIR Service is used

OData V4 authorization — S_START fields

OData V4 uses S_START (repository-object based) instead of S_SERVICE. AUTHOBJNAM is the service group name.

Field Value Notes
AUTHPGMID R3TR Fixed value
AUTHOBJTYP G4BA OData V4 backend service group
AUTHOBJNAM Service group name (for example, API_PURCHASEORDER_2) or * for all V4 Get from /IWFND/V4_ADMIN > Publish Service Groups
ACTVT 16 Execute

Examples

Example A — OData V2: API_PURCHASEORDER_PROCESS_SRV

URL: /sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/ | System alias: LOCAL (embedded)

Note: This V2 service is deprecated as of S/4HANA (SAP KBA 3502308) and is shown for illustration only.

Authorization object Fields Values to grant Purpose
S_SERVICE SRV_NAME, SRV_TYPE Auto via PFCG TADIR Service R3TR IWSV API_PURCHASEORDER_PROCESS_SRV + R3TR IWSG API_PURCHASEORDER_PROCESS_SRV_0001 V2 start gate
M_BEST_BSA ACTVT, BSART 01/02/03 (create/change/display); BSART=NB or * Purchase order document type
M_BEST_EKG ACTVT, EKGRP 01/02/03; specific EKGRP or * Purchasing group
M_BEST_EKO ACTVT, EKORG 01/02/03; specific EKORG or * Purchasing org
M_BEST_WRK ACTVT, WERKS 01/02/03; specific WERKS or * Plant

Example B — OData V4: API_PURCHASEORDER_2

URL: /sap/opu/odata4/sap/api_purchaseorder_2/srvd_a2x/sap/purchaseorder/0001/ | Service group: API_PURCHASEORDER_2

Authorization object Fields Values to grant Purpose
S_START AUTHPGMID, AUTHOBJTYP, AUTHOBJNAM, ACTVT R3TR, G4BA, API_PURCHASEORDER_2, 16 V4 start gate
M_BEST_BSA ACTVT, BSART 01/02/03; BSART=NB or * Purchase order document type
M_BEST_EKG/EKO/WRK As in Example A As in Example A Purchasing group, org, and plant
CDS access controls (DCL) n/a Grant read on underlying CDS entities (for example, R_PurchaseOrder) Data-level filter for V4/RAP

Identify authorization objects for any OData service

Use transaction SU24 as the source of truth for any OData service not covered by the examples above.

  1. Open transaction SU24 (customer view) or SU22 (SAP proposals).
  2. Set Type of Application to IWSV for OData V2 or G4BA for OData V4.
  3. Enter the service or service group name in the Object Name field. V4 names carry a version suffix, for example, _0001.
  4. Select Execute. The proposal lists the start object and every application authorization object the service checks, along with field defaults.
  5. If SU24 returns no results after an upgrade, run SU25 and, if needed, program SU24_AUTO_REPAIR.

Note: An OData service enforces the same application authorization objects as the underlying transaction or BAPI, since both use the same ABAP code. OData only adds the start gate authorization.

Service activation prerequisites

The following prerequisites are owned by the Basis team and must be completed before Process Runner can connect to the OData service.

Item OData V2 OData V4
Activation transaction /n/IWFND/MAINT_SERVICE > Add Service > alias LOCAL > Add Selected Services /n/IWFND/V4_ADMIN > Publish Service Groups > alias LOCAL > Get > Publish
SICF node /sap/opu/odata/sap/<service> /sap/opu/odata4/ (single node for all V4 services)
Catalog Per-service (built-in) Also publish V4 catalog service group /IWFND/CONFIG
System alias (embedded) LOCAL LOCAL with "Local GW" flag enabled

HTTPS/HTTP and basic authentication

Important: Verify the ICF node Logon Data settings before assuming basic authentication is enabled. Do not assume it is active by default.

  • Basic authentication is accepted on /sap/opu/odata/ and /sap/opu/odata4/ provided the ICF node is active and its Logon Data (SICF > Logon Data tab) permits credential-based logon — "Standard" or "Alternative Logon Procedure" (SAP KBA 3564503).
  • OData V4 has a single SICF node (/sap/opu/odata4/). Per-service stored credentials via SICF are not available for V4 the way they are for V2.
  • HTTPS is required. A valid CA-signed server certificate must be installed on the SAP Web Dispatcher or ICM, TLS 1.2 or higher must be configured, and the Process Runner client must trust the server certificate chain.
  • IMPORTANT: Process Runner currently supports basic authentication only. SAP recommends OAuth 2.0 as the more secure option; basic authentication is fully functional for S/4HANA Private Cloud Edition.

S/4HANA Private Cloud Edition (RISE) boundary

The following table describes what the customer and SAP Enterprise Cloud Services (ECS) each own in an S/4HANA Private Cloud Edition environment.

Owner Responsibilities
Customer User administration (SU01), roles and authorizations (PFCG, SU24), passwords and SECPOL, and service activation via /IWFND/*. These responsibilities are the same as in an on-premises deployment.
SAP ECS Infrastructure and base Basis operations. Some settings, such as SICF on managed nodes and global profile parameters, require a support ticket.

Note: This guide does not apply to S/4HANA Public Cloud Edition, which uses Communication Arrangements and does not permit customer PFCG editing.

End-to-end validation checklist

  1. User: In SU01, confirm the user type, that the password is valid, that roles are assigned, and that the account is not locked. Use SU56 to view the authorization buffer.
  2. Service reachable in SAP: Run /n/IWFND/GW_CLIENT, enter the request URI, and select Execute. Expect HTTP 200 with metadata or entity data.
  3. Service reachable from Process Runner: Call /sap/opu/odata/sap/<service>/$metadata or /sap/opu/odata4/<group>/$metadata from Process Runner over HTTPS. Expect HTTP 200 XML.
  4. Business action test: Perform the smallest real operation, for example, GET one purchase order. If the operation fails with HTTP 403, see Troubleshooting authorization failures below.

Troubleshooting authorization failures

All transactions listed below are run by Basis or Security teams using SAP GUI. The end user only needs to supply the failing user ID and the timestamp of the failure.

Symptoms, likely causes, and where to look

HTTP response or symptom Likely cause Where to look
HTTP 403 with body /IWFND/CM_CONSUMER/101 "No authorization to access Service <name>" Missing start authorization (S_SERVICE for V2 or S_START for V4) SU53 immediately after the call; /IWFND/ERROR_LOG
HTTP 401 Unauthorized Wrong password, expired password, or user locked SU01 (Valid Through, Password status); SM19/SM20 (Security Audit Log)
HTTP 403 only on specific entities or actions (metadata returns OK, but GET or POST fails) Missing application authorization (for example, M_BEST_*) or missing CDS/DCL grant (V4) STAUTHTRACE (best for V4/CDS); SU53
HTTP 500 cryptic error or empty response Service not activated, SICF node inactive, or system alias missing /IWFND/MAINT_SERVICE (V2); /IWFND/V4_ADMIN (V4); SICF
Works in SAP GUI test but fails from Process Runner HTTPS/TLS trust issue, wrong URL, or ICF Logon Data blocks basic authentication SMICM (trace); SICF > Logon Data tab; network capture

Transaction reference

Transaction Purpose Typical use
SU53 Last failed authorization check for a user Run immediately after the failing OData call. Shows the hash for S_SERVICE.
STAUTHTRACE System-wide authorization trace (pass and fail) Filter by technical user > Errors only > reproduce > Evaluate. Best for V4/CDS — catches CDS entity checks that SU53 misses.
/IWFND/ERROR_LOG SAP Gateway error log Search by timestamp. For V4, shows failing check as R3TR G4BA <service group>.
/IWFND/GW_CLIENT Test OData call from inside SAP "No authorization to access Service" indicates a missing start object.
PFCG Role maintenance Add service via role menu (TADIR Service). Run User Comparison afterward.
SU01 / SU56 / SUIM User administration, authorization buffer, and find role by service SUIM: Roles > Search for Startable Applications in Roles, Application Type = SAP Gateway Service Group.
SE16N + USOBHASH Resolve S_SERVICE hash to service name SU53 shows the hash. Look it up in table USOBHASH using PGMID/OBJECT/OBJ_NAME.

Standard fix workflow

  1. Capture the user ID and exact timestamp of the failing call.
  2. Run SU53 as that user, or select SU53 > Goto > Other User.
  3. If SU53 is not helpful, run STAUTHTRACE filtered on that user, reproduce the issue, and select Evaluate.
  4. Cross-check /IWFND/ERROR_LOG for the same timestamp.
  5. If a hash was shown, resolve it using USOBHASH (see Transaction reference above).
  6. Add the missing authorization object or field values to the PFCG role, regenerate the profile, run User Comparison, and retest.

Was this article helpful?

We're sorry to hear that.