SlideShare a Scribd company logo
Secure Salesforce - External
App Integrations
​ Astha Singhal
​ Senior Product Security Engineer
​ salesforce.com
​ @astha_singhal
​ @SecureCloudDev
​ Chris Vinecombe
​ Application Security Engineer
​ salesforce.com
​Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
​This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-
looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of
product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services.
​The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of
growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and
any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling
non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the
financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form
10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the
Investor Information section of our Web site.
​Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
​
Safe Harbor
Astha Singhal
Senior Product Security Engineer
salesforce.com
Astha Singhal
-  Working with product teams from design to implementation to help them
build secure applications for our customers.
-  Conduct penetration tests and code reviews on Salesforce applications.
-  Facilitating the security process via better security training and enabling self-
service for product teams.
-  Helping them understand security bugs and guiding through remediation of
security issues.
Chris Vinecombe
Application Security Engineer
salesforce.com
Chris Vinecombe
-  Work with vendors to ensure third party applications used by Salesforce are
secure.
-  Conduct penetration tests on Salesforce’s vendor applications.
-  Assist Salesforce business units in selecting secure vendors and products.
-  Help vendors understand security vulnerabilities and assisting with
remediation of security issues.
Building Salesforce Integrations
-  Extend Salesforce functionality with external app integrations
-  Building data flows and interactions between your external app and
Salesforce
-  Need a way to map Salesforce user identity to your external system
-  Need a way to authenticate and secure data flows between the two systems
-  Need a way to grant access to Salesforce data without breaking the
Salesforce security model or trust in the Salesforce platform
Integration methods
API / OAuth
-  External services authenticate with Salesforce via OAuth and receive access
tokens
-  Tokens must be treated with same sensitivity as a password
-  Utilize public-facing API’s to share data with Salesforce instances
-  Developers can expose custom Apex REST endpoints
Integration methods
Apex Callouts
-  Use Apex code to access external REST API’s
-  Can be used to send data out or pull data in to/from an external service
-  Actions must be initiated by a user action from within Salesforce
Integration methods
Connected App
-  Runs on the Salesforce app canvas
-  Does not have access to the Salesforce app DOM at any time
-  Authenticate via OAuth or SAML using Salesforce credentials
-  Easy way to integrate an external application into the Salesforce “skin”
-  The OAuth scope for the connected app determines the amount of access
this app would have to your Salesforce data
-  Make sure to provide least privilege to the OAuth token being created.
Integration user vs End User
Integration User
-  Creating an integration user to make callouts from the external app into
Salesforce.
-  Lets you create a least privilege integration user to perform certain
operations required by the app.
-  You don’t have to provide API access to all users.
-  Only one credential to manage on the external system.
-  You have to make sure that the Salesforce security model is not broken
when the external system accesses Salesforce data.
Integration user vs End User
End User
-  Lets your external app make requests as current logged in user with the
specified OAuth scope.
-  Lets the user select if they want to allow access or not.
-  Preserves the Salesforce security model in your external requests without
any additional measures.
-  The external app needs to make sure all end user OAuth credentials are
stored securely on the external system.
Setting up a Connected App
-  Go to Setup -> Create -> Apps -> New Connected App.
Setting up a Connected App
Advantages of Connected apps
​  No need for custom authentication logic.
​  Least privilege access control based on the external app use case.
​  Easy to revoke access for misbehaving apps.
​  Out of box functionality for standard Auth protocols.
​  Can provide access without sharing Salesforce username password with the
external app.
Credential handling
-  External app credentials (consumer key/secret) should be stored securely off
the Salesforce platform.
-  Salesforce OAuth tokens should be stored securely off the platform using the
industry best practice for your development platform
-  API tokens for the external app should be stored via Protected custom
settings inside Salesforce.
-  All credentials should be secure in transit by using HTTPS (TLS) for all
communication
Transport Security
Security Expectations of HTTP
-  None
-  Anyone on the network can eavesdrop traffic
-  Anyone on the network can modify content
-  Anyone on the network can divert traffic
Transport Security - What is TLS?
​  A user visiting a site over HTTP has no assurance that the user is interacting
with the legitimate site
​  The Transport Layer Security protocol allows for secure communication
between applications and users.
​  Uses PKI (Public Key Infrastructure) to have a Trusted Certificate Authority
(CA) vouch for the server’s identity.
​  Prevents tampering, eavesdropping, and man-in-the-middle attacks against
secure communications. Provides authentication and confidentiality.
Mutual TLS
-  Salesforce supports Mutual TLS for communications between Salesforce
and your external server.
-  This allows you to do a two-way verification, where the client and server can
confirm one another’s identity.
-  Good for server to server authentication, where the client is not prompting a
user to log in manually.
Mutual TLS
Acme.com
Salesforce Mutual TLS
-  Client certificates are uploaded and stored in the Salesforce database,
where they are used for verification.
-  You can also download the Salesforce client certificate to authenticate on
your web server, when making Apex callouts, etc.
-  Salesforce provides a mechanism to prevent falling back to the standard TLS
port.
Setting Up Mutual TLS
​  Have mutual TLS enabled for your organization.
​  Generate Certificate Signing Request (CSR) and acquire a certificate from a
Trusted CA.
Setting Up Mutual TLS
​  Upload the certificate to Security Controls | Certificate and Key Management
​  Enable “Enforce SSL/TLS Mutual Authentication” permission for the API client
user. This will force mutual TLS on port 8443 for this user.
​  This user permission can be added via a PermSet or by adding the permission
to the user profile.
​  Configure the API client to connect on port 8443 and present the client
certificate.
Setting Up Mutual TLS
Why use mutual TLS ?
-  This seems like a lot of work! Why should I do this?
-  Provides you a good way to authenticate both parties (Salesforce and
external app) when building external integrations
-  You don’t just have to rely on IP range restrictions and static API keys for
client authentication.
-  Out of the box mutual TLS implementation provides authentication and
confidentiality.
Thank you
Secure Salesforce at Dreamforce 2015
​  10 DevZone Talks and 2 Lighting Zone Talks covering all aspects of
Security on the Salesforce Platform
​  Visit our booth in the DevZone with any security questions
​  Check out the schedule and details at http://bit.ly/DF15Sec
​  Admin-related security questions?
​  Join us for coffee in the Admin Zone Security Cafe
Secure Salesforce at Dreamforce 2015
​  Hardened Apps with the Mobile SDK
​  Martin Vigo and Maxwell Feldman
​  Thursday 2:30pm in Moscone West 2008
​  Code Scanning with Checkmarx
​  Robert Sussland and Gideon Kreiner
​  Thursday 3:30pm in Moscone West 2011
​  Lightning Components Best Practices
​  Robert Sussland and Sergey Gorbaty
​  Thursday 4:45pm in Moscone West 2007
​  Common Secure Coding Mistakes
​  Rachel Black and Alejandro Raigon Munoz
​  Thursday 5:00pm in Moscone West 2006
​  Chimera: External Integration Security
​  Tim Bach and Travis Safford
​  Friday 10:00am in Moscone West 2009
Additional Resources
Salesforce mutual TLS set up
Salesforce Connected Apps documentation
Digging deeper into OAuth 2.0 on Force.com
Salesforce Trust academy
How to generate a CSR
Share Your Feedback, and Win a GoPro!
3
Earn a GoPro prize entry for
each completed survey
Tap the bell to take a
survey2Enroll in a session1
Questions?

More Related Content

What's hot (20)

PDF
Performance Tuning for Visualforce and Apex
Salesforce Developers
 
PPTX
Salesforce data model
Jean Brenda
 
PDF
Salesforce Release Management - Best Practices and Tools for Deployment
Salesforce Developers
 
PPTX
Introducing the Salesforce platform
John Stevenson
 
PPTX
Salesforce Steelbrick CPQ Overview
Harshala Shewale ☁
 
PDF
Introduction to MuleSoft
Salesforce Developers
 
PPTX
Lightning web components
Cloud Analogy
 
PPTX
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
Edureka!
 
PPTX
Batch Apex in Salesforce
David Helgerson
 
PDF
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Kai Wähner
 
PDF
Dealing with Azure Cosmos DB
Mihail Mateev
 
PDF
Introduction to the Salesforce Security Model
Salesforce Developers
 
PPTX
MuleSoft Architecture Presentation
Rupesh Sinha
 
PDF
Generically Call External Classes from Managed Packages
Salesforce Developers
 
PDF
Decluttering your Salesfroce org
Roy Gilad
 
PPTX
Salesforce Development Best Practices
Vivek Chawla
 
PPTX
Shared Security Responsibility for the Azure Cloud
Alert Logic
 
PPTX
Episode 20 - Trigger Frameworks in Salesforce
Jitendra Zaa
 
PDF
CI/CD with Azure DevOps and Azure Databricks
GoDataDriven
 
PPTX
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 
Performance Tuning for Visualforce and Apex
Salesforce Developers
 
Salesforce data model
Jean Brenda
 
Salesforce Release Management - Best Practices and Tools for Deployment
Salesforce Developers
 
Introducing the Salesforce platform
John Stevenson
 
Salesforce Steelbrick CPQ Overview
Harshala Shewale ☁
 
Introduction to MuleSoft
Salesforce Developers
 
Lightning web components
Cloud Analogy
 
What Is Salesforce CRM? | Salesforce CRM Tutorial For Beginners | Salesforce ...
Edureka!
 
Batch Apex in Salesforce
David Helgerson
 
The Heart of the Data Mesh Beats in Real-Time with Apache Kafka
Kai Wähner
 
Dealing with Azure Cosmos DB
Mihail Mateev
 
Introduction to the Salesforce Security Model
Salesforce Developers
 
MuleSoft Architecture Presentation
Rupesh Sinha
 
Generically Call External Classes from Managed Packages
Salesforce Developers
 
Decluttering your Salesfroce org
Roy Gilad
 
Salesforce Development Best Practices
Vivek Chawla
 
Shared Security Responsibility for the Azure Cloud
Alert Logic
 
Episode 20 - Trigger Frameworks in Salesforce
Jitendra Zaa
 
CI/CD with Azure DevOps and Azure Databricks
GoDataDriven
 
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 

Viewers also liked (20)

PDF
Easy REST Integrations with Lightning Components and Salesforce1
Salesforce Developers
 
PDF
SalesForce WebServices part 2
Mindfire Solutions
 
PPTX
Integrating The Cloud - How to integrate Salesforce
Roy Gilad
 
PPTX
Using Apex for REST Integration
Salesforce Developers
 
PDF
Webservices in SalesForce (part 1)
Mindfire Solutions
 
PPT
Salesforce REST API
Bohdan Dovhań
 
PPTX
Exploring the Salesforce REST API
Salesforce Developers
 
PPTX
Integrate with External Systems using Apex Callouts
Salesforce Developers
 
PPTX
Navi Mumbai Salesforce DUG meetup on integration
Rakesh Gupta
 
PDF
Authentication with OAuth and Connected Apps
Salesforce Developers
 
PDF
Secure Salesforce: Lightning Components Best Practices
Salesforce Developers
 
PDF
Secure Salesforce: Secret Storage in Your Salesforce Instance
Salesforce Developers
 
PDF
Integrating Salesforce With Business Intelligence and Data Warehouses
Salesforce Developers
 
PPTX
SFDC REST API
Bohdan Dovhań
 
PPTX
Secure Coding: Field-level Security, CRUD, and Sharing
Salesforce Developers
 
PPTX
Secure Coding: SSL, SOAP, and REST
Salesforce Developers
 
PDF
Integrations with the Force.com Platform Using Custom Apex REST Services
Salesforce Developers
 
PDF
Force.com Integration Using Web Services With .NET & PHP Apps
Salesforce Developers
 
PPTX
How to Sell More with Callpage
CallPage
 
PPTX
Using the Tooling API to Generate Apex SOAP Web Service Clients
Daniel Ballinger
 
Easy REST Integrations with Lightning Components and Salesforce1
Salesforce Developers
 
SalesForce WebServices part 2
Mindfire Solutions
 
Integrating The Cloud - How to integrate Salesforce
Roy Gilad
 
Using Apex for REST Integration
Salesforce Developers
 
Webservices in SalesForce (part 1)
Mindfire Solutions
 
Salesforce REST API
Bohdan Dovhań
 
Exploring the Salesforce REST API
Salesforce Developers
 
Integrate with External Systems using Apex Callouts
Salesforce Developers
 
Navi Mumbai Salesforce DUG meetup on integration
Rakesh Gupta
 
Authentication with OAuth and Connected Apps
Salesforce Developers
 
Secure Salesforce: Lightning Components Best Practices
Salesforce Developers
 
Secure Salesforce: Secret Storage in Your Salesforce Instance
Salesforce Developers
 
Integrating Salesforce With Business Intelligence and Data Warehouses
Salesforce Developers
 
SFDC REST API
Bohdan Dovhań
 
Secure Coding: Field-level Security, CRUD, and Sharing
Salesforce Developers
 
Secure Coding: SSL, SOAP, and REST
Salesforce Developers
 
Integrations with the Force.com Platform Using Custom Apex REST Services
Salesforce Developers
 
Force.com Integration Using Web Services With .NET & PHP Apps
Salesforce Developers
 
How to Sell More with Callpage
CallPage
 
Using the Tooling API to Generate Apex SOAP Web Service Clients
Daniel Ballinger
 
Ad

Similar to Secure Salesforce: External App Integrations (20)

PPTX
Secure Development on the Salesforce Platform - Part 3
Mark Adcock
 
PDF
What’s new in summer’15 release - Security & Compliance
Shesh Kondi
 
PDF
What’s new in summer’15 release - Security & Compliance
Shesh Kondi
 
PPTX
Introduction to lightning out df16
Mohith Shrivastava
 
PPTX
Real Time Integration with Salesforce Platform Events
Salesforce Developers
 
PPTX
Salesforce Identity Management
Jayant Jindal
 
PDF
Secure Salesforce: Hardened Apps with the Mobile SDK
Martin Vigo
 
PDF
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
Kashi Ahmed
 
PDF
Secure Salesforce: Hardened Apps with the Mobile SDK
Salesforce Developers
 
PDF
Lightning Out: Components for the Rest of the World
Salesforce Developers
 
PDF
Introducing salesforce shield - Paris Salesforce Developer Group - Oct 15
Paris Salesforce Developer Group
 
PPTX
Mobile Developer Week
Pat Patterson
 
PDF
Enterprise and Social Integration Using Force.com
Salesforce Developers
 
PPTX
[MBF2] Plate-forme Salesforce par Peter Chittum
BeMyApp
 
PDF
#DF17Recap series: Integrate apps easier with the Salesforce platform
Salesforce Developers
 
PDF
Secure Salesforce: Org Access Controls
Salesforce Developers
 
PDF
APP Academy: Build Your First App (October 13, 2014)
Salesforce Partners
 
PDF
Mobile SSO: Give App Users a Break from Typing Passwords
CA API Management
 
PPT
2. 8 things that will make your business love your developers again
EuroCloud
 
PDF
Salesforce platform session 2
Salesforce - Sweden, Denmark, Norway
 
Secure Development on the Salesforce Platform - Part 3
Mark Adcock
 
What’s new in summer’15 release - Security & Compliance
Shesh Kondi
 
What’s new in summer’15 release - Security & Compliance
Shesh Kondi
 
Introduction to lightning out df16
Mohith Shrivastava
 
Real Time Integration with Salesforce Platform Events
Salesforce Developers
 
Salesforce Identity Management
Jayant Jindal
 
Secure Salesforce: Hardened Apps with the Mobile SDK
Martin Vigo
 
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
Kashi Ahmed
 
Secure Salesforce: Hardened Apps with the Mobile SDK
Salesforce Developers
 
Lightning Out: Components for the Rest of the World
Salesforce Developers
 
Introducing salesforce shield - Paris Salesforce Developer Group - Oct 15
Paris Salesforce Developer Group
 
Mobile Developer Week
Pat Patterson
 
Enterprise and Social Integration Using Force.com
Salesforce Developers
 
[MBF2] Plate-forme Salesforce par Peter Chittum
BeMyApp
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
Salesforce Developers
 
Secure Salesforce: Org Access Controls
Salesforce Developers
 
APP Academy: Build Your First App (October 13, 2014)
Salesforce Partners
 
Mobile SSO: Give App Users a Break from Typing Passwords
CA API Management
 
2. 8 things that will make your business love your developers again
EuroCloud
 
Salesforce platform session 2
Salesforce - Sweden, Denmark, Norway
 
Ad

More from Salesforce Developers (20)

PDF
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
PDF
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
PDF
Local development with Open Source Base Components
Salesforce Developers
 
PPTX
TrailheaDX India : Developer Highlights
Salesforce Developers
 
PDF
Why developers shouldn’t miss TrailheaDX India
Salesforce Developers
 
PPTX
CodeLive: Build Lightning Web Components faster with Local Development
Salesforce Developers
 
PPTX
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
PPTX
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
PPTX
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
PDF
Live coding with LWC
Salesforce Developers
 
PDF
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
PDF
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
PDF
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
PDF
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
PDF
Migrating CPQ to Advanced Calculator and JSQCP
Salesforce Developers
 
PDF
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
PDF
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
PDF
Modern Development with Salesforce DX
Salesforce Developers
 
PDF
Get Into Lightning Flow Development
Salesforce Developers
 
PDF
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
Local development with Open Source Base Components
Salesforce Developers
 
TrailheaDX India : Developer Highlights
Salesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Salesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
Salesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Live coding with LWC
Salesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Salesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
Modern Development with Salesforce DX
Salesforce Developers
 
Get Into Lightning Flow Development
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 

Recently uploaded (20)

PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Digital Circuits, important subject in CS
contactparinay1
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 

Secure Salesforce: External App Integrations

  • 1. Secure Salesforce - External App Integrations ​ Astha Singhal ​ Senior Product Security Engineer ​ salesforce.com ​ @astha_singhal ​ @SecureCloudDev ​ Chris Vinecombe ​ Application Security Engineer ​ salesforce.com
  • 2. ​Safe harbor statement under the Private Securities Litigation Reform Act of 1995: ​This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward- looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. ​The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. ​Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. ​ Safe Harbor
  • 3. Astha Singhal Senior Product Security Engineer salesforce.com
  • 4. Astha Singhal -  Working with product teams from design to implementation to help them build secure applications for our customers. -  Conduct penetration tests and code reviews on Salesforce applications. -  Facilitating the security process via better security training and enabling self- service for product teams. -  Helping them understand security bugs and guiding through remediation of security issues.
  • 5. Chris Vinecombe Application Security Engineer salesforce.com
  • 6. Chris Vinecombe -  Work with vendors to ensure third party applications used by Salesforce are secure. -  Conduct penetration tests on Salesforce’s vendor applications. -  Assist Salesforce business units in selecting secure vendors and products. -  Help vendors understand security vulnerabilities and assisting with remediation of security issues.
  • 7. Building Salesforce Integrations -  Extend Salesforce functionality with external app integrations -  Building data flows and interactions between your external app and Salesforce -  Need a way to map Salesforce user identity to your external system -  Need a way to authenticate and secure data flows between the two systems -  Need a way to grant access to Salesforce data without breaking the Salesforce security model or trust in the Salesforce platform
  • 8. Integration methods API / OAuth -  External services authenticate with Salesforce via OAuth and receive access tokens -  Tokens must be treated with same sensitivity as a password -  Utilize public-facing API’s to share data with Salesforce instances -  Developers can expose custom Apex REST endpoints
  • 9. Integration methods Apex Callouts -  Use Apex code to access external REST API’s -  Can be used to send data out or pull data in to/from an external service -  Actions must be initiated by a user action from within Salesforce
  • 10. Integration methods Connected App -  Runs on the Salesforce app canvas -  Does not have access to the Salesforce app DOM at any time -  Authenticate via OAuth or SAML using Salesforce credentials -  Easy way to integrate an external application into the Salesforce “skin” -  The OAuth scope for the connected app determines the amount of access this app would have to your Salesforce data -  Make sure to provide least privilege to the OAuth token being created.
  • 11. Integration user vs End User Integration User -  Creating an integration user to make callouts from the external app into Salesforce. -  Lets you create a least privilege integration user to perform certain operations required by the app. -  You don’t have to provide API access to all users. -  Only one credential to manage on the external system. -  You have to make sure that the Salesforce security model is not broken when the external system accesses Salesforce data.
  • 12. Integration user vs End User End User -  Lets your external app make requests as current logged in user with the specified OAuth scope. -  Lets the user select if they want to allow access or not. -  Preserves the Salesforce security model in your external requests without any additional measures. -  The external app needs to make sure all end user OAuth credentials are stored securely on the external system.
  • 13. Setting up a Connected App -  Go to Setup -> Create -> Apps -> New Connected App.
  • 14. Setting up a Connected App
  • 15. Advantages of Connected apps ​  No need for custom authentication logic. ​  Least privilege access control based on the external app use case. ​  Easy to revoke access for misbehaving apps. ​  Out of box functionality for standard Auth protocols. ​  Can provide access without sharing Salesforce username password with the external app.
  • 16. Credential handling -  External app credentials (consumer key/secret) should be stored securely off the Salesforce platform. -  Salesforce OAuth tokens should be stored securely off the platform using the industry best practice for your development platform -  API tokens for the external app should be stored via Protected custom settings inside Salesforce. -  All credentials should be secure in transit by using HTTPS (TLS) for all communication
  • 17. Transport Security Security Expectations of HTTP -  None -  Anyone on the network can eavesdrop traffic -  Anyone on the network can modify content -  Anyone on the network can divert traffic
  • 18. Transport Security - What is TLS? ​  A user visiting a site over HTTP has no assurance that the user is interacting with the legitimate site ​  The Transport Layer Security protocol allows for secure communication between applications and users. ​  Uses PKI (Public Key Infrastructure) to have a Trusted Certificate Authority (CA) vouch for the server’s identity. ​  Prevents tampering, eavesdropping, and man-in-the-middle attacks against secure communications. Provides authentication and confidentiality.
  • 19. Mutual TLS -  Salesforce supports Mutual TLS for communications between Salesforce and your external server. -  This allows you to do a two-way verification, where the client and server can confirm one another’s identity. -  Good for server to server authentication, where the client is not prompting a user to log in manually.
  • 21. Salesforce Mutual TLS -  Client certificates are uploaded and stored in the Salesforce database, where they are used for verification. -  You can also download the Salesforce client certificate to authenticate on your web server, when making Apex callouts, etc. -  Salesforce provides a mechanism to prevent falling back to the standard TLS port.
  • 22. Setting Up Mutual TLS ​  Have mutual TLS enabled for your organization. ​  Generate Certificate Signing Request (CSR) and acquire a certificate from a Trusted CA.
  • 23. Setting Up Mutual TLS ​  Upload the certificate to Security Controls | Certificate and Key Management ​  Enable “Enforce SSL/TLS Mutual Authentication” permission for the API client user. This will force mutual TLS on port 8443 for this user. ​  This user permission can be added via a PermSet or by adding the permission to the user profile. ​  Configure the API client to connect on port 8443 and present the client certificate.
  • 25. Why use mutual TLS ? -  This seems like a lot of work! Why should I do this? -  Provides you a good way to authenticate both parties (Salesforce and external app) when building external integrations -  You don’t just have to rely on IP range restrictions and static API keys for client authentication. -  Out of the box mutual TLS implementation provides authentication and confidentiality.
  • 27. Secure Salesforce at Dreamforce 2015 ​  10 DevZone Talks and 2 Lighting Zone Talks covering all aspects of Security on the Salesforce Platform ​  Visit our booth in the DevZone with any security questions ​  Check out the schedule and details at http://bit.ly/DF15Sec ​  Admin-related security questions? ​  Join us for coffee in the Admin Zone Security Cafe
  • 28. Secure Salesforce at Dreamforce 2015 ​  Hardened Apps with the Mobile SDK ​  Martin Vigo and Maxwell Feldman ​  Thursday 2:30pm in Moscone West 2008 ​  Code Scanning with Checkmarx ​  Robert Sussland and Gideon Kreiner ​  Thursday 3:30pm in Moscone West 2011 ​  Lightning Components Best Practices ​  Robert Sussland and Sergey Gorbaty ​  Thursday 4:45pm in Moscone West 2007 ​  Common Secure Coding Mistakes ​  Rachel Black and Alejandro Raigon Munoz ​  Thursday 5:00pm in Moscone West 2006 ​  Chimera: External Integration Security ​  Tim Bach and Travis Safford ​  Friday 10:00am in Moscone West 2009
  • 29. Additional Resources Salesforce mutual TLS set up Salesforce Connected Apps documentation Digging deeper into OAuth 2.0 on Force.com Salesforce Trust academy How to generate a CSR
  • 30. Share Your Feedback, and Win a GoPro! 3 Earn a GoPro prize entry for each completed survey Tap the bell to take a survey2Enroll in a session1