Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

REST Connector: How to store Acc-Ent mapping when it is return under entitlementParams call

Deepanshu
New Contributor
New Contributor

Hi All

We are trying to connect with an application using Rest connector, Under entitlementParams when we make an API call to get all the entitlements from target in the same payload it shares all the accounts mapped with the particular groups in the format below 

[
    {      
        "GroupName": "Test",

"GroupID":"24bn25-w8485n2-4728",
        "users": [
            {
                "AccId": "27500",
                "AccName": "Acc1"
            },
            {
                "AccId": "2ffbce",
                "AccName": "Acc2"
            }
        ]
    }
]

We are using the below json in ImportAccountEntJSON 

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "",
"httpHeaders": {
"Content-Type": "application/json",
"Authorization": "${access_token}"
},
"httpParams": "{}",
"httpContentType": "application/json",
"httpMethod": "GETWITHBODY"
},
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "uniqueIdentifier~#~char",
"name": "userName~#~char"
}
}
}
},
"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Groups": {
"entTypeOrder": 0,
"call": {
"call1": {
"connection": "userAuth",
"callOrder": 0,
"stageNumber": 0,
"http": {
"httpHeaders": {
"Content-Type": "application/json",
"Authorization": "${access_token}"
},
"url": "",
"httpMethod": "GET"
},
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "GroupID~#~char",
"entitlement_value": "GroupName~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Groups": {
"call": {
"call1": {
"processingType": "entToAcctMapping",
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "users.AccId",
"acctKeyField": "accountID"
}
}
}
}
}
}

The account and entitlements are imported correctly but the correlation between the account and entitlements are not stored within saviynt and the field acctEntMappingInfoColumnFromEnt is also NULL within Saviynt. There are no clear example in freshdesk documentation under REST connector for this type of import. Can you please share a working JSON example how to implement the account to entitlement mapping.

 

Thanks,

Deepanshu

@soumya_deep 

7 REPLIES 7

rushikeshvartak
All-Star
All-Star

"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"

Refer https://saviynt.freshdesk.com/support/solutions/articles/43000521736-rest-connector-guide%C2%A0 


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

We can use this attribute I guess when we are getting the account-entitlement mapping in the get account call and not in the get entitlement call. Anyway, we have tried this option and it din't work.

Then you should use entitlement API for Account to Entitlement Mapping


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Deepanshu
New Contributor
New Contributor

Hi ,

Since the application doesn't have entitlement API that is why are store the ent acc mapping from the data we are receiving under entitlementParams.

Can you please share how can we do ent acc mapping when receiving the accounts mapped with each entitlement?

Regards,

Deepanshu 

amit_krishnajit
Saviynt Employee
Saviynt Employee

@Deepanshu - could you pls try the following? 

For entitlementParams try the following

"entitlementParams": {
		"doNotChangeIfFailed": true,
		"connection": "acctAuth",
		"processingType": "SequentialAndIterative",
		"entTypes": {
			"Group": {
				"entTypeOrder": 0,
				"entTypeLabels": {},
				"call": {
					"call1": {
						"callOrder": 0,
						"stageNumber": 0,
						"inputParams": {
							"entitlementname": "Group"
						},
						"http": {
							"httpHeaders": {
								"Authorization": "${access_token}"
							},
							"url": "xxyyzz",
							"httpContentType": "application/json",
							"httpMethod": "GET"
						},
						"listField": "",
						"keyField": "entitlementID",
						"colsToPropsMap": {
							"entitlementID": "GroupID~#~char",
							"entitlement_value": "GroupName~#~char",
							"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
						},
						"disableDeletedEntitlements": false
					}
				},
				"acctEntMappings": {
					"listField": "users",
					"idPath": "AccId",
					"importAsAccount": true,
					"keyField": "accountID",
					"colsToPropsMap": {
						"accountID": "AccId~#~char",
						"name": "AccName~#~char"
					}
				}
			}
		}
	},

 

For acctEntParams, put the following: 

"acctEntParams": {
		"processingType": "entToAcctMapping"
	}

 

If this does not work, please share a full sample output of the Groups Import API and the entire JSON you are using for import. 

FYI: @soumya_deep 

Thanks,
Amit

Hi Amit,

Please find attached the ImportAccountENTJSOn and the response from the target application. The import is failing with the error "Data too long for column
'ACCTENTMAPPINGINFOCOLUMNFROMENT' at row 1" 

amit_krishnajit
Saviynt Employee
Saviynt Employee

@Deepanshu - The error you have mentioned is not because of the mapping - it's because of the length of the column in the database table. You may want to open a ticket with the operations team to help you with that.

 

Thanks,
Amit