| Status | Approved |
|---|---|
| Owner | LOHIYA-ext, Sumitra |
| Stakeholders | |
| Jira Request ID | ERP-95 - Getting issue details... STATUS |
| Jira Development ID | ERP-554 - Getting issue details... STATUS |
High-Level Specification
| Application System (Source) | SAP IAG |
|---|---|
| Application System (Target) | iCertis |
| Source System Interface | Standard APIs |
| Target System Interface | Standard APIs |
| Business Process Reference | 13.03.01.01 User lifecycle Management |
Functional Overview
This specification outlines the detailed design for the integration between iCertis and SAP Identity Access Governance (IAG). The goal of this integration is to automate the provisioning, updating, and deprovisioning of user accounts, groups, and authorizations in iCertis through IAG. This ensures that access is consistently controlled, compliant, and properly aligned with organizational policies.
In this model, SAP IAG serves as the central system for user and role provisioning as well as Access Risk Analysis, while iCertis continues to manages the entire contract lifecycle, from creation and negotiation to execution and renewal. User accounts and group assignments will be provisioned from IAG to iCertis through SCIM-based connectivity, removing the dependency on manual user administration within iCertis.
Scope and Objectives
Automate and govern iCertis user access via IAG to reduce manual effort. Also to populate user to group mapping to facilitate the SOD process for Risk Analysis.
Technical Architecture Diagram
Process Flow Diagram
Step | Description |
|---|---|
1 | Run full sync between to iCertis using IPS as the Proxy |
2 | Proxy connection from IPS to iCertis SCIM 2.0 |
3 | SCIM exposes API |
4 | IAG reads data via SCIM |
5 | Delta job scheduled to run |
6 | SCIM exposes API |
7 | Expose users and groups from iCertis to IPS |
8 | IAG reads delta users and groups |
9 | IAG access request to provision the necessary user access within the target system. |
10 | Upon submission of the request, the workflow is automatically triggered with no approval stage required. |
11 | Run Provisioning job to provision the access |
12 | IPS picks up the request and provisions the access in the iCertis system. |
13 | Expose user access assignment data from iCertis to IPS. |
14 | IAG consumes the access assignment report from the iCertis system via the SCIM API integration. |
Design Assumptions
iCertis tenant exposes a SCIM 2.0 endpoint for Users & Groups that is reachable from SAP IAG and supports the required ops ( GET/POST/PUT/PATCH for delta updates), with a unique, immutable identifier available for mapping. This SCIM connector will be utilized by SAP IAG & IPS to provision users and groups to iCertis.
Dependencies
- Send email to SSO iCertis operation team to get the Cient ID,Scret and OAuth token URL for iCertis system.
- Get the Scope and token URL for the iCertis endpoint.
- Request the iCertis team to publish the groups under the /groups SCIM endpoint to achieve SCIM compliance.
Security, Integrity and Controls
Access Control & Segregation of Duties
Security personnel must not manually create, modify, or delete users directly in iCertis system. All identity changes are executed exclusively via SAP IAG through the SCIM connector to preserve clear control boundaries and auditability.
No iCertis end-user accounts are granted user-admin capabilities.
If emergency manual intervention is unavoidable, a break-glass procedure applies: raise a ticket, obtain a documented exception, perform the minimum required action, and ensure full post-event review.
Service Account for System-to-System Calls
iCertis–IAG integration uses a dedicated technical (service) account with the least privileges required to create and update users/groups in iCertis.
The service account authenticates using a securely stored client secret; Basic authentication is not used.
All traffic between IAG and iCertis is over HTTPS/TLS to ensure confidentiality and integrity in transit.
API Authentication & Gateway Enforcement
All SCIM API calls are authenticated via OAuth 2.0 Client Credentials (two-legged OAuth).
APIs published on the iCertis Portal are protected by the API Gateway and OAuth.
The Gateway validates the token associated with the registered client. Only requests with a valid
tokenare accepted.Each API request must include a valid OAuth 2.0 access token issued to the client application.
Configuration Requirements
To build the integration of SAP IAG to iCertis application below steps needs to be performed
Register an iCertis application and share the Client Id and secret.
Create the iCertis Proxy system in Cloud Identity Service as per the configuration details listed below.
| Property Name | Value |
|---|---|
| URL | https://syensqo-dev-api.icertis.com/api/ |
| User | client_id |
| Password | *************************** |
| ProxyType | Internet |
| OAuth2TokenServiceURL | https://login.microsoftonline.com/Tenant ID/oauth2/v2.0/token |
| Type | HTTP |
| OAuth2TokenScope | api://<application_id>/.default |
Refer to the link https://help.sap.com/docs/identity-provisioning/identity-provisioning/proxy-scim-system to set up the iCertis system in Identity Provisioning system.
Create an application type for the SCIM API in the IAG system, and subsequently create the application under this application type. Refer to the link https://help.sap.com/docs/SAP_CLOUD_IDENTITY_ACCESS_GOVERNANCE/e12d8683adfa4471ac4edd40809b9038/37e4c466f8294eed88d284650d0c7070.html?state=DRAFT&version=2205
Run the repository sync job in IAG to read the users and groups from iCertis system.
Design Rationale
Manual user provisioning in iCertis is error-prone, non-scalable, and cannot enforce real-time workflow approvals or cross-system SoD checks.
Integrating iCertis with SAP IAG and IPS enables centralized, workflow-driven, role-based provisioning, ensuring only approved users receive access immediately.
This approach provides secure, auditable, and compliant cloud-to-cloud integration, reduces maintenance overhead, and supports enterprise-wide access governance.
Why use SCIM via IPS?
iCertis supports SCIM 2.0 APIs for user provisioning.
SCIM is an industry standard for managing users, groups, and entitlements across systems.
Data Structure
The following fields will be used to provide the required data structure of the interface:
Attribute + Original Source | SyWay source - SAP CIS (IDdS) | Target Attribute (iCertis) | What is it used for | Is it Mandatory and why |
|---|---|---|---|---|
(mail) - Entra | Business email address | authentication and workflows. | Yes, needed for authentication and workflows | |
(mangerid) - Successfactors | managerId | supervisor | To display the users manager. Needed also for potential workflows. | Yes, needed for workflows |
(firstName) - SuccessFactors | firstName | Name | To identify User Name | Not mandatory but it should be populated for better user reporting. |
(lastName) - SuccessFactors | lastName | Name | To identify User Name | Not mandatory but it should be populated for better user reporting. |
Identifier choice
In the provisioning process, the Email will be used as the iCertis User ID in the IAG system.
Username normalization
All iCertis UserID's will be provisioned in lowercase to eliminate case collisions and to align with the hard requirement for user formatting in iCertis.
Delta or Full Load Requirements
The initial synchronization performs a full data load, after which the repository sync job operates in delta mode, processing only incremental changes. In the event of a job failure, system logs automatically generate alerts to notify administrators. Administrators can manually re-run the sync job at any time, and the recovery process is quick and straightforward.
Monitoring
All provisioning logs are planned to be sent to the central SIEM. The central SIEM is yet to be confirmed but the current plan is to use the standard BTP Audit Log API's to push logs to the SIEM.
If that's not possible we will look at a pulling mechanism once we confirm the SIEM.
Volumetrics
| Job | Data | Estimated time |
|---|---|---|
| Full Sync | Users/roles/groups | 1 to 2 hours |
| Delta sync | Users/roles/profiles | 1 to 5 mins |
Performance Consideration
Data transfer volumes are optimized by leveraging incremental synchronization, where only delta changes (new, modified, or deleted user records) are processed instead of full data loads. This approach reduces network usage and processing time while maintaining data accuracy and consistency between systems.
Batch sizes, job frequency(Every 3 hours), and retry intervals are configured based on the expected data volume and system load capacity to ensure timely provisioning without overloading the network or connected systems. IPS job scheduling is carefully aligned with system maintenance windows to avoid conflicts with other integrations or background jobs running in SAP IAG or iCertis.
Delta vs Full loads
To mitigate possible performance issues, we will only trigger full loads when necessary. A full load consume a whole lot of resources in IAG, so this is ran at the beginning only, then delta reads thereafter to reduce payloads and runtime. We aim to ensure small time‑window overlap in deltas to handle clock skew without duplicating work
Pagination & batch sizing
Attribute minimization & transformations
IPS will only read the attributes that are needed. Within the transformation we will drop / filter any unused fields to maintain performance.
Rate Limits
Identity Provisioning APIs implement rate limits to control the number of incoming requests for a given time.
Identity Provisioning Rate Limits
Value | Description |
|---|---|
150 | Allowed requests per minute. When the limit is reached, the requests are slowed down. |
200 | Maximum requests per minute. When the limit is reached, further requests are immediately rejected. |
The Identity Provisioning rate limits are enforced at tenant level to the total number of incoming requests (that is, incoming calls for real-time provisioning and proxy systems).
Error Handling
To help support Error Handling, the below table can be reviewed to help with the typical error codes that may be experienced if a SCIM connector fails.
Typically these errors will only be viewable to the IPS admin who has access to the job log in BTP.
Please refer to the below link to get more details on error.
Testing
How to Test
- Create a job in the Job Scheduler tile >Schedule Job
- Check the Job has finished in the "Job History List"
An example of a negative test can be seen below. If the job fails, there will be an error code visible in the list: - Below shows Error 401, when referenced about you can see this is related to Bad/expired credentials or wrong OAuth/token setup to iCertis/IAS.
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
| 01 | Integration check between SAP IAG to iCertis system | The job status of the iCertis Repository Sync in SAP IAG should be monitored to ensure that all relevant data has been successfully synchronized. If the integration fails, the job status will be marked as "Failed" or "Completed with Errors", indicating issues during data synchronization. |
| 02 | Number of users and roles check in IAG |
|
| 03 | User creation from SAP IAG to iCertis | User will be creating in iCertis and associated groups will be assigned |
| 04 | Business role/iCertis groups assignment to users from SAP IAG | Additional group added to user in cases where multi hatting is needed |
| 05 | iCertis groups deletion request raised in IAG | Additional group is deleted from the user |
Test Considerations/Dependencies
Not Applicable



