Security is the one which every customer
concern about while implementing SF application and integrating with external
system. So if we want to hide the external url, username, password while
connecting external system, then Named Credential is something that you need to
implement.
Named credential specifies the call out end
point url and authentication in one definition. It doesn’t require to add end
point URL in Remote Site settings. Named credential support two types of
authentication protocol Basic User Name/Password Authentication and OAuth 2.0
protocol.
In this blog article, we will be going to
connect two salesforce Org using Named Credential and OAuth 2.0 authentication
protocol.
Following steps, we need to perform –
Steps#1: Create connected App in
destination org
Steps#2: Create AuthProvider in source Org
Steps#3: Create named Credential in source
Org
Steps#4: Write apex in source Org to fetch
data from destination Org.
Connected
App in destination Org:
A connected app is a framework that enables
an external application to integrate with Salesforce using different
authentication protocol. Please check salesforce article about Connected App
Go to SetupàCreateàAppsà New (Connected App)
Checked Enable OAuth Settings and select
the OAuth scope. OAuth scope is basically the level access that connected App
needed for the integration.
Put callback url as dummy url which we will
change later.
Create
Auth Provider in Source Org:
Go to SetupàSecurity
Controls à Auth. Provider à New
Copy the Consumer Key/Consumer Secret of
the connected app created in destination org.
The Authorization
end point should be -
https://<base url of the destination
org>/services/oauth2/authorize
and Token
Endpoint Url should be-
https://<base url of the destination
org>/services/oauth2/token
Default
Scope is the permission scope which need to be
enter. There should be a space between two scope.
Upon clicks on save, it will generate call
back url-
Copy the call back url and paste the same
in the connected App in destination Org.
Named
Credentials in source Org:
Go to SetupàSecurity
Controls à Named Credentials à New Name Credential
Select Authentication Protocol as OAuth 2.0
and choose Authentication Provider which has been created in earlier steps. On
clicks on save the page will redirect to destination Org where you need to
login to verify the authentication.
Write
Apex to connect destination org and fetch data:
Now calling an external system is only 5-6
lines code. No user name, No password, No end point URL. You only need to
specify the named credential name which will take care the authentication.
Set httpsRequest endpoint as-
callout:<NAMED_CREDENTIAL>/<SOME_PATH>
No comments:
Post a Comment