We are delighted to share our new EIC Delivery Methodology for efficiently managing Saviynt Implementations and delivering quick time to value. CLICK HERE.

[SAP SUCCESSFACTOR]: ERROR When Testing ConnexionJSON

KhaoulaD
New Contributor III
New Contributor III

Hello,

We're trying to test conexion to successFactor from saviynt and we're getting the error below:

2023-10-19T18:40:16+02:00-ecm-rest.RestProvisioningService-http-nio-8080-exec-215-DEBUG-Got Webservice API Response: [headers:[Date: Thu, 19 Oct 2023 16:40:16 GMT, Content-Type: application/json;charset=UTF-8, Content-Length: 210, Connection: keep-alive, X-Unique-ID: 838ab546-8fd1-460b-8bad-2807a5b7f259, X-Event-ID: EVENT-UNKNOWN-UNKNOWN-ob22areboh42-20231019184016-1077684, Cache-Control: public,max-age=31536000, Expires: Fri, 18 Oct 2024 16:40:16 GMT, X-SF-Correlation-Id: 838ab546-8fd1-460b-8bad-2807a5b7f259, X-Request-Stats: SQLT=0&CCON=0&FWR=0&NRE=0&CEXT=0&ST=1697733616714&EID=EVENT-UNKNOWN-UNKNOWN-ob22areboh42-20231019184016-1077684&CLOC=0&CREM=0&NWR=0&CPU=8&SVT=9&SQLC=0&SCPU=0&CSUP=0&MEM=921&UCPU=8&FRE=0, Server: BizX, X-Correlation-ID: 838ab546-8fd1-460b-8bad-2807a5b7f259, Referrer-Policy: strict-origin-when-cross-origin, X-XSS-Protection: 1, mode=block, X-Content-Type-Options: nosniff, Strict-Transport-Security: max-age=31536000; IncludeSubDomains], responseText:{"error":{"code":"RESOURCE_REQUESTED_NOT_FOUND","details":[{"code":"404","message":"Invalid Request: Requested resource is not found"}],"message":"Invalid Request: Requested resource is not found","target":""}}, cookies:[], statusCode:404]

It seems that this the request specified in the TestConnexionPrams is not recognized. This is provided by saviynt documentation. I tested in postman and found out another request that works. When i test the connexion from the connector it seems successful but in the error above is showing in the logs.

I tried to use another request instead of the json below but this time the test connexion fails.

 

 

"testConnectionParams": {
        "http": {
          "url": "https://<domain name>/api/v2/users.json",
          "httpHeaders": {
            "Authorization": "${access_token}"
          },
          "httpContentType": "application/json",
          "httpMethod": "GET"
        },
        "successResponse": [],
        "successResponsePath": "",
        "errors": [
          "Couldn't authenticate you"
        ],
        "errorPath": "error"
      }

 

 

 Find below the Connexion json i'm using:

{"showLogs": true,
  "authentications": {
    "userAuth": {
      "authType": "oauth2",
      "url": "https://<domain/oauth/token",
      "httpMethod": "POST",
      "httpParams": {
        "company_id": "XXXX",
        "client_id": "XXXX",
        "grant_type": "urn:ietf:params:oauth:grant-type:saml2-bearer",
        "assertion": "${refresh_token}"
      },
      "httpHeaders": {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      "httpContentType": "application/x-www-form-urlencoded",
      "authError": [
        "Unable to authenticate the client",
        "Invalid OAuth token Bearer"
      ],
      "retryFailureStatusCode": [
        401
      ],
      "errorPath": "",
      "maxRefreshTryCount": 5,
      "tokenResponsePath": "access_token",
      "refreshType": "RefreshToken",
      "tokenType": "Bearer",
      "accessToken": "Bearer asdsdfghjk",
      "refreshToken": "<the token received as response from the first call : IDP>",
      "refreshTokenAuthError": [
        "Unable to retrieve SAML assertion",
        "The provided SAML assertion is expired",
        "Unable to retrieve access token",
        "400",
        "401"
        ],
        "refreshTokenErrorPath": "errorHttpCode",
      "refreshTokenCall": {
        "refreshTokenResponsePath": "refresh_token",
        "url": "https://<domain>/oauth/idp",
        "httpMethod": "POST",
        "httpParams": {
          "client_id": "XXXX",
          "user_id": "XXXX",
          "token_url": "https://<domain>/oauth/token",
          "private_key": "XXXX"
        },
        "httpHeaders": {
          "Content-Type": "application/x-www-form-urlencoded"
        },
        "httpContentType": "application/x-www-form-urlencoded"
      },
      "testConnectionParams": {
        "http": {
          "url": "https://a<domain>api/v2/users.json",
          "httpHeaders": {
            "Authorization": "${access_token}"
          },
          "httpContentType": "application/json",
          "httpMethod": "GET"
        },
        "successResponse": [],
        "successResponsePath": "",
        "errors": [
          "Couldn't authenticate you"
        ],
        "errorPath": "error"
      }
    }
  }
}
 
I may have a doubt about the information that should be put in both:
- "accessToken": "Bearer asdsdfghjk": took it directly from the documentation
- "refreshToken": "<the token received as response from the first call : IDP>"

 

Could you please help on that?

 

Thank you in advance

Best Regards,

Khaoula

 

2 REPLIES 2

Manu269
All-Star
All-Star

{
"authentications": {
"SuccessFactors": {
"authType": "oauth2",
"url": "https://xxxx/oauth/token",
"httpMethod": "POST",
"httpParams": {
"company_id": "",
"client_id": "",
"grant_type": "urn:ietf:params:oauth:grant-type:saml2-bearer",
"assertion": "${refresh_token}"
},
"httpHeaders": {
"Content-Type": "application/x-www-form-urlencoded"
},
"httpContentType": "application/x-www-form-urlencoded",
"authError": [
"Unable to authenticate the client",
"Invalid OAuth token Bearer",
"Unable to retrieve access token"
],
"retryFailureStatusCode": [
401,
403
],
"errorPath": "",
"maxRefreshTryCount": 5,
"tokenResponsePath": "access_token",
"refreshType": "RefreshToken",
"tokenType": "Bearer",
"accessToken": "",
"refreshToken": "",
"refreshTokenAuthError": [
"Unable to retrieve SAML assertion",
"The provided SAML assertion is expired"
],
"refreshTokenErrorPath": "errorMessage",
"refreshTokenCall": {
"refreshTokenResponsePath": "",
"url": "https://xxx.xxx.eu/oauth/idp",
"httpMethod": "POST",
"httpParams": {
"client_id": "",
"user_id": "",
"token_url": "https://xxx.xxx.eu/oauth/token",
"private_key": ""
},
"httpHeaders": {
"Content-Type": "application/x-www-form-urlencoded"
},
"httpContentType": "application/x-www-form-urlencoded"
}
}
}
}

Regards
Manish Kumar
If the response answered your query, please Accept As Solution and Kudos
.

Manu269
All-Star
All-Star

@KhaoulaD sorry to mention , can you also include this :

Can you update your Connection JSON with below and then try

"refreshTokenAuthError": [
"Unable to retrieve SAML assertion",
"The provided SAML assertion is expired",
"Unable to retrieve access token",
"400",
"401"
],
"refreshTokenErrorPath": "errorHttpCode",

Regards
Manish Kumar
If the response answered your query, please Accept As Solution and Kudos
.