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

Need help in importAcctEntJson format to use 2 calls in entitlementparams

prashanthreddy
New Contributor III
New Contributor III

Hi,

I'm trying to integrate AHA- RoadMaps Software application into 23.1 Version. We have two APIs we can use to get, one for users and one for permissions. But Permissions API is not getting the values/roles that sits under permissions which is needed for a user while requesting entitlement. So I need help in the  approach with this type of requirement where we need to create a entitlement from access import by adding permission+role as one entitlement and make that requestable in SAVIYNT.  Any help would be appreciated. TIA

5 REPLIES 5

rushikeshvartak
All-Star
All-Star

Can you share current json


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

Sure Here it is

 

 

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"deleteLinks": true,
"accountThresholdValue": 10000,
"accountNotInImportAction": "Delete",
"correlateInactiveAccounts": true,
"inactivateAccountsNotInFile": false,
"deleteAccEntForActiveAccounts": true,
"includeExistingInActiveAccounts": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxx/api/v1/users/",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"listField": "users",
"keyField": "accountID",
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "name~#~char",
"customproperty1": "email~#~char",
"customproperty2": "created_at~#~char",
"customproperty3": "updated_at~#~char",
"customproperty4": "accessed_at~#~char",
"customproperty5": "enabled~#~char",
"customproperty6": "paid_seat~#~char",
"customproperty7": "administrator~#~char",
"customproperty8": "STORE#ACC#ENT#MAPPINGINFO~#~char",
"status": "enabled~#~char"
},

"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 50,
"pageRecordCount": "50",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
}
},
"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Entitlements": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"connection": "userAuth",
"listField": "products",
"keyField": "entitlementID",
"http": {
"url": "https://xxxx/api/v1/products",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"statusConfig": {
"active": "true",
"inactive": "false"
},
"colsToPropsMap": {
"entitlementID": "id~#~char",
"customproperty1": "id~#~char",
"customproperty2": "reference_prefix~#~char",
"entitlement_value": "name~#~char",
"displayName": "name~#~char",
"entitlement_glossary": "id~#~char"
},

"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 50,
"pageRecordCount": "50",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
}
}
}
},
"acctEntParams": {
"connection": "userAuth",
"entTypes": {
"Entitlements": {
"call": {
"call1": {
"connection": "userAuth",
"callOrder": 0,
"stageNumber": 0,
"processingType": "httpEntToAcct",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://xxxx/api/v1/products/${id}/users",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "project_users.user",
"entKeyField": "entitlementID",
"acctIdPath": "id",
"acctKeyField": "accountID",
"pagination": {
"page": {
"pageSizeParam": "per_page",
"pageSize": 50,
"pageRecordCount": "50",
"pageNumberParam": "page",
"totalCountPath": "completeResponseMap.pagination.total_records",
"firstPageNumber": 1
}
}
}
}
}
}

}

}

Can you share the below info:

- When you run the access import, are you seeing any error/data in the logs? 

- Is this the url (https://xxxx/api/v1/products) that gets the Entitlements detail?

- Is this url showing the data from postman response?

Also for REST Conn, I would recommend you to add {"showLogs":true} in Config json Parameter on your connection to print additional logs.


Regards,
Sahil

prashanthreddy
New Contributor III
New Contributor III

Hi Sahil,

thanks for the response!

- I'm not seeing any errors in the access import.

- Yes thats the URL. and looks good and gets data in POSTMAN

- Yes I have added showLogs":true 

PFA 3 screenshots of SAVIYNT ENT hierarchy, how Target permissions looks like and  POSTMAN response.

what's needed is:

ImportAcctEnJson format which can create entitlements in saviynt by adding/concatenating both products and roles as shown in screenshot from target. Access Import is successful and able to pull products and could create them as entitlements but what's needed is products+role = Entitlement.

Please let me know if you still need info thanks.

 

 

 

 

IAM_99
Regular Contributor II
Regular Contributor II

Hi, 

Can we call attributes like this  for entitlements ? what is the valid syntax

users[0].product_roles  

 

IAM_99_0-1678164739977.png

 

Below entitlement JSON but its not working

~~~~~~~~~~~~~~~~~~~~~~~

 

"entitlementParams": {
"processingType": "SequentialAndIterative",
"entTypes": {
"Entitlements": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"connection": "userAuth",
"listField": "users",
"keyField": "entitlementID",
"http": {
"url": "https://xxxxxxxxxxhealth.aha.io/api/v1/users",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpMethod": "GET",
"httpContentType": "application/json"
},
"colsToPropsMap": {
"entitlementID": "product_roles[0].product_id~#~char",
"entitlement_value": "product_roles[0].product_name~#~char",
"customproperty2": "product_roles[0].role~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
}
}
}
},

[This post has been edited by a Moderator to remove sensitive information.]