Click HERE to see how Saviynt Intelligence is transforming the industry. |
07/30/2024 07:38 AM
I am trying to integrate a rest application with Saviynt. The connection is successful but no accounts are importing. Authorization is bearer token. It is showing correct response in Postman but I can't get the same data into Saviynt. In Postman I have to use Post request with JSON in body. Here is output:
Here is my ImportAccountEntJSON, the logs are not returning any useful information or errors please can you help me get this to import the accounts correctly.
Solved! Go to Solution.
07/30/2024 09:31 AM
@do12 try below
{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"deleteLinks": true,
"accountThresholdValue": 30,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://**************ud.com/*******Api/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpParams": "{\"BaseWebServerUrl\": \"https://***************.com/******Web\",\"ApplicationName\": \"Dev\",\"WorkspaceName\": \"Default\",\"AdapterName\": \"REST_CALL\",\"ResultDataTableName\": \"RestAPIResults\",\"CustomSubstVarsAsCommaSeparatedPairs\": \"Method = Report, ReportName = UserList\"}",
"httpContentType": "application/json",
"httpMethod": "POST"
},
"listField": "userList",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "email~#~char",
"name": "name~#~char"
},
"successResponses": {
"statusCode": [200, 201]
},
"unsuccessResponses": {
"statusCode": [400, 401, 404, 500]
}
}
}
},
"entitlementParams": {},
"acctEntParams": {}
}
07/30/2024 10:22 AM
Hi
No change still no accounts being imported. Log viewer shows this:
2024-07-30T18:14:57+01:00-ecm-worker-services.ImportUtilityService-quartzScheduler_Worker-7-9sj49-DEBUG-Start takeAccountsNotInImportAction: params - [jobID:38262, importType:full, statusAndThresholdJSONMap:[deleteLinks:true, accountThresholdValue:30, correlateInactiveAccounts:false, inactivateAccountsNotInFile:true, deleteAccEntForActiveAccounts:true], isApiSuccess:true, endpoint:OneStream, jobHistoryMap:[Job-Type:full, Import-Type:accounts, Accounts-Activated:0, Accounts-Inactivated:0], statusColumn:null, activeStatus:null, inactiveStatus:null, deleteLinks:true, correlateInactiveAccounts:false, inactivateAccountsNotInFile:true, setReferenceAccountNull:null, lockedStatusColumn:null, lockedStatusMapping:null, inactiveAccountSet:[], actionableAccountsList:[]]
07/30/2024 08:53 PM
Could you kindly provide a detailed snapshot of the information extracted from the logs, encompassing errors and other pertinent functionality details encountered during the execution of this process? Your assistance in furnishing this information would greatly aid in the analysis and resolution of any issues .
‼️‼️⚠️Do not upload any attachments that contain sensitive information, such as IP Addresses, URLs, Company/Employee Names, Email Addresses, etc.⚠️‼️‼️
07/31/2024 03:13 AM
07/31/2024 07:59 AM
Here is the Connection JSON:~
{ "showLogs":true,
"authentications": {
"acctAuth": {
"authType": "OAuth",
"url": "https://{{************.com}}/*****Api/api/Authentication/LogonAndReturnCookie?api-version={{5.2.0}}",
"httpMethod": "POST",
"httpParams": {
"username": "<*************>",
"password": "<*************>"
},
"httpHeaders": {
"contentType": "application/json"
},
"httpContentType": "application/json",
"expiryError": "ExpiredAuthenticationToken",
"authError": [
"InvalidAuthenticationToken",
"AuthenticationFailed",
"FAILURE",
"INVALID_SESSION_ID"
],
"timeOutError": "Read timed out",
"errorPath": "errors.type",
"maxRefreshTryCount": 5,
"tokenResponsePath": "sessionId",
"tokenType": "Bearer",
"accessToken": "{{*************************}}"
}
}
}
07/31/2024 09:00 AM
Share postman screenshot for authentication
Please share postman screenshot and curl command [Refer https://codingnconcepts.com/postman/how-to-generate-curl-command-from-postman/ ]
⚠️‼️‼️Do not upload any attachments that contain sensitive information, such as IP Addresses, URLs, Company/Employee Names, Email Addresses, etc.‼️‼️⚠️
08/01/2024 12:22 AM
Thanks for responding here is the curl command and I've attached a screenshot of Postman authentication. It only uses a token that I could hard code into the import JSON and not require a connection JSON. But I was trying to construct a suitable connection JSON as it was required by Saviynt. I do not need to make a separate API call to authenticate to get the data. The same URL endpoint will achieve the right outcomes by changing the Body for
curl --location 'https://****.****.com/****Api/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ****' \
--data ' {
"BaseWebServerUrl": "https://****.****.com/****Web",
"ApplicationName": "Dev",
"WorkspaceName": "Default",
"AdapterName": "REST_CALL",
"ResultDataTableName": "RestAPIResults",
"CustomSubstVarsAsCommaSeparatedPairs": "Method = Report, ReportName = Userlist"
}
'
08/01/2024 10:00 PM
{
"authentications": {
"acctAuth": {
"authType": "oauth2",
"url": "ANY URL of APP",
"httpMethod": "POST",
"httpParams": "",
"httpHeaders": {
"Content-Type": "application/x-www-form-urlencoded"
},
"httpContentType": "application/x-www-form-urlencoded",
"authError": [
"InvalidAuthenticationToken",
"AuthenticationFailed",
"Must authenticate to access this API."
],
"retryFailureStatusCode": [
401,
403
],
"errorPath": "error.message",
"maxRefreshTryCount": 5,
"tokenResponsePath": "access_token",
"tokenType": "Bearer",
"authHeaderName": "Authorization",
"accessToken": "Bearer token hardcoded add here"
"token" :"token hardcoded add here"
}
}
}
"Authorization": "Bearer ${connection.token}", Use this in account import
08/02/2024 01:51 AM
Thank you that is working now. Much appreciated!