Setting Up OAuth Authentication in SAP SuccessFactors

2.2k Views Asked by At

In order to get oData from success factors odata service, I'm trying to setting up a connection between SuccessFactors and SAP BTP by creating a destination as reported in this official guide.

Using postman everything works fine but, once I check the connection of destination previously created, the response received is 401: Unauthorized.

Below the configuration of destination: enter image description here

Here you can see the properties: enter image description here

And here the response: enter image description here

I know that is wrong but, for the sake of curiosity, I've also created a different destination with no authentication. Then directly from code I've developed three nested ajax requests. First provides the assertion, second the user token, third is the one which, leveraging the token, get the odata. Sadly response is always 401: Unauthorized.

Below the code of last ajax request, the other two are good:

 // Validate access token
$.ajax({
    type: 'GET',
    headers: {
        "Authorization": "Bearer " + sAccessToken
    },
    url: '/oauth/validate',
    success: function(data){
        console.log("Success: ", data);
    },
    error: function(e){
        console.log(e);
    }
});

Here the request header:

enter image description here

1

There are 1 best solutions below

0
On

So not sure how your flow really is. Normaly you would connect to BTP via a SAP Approuter which has a xs-app.json which defines the routes and destinations to use. Then the Approuter would Exchange the internal BTP JWT with a SAML Assertion for Successfactors. If you want to request the authentication infos for yourself via the BTP Destination Service, you have to send a valid BTP JWT to the destination service via the HTTP Header field X-user-token and as a response you would get back a Successfactors OAuth bearer token.

See here

hope it helps

Regards Mathias