# SailPoint SAP Cloud Identity Access Governance (IAG) SaaS Connector Documentation > SAP Cloud Identity Access Governance (IAG) SaaS Connector Documentation # Documentation # Configuring Advanced Provisioning Use Before Provisioning Rules to customize SAP IAG provisioning beyond source settings. The sections below describe how to set custom fields, configure access request metadata, and manage the leaver process. ## Managing Custom Fields for Provisioning The SAP IAG connector allows you to set custom attributes using Before Provisioning Rule. For additional information, refer to [FAQs](). 1. To set custom attributes, use a Before Provisioning Rule and pass an `AttributeRequest` in the plan. Here's an example: ```xml ``` 2. To get the names of the custom attributes: 1. Log in to your IAG tenant. 2. Go to the **Custom Fields** tile. 3. The custom fields are listed with their properties. Use the `name` value of the custom field in the plan. > [!NOTE] > > Custom attributes are not required for all access requests. > > Take note of the **Custom Field Groups** associated with each custom attribute. This helps determine which custom attributes to include when raising an access request for a specific application. ## Managing Custom Access Requests The SAP IAG connector allows you to dynamically configure Access Request Priority, Access Request Reason Code, and Access validity dates through a Before Provisioning Rule. For more information, refer to [FAQs](). - To set the Access Request Priority use, ```xml ``` - To set the Access Request Reason Code use, ```xml ``` > **Note** > > If the Access Request Priority and Access Request Reason Code is not provided in the plan, it will be retrieved from the application configuration. - To set Validity dates on a role use, ```xml ``` If the validity dates are not provided in the plan, the `startDate` will be set to the current date, and the `endDate` will be set to 9999-12-31 by default. ## Managing Leaver Process SAP does not support the Disable operation for the IAG application, but a delete operation is supported. SailPoint does not show the Delete operation in its UI, therefore a before provisioning rule must be implemented to convert the Disable call from SailPoint to a Delete call. To perform the delete operation, complete the following: 1. Create lifecycle state with the name "delete". 2. Do no assigne any access profiles to this lifecycle state. 3. Configure a before provisioning rule as in the following example, to map "delete" lifecycle state to the connector's delete operation: ```xml BP rule for changing disable account request to delete in SAC connector ``` 4. Assign the "delete" lifecycle state to an identity. This will delete an account from the SAP IAG application. # Connecting SailPoint and SAP Cloud Identity Access Governance (IAG) SaaS To connect SailPoint with SAP IAG, perform the following tasks: ## Adding the Source in SailPoint To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs. > [!IMPORTANT] > > By default, the provisioning feature is **disabled**, and the connector only supports read-only operations. To support provisioning operations, you must manually enable the feature in the source configuration. **To configure a new source:** 1. Sign in to SailPoint. 2. Go to **Admin \> Connections \> Sources**. 3. Select **Create New**. 4. Search for the connector by entering the name in the search box, and then select **Actions**. 5. In the **Actions** dropdown list, select the setup method: - [**Express Setup**](<#configuring-a-source-using-express-setup>) - Quickly create a read-only connection to your target system by providing minimal configurations and authentication. On completion, aggregation is automatically started. > **Note** > > Express Setup supports Credential Providers. For information on supported credential providers and configuration, refer to [Credential Providers](). For more information, contact your SailPoint Customer Service Manager. - [**Standard Setup**](<#configuring-a-source-using-standard-setup>) - Provide detailed basic configuration to create the source. Once the source is created, continue with source setup. ### Configuring a Source Using Express Setup Express Setup minimizes the initial configuration process so you can quickly connect the application and immediately begin aggregating user account and entitlement data. 1. Review the directions and select **Start Express Setup**. 2. Review the pre-populated **Source Name**, **Source Owner**, and **Description**. To update, select **Edit**. > **Note** > > The source name must be unique. You can change these settings later in the source configuration. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a Credential Provider in SailPoint, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. For more information, refer to the **Connection Settings** section. 5. Select **Finish**. After a successful test connection, the system creates your source and prompts you to run an aggregation. - If you want to aggregate now, select **Aggregate**. - To see the latest account aggregation history, go to **Account Management \> Account Aggregation**. - To see the list of aggregated source accounts, go to **Account Management \> Accounts**. - If you want to aggregate later, select **Exit**. This returns you to the **Sources** page. Your new source is listed, but contains no accounts or aggregation history yet. ### Configuring a Source Using Standard Setup Use Standard Setup to configure the connector for full feature support. 1. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters. 2. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters. 3. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](). 4. (Optional) Select a governance group to grant its members [source]() or [role]() sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](). 5. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](). 6. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Continue to configure your connected source there. ## Base Configuration Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary. 1. Enter a unique name and description for the source. 2. In the **Source Owner** dropdown list, select the identity that owns this source. - To find a source owner, begin entering their name. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a credential provider, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. Refer to [Connection Settings](<#connection-settings>) for more information. 5. (Optional) In the **Governance Group for Source Management** dropdown list, select a governance group to associate with this source. For more information about governance groups, refer to [Associating Governance Groups with a Source](). 6. (Optional) Choose whether to enable or disable provisioning for the source. Provisioning is disabled by default. - **Enable Provisioning** - Set the toggle to **Enabled** to allow the source to create, update, and deactivate accounts in the connected source system. - **Disable Provisioning** - Set the toggle to **Disabled** to disable provisioning for the source. Disabling provisioning will prevent the creation, updating, or deactivating of accounts on this source. 7. Select **Save**. ## Connection Settings Provide the information required to connect and interact with the source. > [!NOTE] > > **Screenshot** > > [![Connection Settings]()]() 1. Enter the **Host URL**. This is the host location for all of the IAG service endpoints. 2. Enter the **Token URL** to request an access token for a user. 3. Enter the **IAG Domain Name**. This is the address of SAP subaccount domain where IAG is hosted. This is required during access request payload submission. 4. Select the **Authorization Type**. By default, this is **OAuth 2.0**. 5. Select the **Grant Type**. by default, this is **Client Credentials**. 6. Enter the **Client ID**. This is the user ID (client ID) for the IAG subaccount. This can be found using the BTP admin. 7. Enter the **Client Secret**. This is the password (client secret) for the IAG subaccount. This can be found using the BTP admin and is used to generate an access token. 8. Select **Save**. ## Aggregation Settings Provide the following settings requirement for aggregation: For more information about aggregation, refer to [Loading Account Data](). > [!NOTE] > > **Screenshot** > > [![Aggregation Settings]()]() 1. Enter the **Aggregation Delimiter**. This field defines a delimiter to separate aggregated group records. The default delimiter is a double tilde (\~\~). 2. Enter the **Language** used for the connection. The default language is English (EN). 3. Enter the number of records in the **Page Size** to aggregate in a single page when iterating over large datasets. The default is 100 records. 4. Select **Save**. ## Provisioning Settings Connection settings to fetch manager IDs. These credentials are required only when SAP Identity Directory serves as the source for associated Business Users. ### Access Request Configuration > [!NOTE] > > **Screenshot** > > [![Access Request Configuration]()]() 1. Enter the **Polling Interval in Minutes** to define the duration between each access request interval. you can set it from 1 to 360 minutes. The default is 60 minutes. 2. Enter the **Access Request Priority** for provisioning requests. 3. Enter the **Access Request Reason Code** for provisioning requests. ## Review and Test Perform a test to confirm the connection to SailPoint. 1. Go to **Review and Test**. 2. Confirm that the entries in each field are correct. If you note any mistakes, return to the section and make corrections. 3. Select **Test Connection**. ## SailPoint Application Onboarding SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface. For more information, refer to [Application Onboarding]() in the SailPoint SaaS documentation. # Frequently Asked Questions The following are Frequently Asked Questions (FAQs) for this connector: ## Does this connector support IAG in bridge mode? **Answer**: No, this connector is designed specifically for the standard IAG edition. For bridge scenarios, the SAP GRC connector should be used. ## Can account validity dates be set for SAP cloud applications connected via IAG? **Answer**: No, according to [SAP KBA 3357215](), SAP cloud applications connected through IAG do not support validity dates. ## How can I view the associated child roles of an IAG business role? **Answer**: Currently, due to limitations in the SAP IAG API, the connector cannot display child roles within a given business role. ## Is it possible to show the risk score when raising an access request? **Answer**: No, the connector cannot fetch the risk score before raising an access request due to limitations in the SAP IAG APIs. ## Can this connector be used in both auto-approval and non-auto-approval business workflow configurations? **Answer**: Yes, the connector supports both auto-approval and non-auto-approval workflow setups. In the case of non-auto-approval workflows, the connector only supports CIS as its user source system. Maintain the SAP CIS URL in the Provisioning Settings section so that the manager ID from CIS can be fetched, and access requests can be raised on a user by including the fetched manager ID in the payload. If the workflow is tied to a request reason, then at a time, the source can only support one mode because only one request reason can be configured in a source. ## How does the connector support operations on application users? **Answer**: The connector is primarily designed to support operations on business users brought into IAG via repository sync jobs. For application users who are also business users, the same applies. However, for application users who are not business users and are synced via the SCI user group sync job, the connector does not support operations on them. ## How are custom fields supported? **Answer**: IAG systems can be configured with additional custom fields, and systems like SAP Concur have mandatory custom fields out of the box. To provision these fields, use a BeforeProvisioning Rule. For more information, refer to [Managing Custom Fields for Provisioning](). ## Why does the request status remain in the Pending state even though the IAG workflow is configured for auto-approval? **Answer**: Ensure that the 'Provisioning job' has run and picked up the concerned request. ## How do I get implementation details regarding sample attribute requests for custom attributes? Use the following reference code as an example for your before provisioning rule: ```xml BP rule for IAG ``` ## How do I get implementation details regarding sample attribute requests for Access Priority, Request Reason Code, and Validity dates for user access? Use the following reference code for the before provisioning rule as an example: ```xml BP rule for IAG ``` # Integrating SailPoint with SAP Cloud Identity Access Governance (IAG) SaaS > [!NOTE] > > **Integration** > > This is an integration and requires additional licensing or subscriptions to utilize it. For more information, contact your customer success manager. The SaaS integration for SAP IAG can aggregate and provision business users and entitlements for SAP IAG connected systems. SailPoint recommends using SAP Cloud Identity services along with IAG setup as a centralized user database for provisioning users and entitlements to the downstream systems. This guide is designed to give specific information about the requirements and field definitions needed to get a working instance of a SAP IAG connector in SailPoint. > [!NOTE] > > To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes]() page. ## Supported Features The SAP Cloud Identity Access Governance (IAG) SaaS connector supports the following features: - Aggregation - Account - Groups - Add/Remove Entitlement - Provisioning of Group (Add/Remove Entitlement) > **Note** > > As a part of this feature capability, you can add/remove a system as an entitlement. For example, if an entitlement of `"accessType":"SYS"` is assigned to an account, an account will be created without an entitlement. > [!NOTE] > > Some connected systems within IAG tenant might require additional parameters (custom fields) for provisioning. You can use Before Provisioning Rule to provision such systems. For more information, refer to the [Managing Custom Fields for Provisioning](). > [!NOTE] > > SAP Cloud IAG has no API to enable/disable users. For more information, refer to [Managing Leaver Process](). ## Supported Managed Systems The connector supports the SAP IAG standard edition. ## Prerequisites - Administrator permissions to configure SAP IAG connector. > **Steps for getting IAG subaccount details from SAP IAG managed system** > > 1. Go to your BTP Global account and open the relevant IAG subaccount. > 2. Go to **Instances and Subscriptions** and select the **Instances** tab. > 3. Locate the IAG instance and select the arrow icon to view details. > 4. Go to the **Service Keys** tab and select **View** from the **Action** menu for the relevant service key that was generated for your SAP IAG tenant. > 5. Copy the following values to configure the connector: > > - **clientid** > - **clientsecret** > - **ARQAPI** (Host URL) > - **url** (Token URL) > 6. To get the IAG domain name, go to the **Overview** section in your IAG subaccount in the SAP BTP Cockpit and check the subdomain value. - Access Request configuration details required from the SAP IAG managed system. > **Steps for getting the access request reason code and access request priority from SAP IAG managed system** > > **Access Request Priority:** > > 1. Log in to your SAP IAG tenant. > 2. Go to the **Administration** tab. > 3. Select the **Access Request Priority** tile. > 4. Locate and copy the required priority ID value. > > **Access Request Reason Code:** > > 1. Log in to your SAP IAG tenant. > 2. Go to the **Administration** tab. > 3. Select the **Request Reason** tile. > 4. Locate and copy the required reason code value. ## Required Permissions A Client ID and Client Secret from any active instance on your SAP BTP subaccount with an Identity Authentication (IAG) service subscription. The technical name for the IAG service is `grc-iag-api`. # Schema Reference The application schema is used to configure the objects returned from a connector. > [!NOTE] > > - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas]() for more information. > - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified. The SAP Cloud Identity Access Governance (IAG) SaaS connector uses the following default correlation and object configurations. ## Default Account Schema Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location. The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas]() for more information. ### Default Account ID SailPoint requires certain attributes as a part of configuration for being referred-to as Identity Attributes (which shall not be updated, or reset to default). The following table lists the Account IDs for this connector. SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*. > [!CAUTION] > > Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts. > > To resolve issues caused by changing account IDs, reconfigure them to their default values. The following table lists the default account IDs for this connector: | Account ID | Schema Object Type | | --- | --- | | User ID | Account | | Access ID | Group | ### Default Account Attributes The SAP Cloud Identity Access Governance (IAG) SaaS connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified. | Attribute Name | Description | | --- | --- | | User ID | A unique identifier of the user. This is an Account ID which must not be changed. | | Display name | Display name of the user. | | Email | Email of the user. | | First Name | First name of the user. | | Last Name | Last name of the user. | | Location | Location of the user. | | Manager ID | Manager ID of the user. | | Access | Access assigned to the user. | ## Default Entitlement Attributes Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements]() for more information. > [!CAUTION] > > Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations. ### Default Group Attributes The SAP Cloud Identity Access Governance (IAG) SaaS connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups. | Attribute Name | Description | | --- | --- | | Access alias name | Alias name of the access. | | Access ID | ID of the access. | | Access Description | Access description. | | Access Type | Type of the access. | | Access Type Description | Access type description. | | Action | Action name associated with the access. | | Application Type | Application type of the access. | | Application Type Description | Application type description. | | Business Process Description | Business process description to which access belongs. | | Business process ID | Business process to which access belongs. | | Criticality ID | Criticality name ID associated with the access. | | Criticality Name | Criticality name associated with the access. | | Display Name | Display name of the access. | | Sub Business Process ID | Sub business process to which access belongs. | | Remaining days | Remaining days of the access. | # Troubleshooting If you encounter any of the following issues or errors, SailPoint recommends that you follow the guidance provided below to resolve the error before contacting SailPoint Support. For issues or errors that are not addressed in this connector guide, refer to the following resources for troubleshooting information: - [SailPoint Identity Services Documentation]() - [SailPoint Support Knowledge Base]() - [SailPoint Developer Community]() ## Debug Logs For information about managing additional source settings, including debug logging and downloading connector logs, refer to [Managing Additional Settings](). ## 400 error during provisioning The following error message appears during provisioning: `sailpoint.connector.ConnectorException: Exception occurred during provisioning on SAP IAG: Exception occurred during provisioning from SAP IAG - Message Code: 400 Message: Something went wrong during operation.` **Resolution**: Ensure to verify the request priority and reason code with the configured source. ## Incorrect FirstName or LastName **Resolution**: Ensure the selected user has mandatory details (such as FirstName and LastName) similar to the managed system. ## Incorrect manager passed The following error message appears during provisioning: `sailpoint.connector.ConnectorException: Exception occurred during provisioning onSAP IAG: Exception occurred during provisioning from SAP IAG - Message Code: 400 Message: Manager passed is incorrect. Request cannot be created for request reasonCustomRequestReason` **Resolution**: Perform provisioning operation again. ## SailPoint request status is showing as Failed even if a few of the entitlements have been successfully provisioned by IAG **Resolution**: This is expected SailPoint platform behavior. The message captures the details of successful as well as failed entitlement that are part of the provisioning request.