In this article we are providing the Step by Step Guide for Salesforce Authentication using OAuth and integrating Salesforce with any application using REST API.
A CRM application like Salesforce.com helps you to achieve business goals, improve relationships with customers, sales, productivity. Salesforce.com is a CRM (Customer Relationship Management) solution that brings companies and customers together. Over 150,000 companies use Salesforce worldwide. Integration your application with Salesforce makes a great sense – as it will increase the reach of your application.
By integrating with Salesforce, organizations can experience greater operational productivity with the data available in real-time. Salesforce offers secure authentications like the traditional way (username/password), SAML, OAuth, single sign-on (SSO), and OpenID Connect.
Business Scenario
Let us assume that you have a web/mobile-based application. You are trying to integrate your application with Salesforce and want to use Salesforce REST API resources. You might be looking for possible ways to authenticate with Salesforce.
For a client application to access REST API resources, the request must be authorized. For this, we need to use the connected app (which is a framework that allows external applications to integrate with Salesforce using APIs) and an OAuth 2.0 authorization flow.
In this article, let’s discuss how to create a connected app and use OAuth 2.0 authentication.
Creating a connected app
- From Setup, enter Apps in the Quick Find box, and select App Manager.
- Click New Connected App.
- Enter the connected app’s name and enter the API name (re-check the name before saving. It can’t be modified later)
- In the API (Enable OAuth Settings) area of the page, select Enable OAuth Settings.
- Enter the callback URL (endpoint) that Salesforce will use to call back to your application during OAuth.
- Select the OAuth scopes to apply to the connected
- When you’ve configured all settings for your connected app, click Save.
Once saved, it generates Consumer Key, Consumer Secret. Copy them!
Request an Access Token
We need to follow two steps for fetching access token:
- Fetching authorization code
To get authorization code, we need to make a HTTP request to this endpoint
https://login.salesforce.com/services/oauth2/authorize?
client_id={consumer_key}&
redirect_uri={callback_url}&
response_type=code
Include these parameters in an authorization code request:
client_id: The connected app’s consumer key
redirect_uri: same as connected app’s callback URL.
After successfully authenticating the user and granting access to the app, Salesforce redirects users to the callback URL with an authorization code.
- Use authorization code to get token
To get access token, pass the authorization code to the Salesforce token endpoint as an HTTP POST.
https://login.salesforce.com/services/oauth2/token?grant_type=authorization_code&
code={authorization_code}&
client_id={consumer_key}&
client_secret={consumer_secret}&
redirect_uri={callback_url}
Include these parameters in request:
client_id: The connected app’s consumer key
client_secret: The connected app’s consumer secret
redirect_uri: same as connected app’s callback URL.
After Salesforce validates the connected app’s credentials, it sends back the access token to call back URL in JSON format.
Sample API call using Access token
Let’s fetch the Account object records using the HTTP GET request
URL: https://{instance_url}/services/data/v41.0/query?q=SELECT+Id+,+Name+from+Account
Headers: Authorization: Bearer {access_token}
Include these parameters in request
instance_url: Salesforce Instance URL (ex: https://mycompany.salesforce.com)
access_token: Salesforce Access token
With a successful query, you should receive a response like this one:
Conclusion
OAuth integration with Salesforce.com offers a wide range of possibilities and can help you in meeting your business goals. It is simple, secure and easy to implement.
If you are planning to integrate your application with Salesforce.com you can check our Salesforce.com Integration Services. Get in touch with our team of expert integration developers by contacting us.