Symptoms
Requirement is to integrate SAP concur as REST connected application using Oauth authentication to connect to Concur.
Connectivity works for 1 hour but after that access token is getting expired.
Using same refresh token we are able to generate token in postman but seems like Saviynt is not generating the access token dynamically.
Diagnosis
The refresh token url should work similarly even in saviynt but Saviynt is not able to recognize when to regenerate the Token.
Log snippet
callResponseMap: [Error:[Message:IDX10223: Lifetime validation failed. The token is expired.\n","stream":"stdout","time":"2022-09-14T05:41:20.044194183Z"}"
Solution
On a token expiry, every application sends a response error message. This message varies from application to application. We need to ensure that the error message sent by the target application is added under "authError": in the Connection json.
This lets the Saviynt application know to retry the token generation.
json format to use
"httpContentType": "application/x-www-form-urlencoded",
"expiryError": "ExpiredAuthenticationToken",
"authError": [
"USER_AUTHENTICATION_FAILED",
"PARTNER_AUTHENTICATION_FAILED",
"AuthenticationFailed",
"The token is expired"
],
"refreshType": "RefreshToken",