Click HERE to see how Saviynt Intelligence is transforming the industry. |
01/22/2024 10:51 AM
Hi I was wondering if anyone could provide examples of their sav4sav connectionJsons and userImportJsons that they are using and actually have working? Minus sensitive info.
01/22/2024 08:40 PM - edited 01/22/2024 08:46 PM
Hello @jralexander137,
Please find the sample below ,
Connections Json (SavforSav) Rest
{
"authentications": {
"userAuth": {
"authType": "oauth2",
"httpHeaders": {
"Content-Type": "application/json"
},
"authError": [
"USER_AUTHENTICATION_FAILED",
"PARTNER_AUTHENTICATION_FAILED",
"AuthenticationFailed"
],
"url": "XXXXXX",
"httpMethod": "POST",
"httpContentType": "application/json",
"errorPath": "errorCode",
"maxRefreshTryCount": 5,
"tokenResponsePath": "accessToken",
"tokenType": "Bearer",
"authHeaderName": "Authorization",
"accessToken": "bearer abcd",
"httpParams": "{\"username\": \"XXXX\",\"password\": \"XXXX\"}",
"retryFailureStatusCode": [
401
]
}
}
}
Import Account Json,
{
"type": "multiCall",
"call": [
{
"name": "call1",
"connection": "userAuth",
"url": "XXXXX",
"httpParams": "{\"analyticsid\": \"XXXX\"}",
"httpMethod": "POST",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"userResponsePath": "result",
"colsToPropsMap": {
"username": "IDENTITYID~#~char",
"systemusername": "LOGONNAME~#~char",
"email": "${LOGONNAME + '@XXXX'}~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "displaycount",
"batchSize": 50,
"totalCountPath": "completeResponseMap.total"
}
}
}
]
}
For Ref :
https://docs.saviyntcloud.com/bundle/Saviynt-REST-based-Guide/page/Content/Understanding-Integration...
Thanks
01/22/2024 08:46 PM
Connection JSON
{
"authentications": {
"acctAuth": {
"authType": "oauth2",
"httpHeaders": {
"Accept": "application/json"
},
"authError": [
"InvalidAuthenticationToken"
],
"url": "https://SaviyntURL/ECM/api/login",
"httpMethod": "POST",
"httpContentType": "application/json",
"errorPath": "error.code",
"maxRefreshTryCount": 2,
"tokenResponsePath": "access_token",
"tokenType": "Bearer",
"authHeaderName": "Authorization",
"accessToken": "Bearer ABCD",
"httpParams": "{\"username\":\"admin\",\"password\":\"Not4$password\"}",
"retryFailureStatusCode": [
401
]
}
}
}
Import Account JSON
{
"accountParams":{
"connection":"userAuth",
"processingType":"SequentialAndIterative",
"call":{
"call1":{
"callOrder":0,
"stageNumber":0,
"http":{
"url":"https://<EIC_URL>.saviyntcloud.com/ECM/api/v5/getUser",
"httpHeaders":{
"Authorization":"${access_token}"
},
"httpContentType":"application/json",
"httpMethod":"POST",
"httpParams":"{\"userQuery\":\"user.username is not null\"}"
},
"listField":"userdetails",
"keyField":"accountID",
"colsToPropsMap":{
"accountID":"username~#~char",
"name":"username~#~char",
"displayName":"username~#~char",
"customproperty31":"STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
}
},
"entitlementParams":{
"connection":"userAuth",
"processingType":"SequentialAndIterative",
"entTypes":{
"SAVRole":{
"entTypeOrder":1,
"call":{
"call1":{
"callOrder":0,
"listField":"result",
"keyField":"entitlement_value",
"http":{
"url":"https://<EIC_URL>.saviyntcloud.com/ECM/api/v5/fetchControlDetailsES?analyticsid=1470",
"httpMethod":"GET",
"httpContentType":"application/json",
"httpHeaders":{
"Authorization":"${access_token}"
},
"httpParams":"{\"offset\":\"0\"}"
},
"colsToPropsMap":{
"displayname":"ROLENAME~#~char",
"entitlementID":"ROLEKEY~#~char",
"description":"ROLEDESCRIPTION~#~char",
"entitlement_value":"ROLENAME~#~char"
}
}
}
}
}
},
"acctEntParams":{
"connection": "userAuth",
"entTypes": {
"SAVRole": {
"call":{
"call1":{
"callOrder":0,
"stageNumber":0,
"processingType": "httpEntToAcct",
"http":{
"url":"https://<EIC_URL>.saviyntcloud.com/ECM/api/v5/fetchControlDetailsES?analyticsid=1471",
"httpMethod":"GET",
"httpContentType":"application/json",
"httpHeaders":{
"Authorization":"${access_token}"
},
"httpParams":"{\"filtercriteria\":{\"rolekey\":[\"${id}\"]}}"
},
"listField":"result",
"entKeyField": "entitlementID",
"acctIdPath": "username",
"acctKeyField": "accountID"
}
}
}
}
}
}
Documentation : https://docs.saviyntcloud.com/bundle/Saviynt-REST-based-Guide/page/Content/Understanding-Integration...
01/22/2024 09:07 PM
Refer this :
================ CONNECTION JSON ====================
{
"authentications": {
"userAuth": {
"authType": "oauth2",
"url": "https://<EIC URL>/ECM/api/login",
"httpMethod": "POST",
"httpParams": "{\"username\": \"xxx\",\"password\": \"xxxx\"}",
"httpContentType": "application/json",
"httpHeaders": {
"Content-Type": "application/json"
},
"authError": [
"USER_AUTHENTICATION_FAILED",
"PARTNER_AUTHENTICATION_FAILED",
"AuthenticationFailed"
],
"errorPath": "errorCode",
"maxRefreshTryCount": 5,
"tokenResponsePath": "access_token",
"tokenType": "Bearer",
"authHeaderName": "Authorization",
"accessToken": "Bearer abcd",
"retryFailureStatusCode": [
401
]
}
}
}
=====================ImportAccountEntJSON========================
{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty11",
"activeStatus": [
1
],
"deleteLinks": true,
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://<EIC URL>/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname,statuskey&sort=username&order=desc",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "results",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "username~#~char",
"name": "username~#~char",
"displayName": "displayname~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"status": "active~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": 999999999
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://<EIC URL>/ECM/api/v5/getRoles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": "{\"requestedObject\":\"users\"}"
},
"listField": "Roledetails",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "roleKey~#~char",
"entitlement_value": "role_name~#~char",
"customproperty1": "roleKey~#~char",
"customproperty2": "role_name~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owner",
"idPath": "ownername",
"keyField": "accountID",
"importAsAccount": false
}
},
"Organization": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://<EIC URL>/ECM/api/v5/getOrganization",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET",
"httpParams": "{\"max\": \"1000\",\"offset\": \"0\",\"orgQuery\": \"c.organizationname like '%%'\"}"
},
"listField": "organizations",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "organizationname~#~char",
"entitlement_value": "displayname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "organizationowners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"UserGroups": {
"entTypeOrder": 2,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://<EIC URL>/ECM/api/v5/fetchUserGroup",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": ""
},
"listField": "usergroups",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"SAVRoles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://<EIC URL>/ECMv6/api/userms/savroles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET",
"successResponses": {
"statusCode": [
200,
201
]
}
},
"listField": "savroles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char",
"customproperty1": "CUSTOMPROPERTY1~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"Organization": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"UserGroups": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"SAVRoles": {
"call": {
"call1": {
"connection": "userAuth",
"acctKeyField": "accountID",
"callOrder": 0,
"stageNumber": 1,
"processingType": "httpEntToAcct",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "https://<EIC URL>/ECMv6/api/userms/savroles/${id}/users?limit=1000&offset=0",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "username"
}
}
}
}
}
}