CINXE.COM

Secure | Salesforce Architects

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title> Secure | Salesforce Architects</title> <!-- One Trust --> <script async type="text/javascript" src="https://a.sfdcstatic.com/digital/one-trust/core/stable/scripttemplates/otSDKStub.js" data-domain-script="8e783e8c-0ad0-475d-8fca-4a03afa0a02a" crossorigin ></script> <!-- Data Cloud Manager --> <script type="text/javascript" src="https://cdn.c360a.salesforce.com/beacon/c360a/1264deb6-4cc0-4a48-b265-ce707a286cfd/scripts/c360a.min.js" defer></script> <!-- Google Tag Manager --> <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'}); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f .parentNode .insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-MPDHG6B'); </script> <!-- End Google Tag Manager --> <link rel="apple-touch-icon" sizes="180x180" href="/1/asset/immutable/s/17304959070000000/assets/images/favicons/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/1/asset/immutable/s/17304959070000000/assets/images/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/1/asset/immutable/s/17304959070000000/assets/images/favicons/favicon-16x16.png"> <link rel="manifest" href="/1/asset/immutable/s/17304959070000000/assets/site.webmanifest" crossorigin="use-credentials"> <link rel="mask-icon" href="/1/asset/immutable/s/17304959070000000/assets/images/favicons/safari-pinned-tab.svg" color="#5bbad5"> <link rel="shortcut icon" href="/1/asset/immutable/s/17304959070000000/assets/images/favicons/favicon.ico"> <link rel="canonical" href="https://architect.salesforce.com/well-architected/trusted/secure"/> <meta name="google-site-verification" content="9nBLHedRs97kceoTtOMsUGrVIhNfsJHbExzaKVARgAM"> <meta name="google-site-verification" content="GiaTqJgaiTF7nPD6gVxphfKcgFK9leNVs5Wp4mpqoGc"/> <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-config" content="/assets/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta property="og:url" content="https://architect.salesforce.com/well-architected/trusted/secure"> <meta property="og:type" content="website"> <meta name="author" content="Salesforce Architects"> <meta name="title" property="og:title" content="Salesforce Architects | Secure"> <meta name="description" property="og:description" content="Build Salesforce solutions that protect users and data."> <meta name="image" property="og:image" content="https://architect.salesforce.com/assets/images/cards/secure.png"> <meta property="og:image:url" content="https://architect.salesforce.com/assets/images/cards/secure.png"> <meta name="twitter:image" content="https://architect.salesforce.com/assets/images/cards/secure.png"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@SalesforceArchs"> </script> <link rel="preload" href="/1/asset/immutable/s/17304959070000000/assets/css/styles.css" as="style"> <link rel="stylesheet" href="/1/asset/immutable/s/17304959070000000/assets/css/styles.css"> <link rel="preload" href="/1/asset/immutable/s/17304959070000000/assets/dx/css/index.css" as="style"> <link rel="stylesheet" href="/1/asset/immutable/s/17304959070000000/assets/dx/css/index.css"> <style> .preview { width: 100%; display: flex; align-items: center; justify-content: center; background-image: linear-gradient(45deg,rgba(0,0,0,.025) 25%,transparent 0,transparent 50%,rgba(0,0,0,.025) 0,rgba(0,0,0,.025) 75%,transparent 0,transparent); background-size: 64px 64px; color: #102c62; background-color: rgb(234, 245, 254); padding: 8px; box-sizing: border-box; } .preview a:active, .preview a:hover, .preview a:link, .preview a:visited { color: #0071D1; } .preview > span { padding: 0 6px; } </style> </head> <body> <header> <tds-header config="{&quot;logo&quot;:{&quot;assistiveText&quot;:&quot;Salesforce Architects logo&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/&quot;},&quot;url&quot;:&quot;/assets/images/architects_logo_vertical.svg&quot;},&quot;logoMobile&quot;:{&quot;assistiveText&quot;:&quot;Salesforce Architects logo&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/&quot;},&quot;url&quot;:&quot;/assets/images/architects_logo_vertical.svg&quot;},&quot;header&quot;:[{&quot;label&quot;:&quot;Home&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/&quot;,&quot;target&quot;:null},&quot;active&quot;:true},{&quot;label&quot;:&quot;Well-Architected&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Build trusted, easy and adaptable solutions&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Well-Architected Overview&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/well-architected/overview&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/overview-icon.svg&quot;,&quot;description&quot;:&quot;Build healthy solutions&quot;},{&quot;label&quot;:&quot;Trusted&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/well-architected/trusted/overview&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/trusted-icon.svg&quot;,&quot;description&quot;:&quot;Protect your business and stakeholders&quot;},{&quot;label&quot;:&quot;Easy&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/well-architected/easy/overview&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/easy-icon.svg&quot;,&quot;description&quot;:&quot;Deliver value fast&quot;},{&quot;label&quot;:&quot;Adaptable&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/well-architected/adaptable/overview&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/adaptable-icon.svg&quot;,&quot;description&quot;:&quot;Evolve with your business&quot;}]},{&quot;label&quot;:&quot;Well-Architected Tools&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Pattern &amp; Anti-Pattern Explorer&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/well-architected/explorer&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/roadmap-explorer.svg&quot;,&quot;description&quot;:&quot;Create lists of patterns or anti-patterns&quot;}]}]},{&quot;label&quot;:&quot;Diagrams&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Create and find artifacts for your solutions&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Salesforce Diagrams Overview&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/diagrams/#framework&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/salesforce-diagram-framework.svg&quot;,&quot;description&quot;:&quot;Learn how to create effective diagrams&quot;},{&quot;label&quot;:&quot;Reference Architecture Gallery&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/diagrams/#reference-architecture-gallery&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/template-gallery.svg&quot;,&quot;description&quot;:&quot;Pre-built artifacts to get started fast&quot;},{&quot;label&quot;:&quot;Data Model Gallery&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/diagrams/#data-model-gallery&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/design-patterns.svg&quot;,&quot;description&quot;:&quot;Product entity relationship diagrams&quot;}]}]},{&quot;label&quot;:&quot;Decision Guides&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Choose the right Salesforce tools&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Asynchronous Processing&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides/async-processing&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/Asynchronous-Processing-Decision-Guide.svg&quot;,&quot;description&quot;:&quot;Architect&#39;s Guide to Asynchronous Processing with Salesforce&quot;},{&quot;label&quot;:&quot;Event-Driven Architecture&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides/event-driven&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/event-driven-architecture.svg&quot;,&quot;description&quot;:&quot;Architect&#39;s Guide to Event-Driven Architecture with Salesforce&quot;},{&quot;label&quot;:&quot;Data Integration&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides/data-integration&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/data-integration.svg&quot;,&quot;description&quot;:&quot;Architect&#39;s Guide to Data Integration with Salesforce&quot;},{&quot;label&quot;:&quot;Record-Triggered Automation&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides/trigger-automation&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/record-triggered-automation.svg&quot;,&quot;description&quot;:&quot;Architect&#39;s Guide to Record-Triggered Automation on Salesforce&quot;},{&quot;label&quot;:&quot;Building Forms&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides/build-forms&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/building-forms.svg&quot;,&quot;description&quot;:&quot;Architect&#39;s Guide to Building Forms on Salesforce&quot;},{&quot;label&quot;:&quot;See All Guides&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/decision-guides&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/decision-guides.svg&quot;}]}]},{&quot;label&quot;:&quot;Fundamentals&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Know the basics of Salesforce architecture&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;The Salesforce Platform - Transformed for Tomorrow&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/fundamentals/platform-transformation&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/next-gen-salesforce-platform.svg&quot;,&quot;description&quot;:&quot;Learn about the latest Salesforce Platform innovations&quot;},{&quot;label&quot;:&quot;Architecture Basics&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/fundamentals/architecture-basics&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/architecture-basics.svg&quot;,&quot;description&quot;:&quot;Learn basics of architecting with Salesforce&quot;},{&quot;label&quot;:&quot;Platform Multitenant Architecture&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/fundamentals/platform-multitenant-architecture&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/platform-mulitenant-architecture.svg&quot;,&quot;description&quot;:&quot;Learn about the architecture of Salesforce Customer 360 Platform&quot;},{&quot;label&quot;:&quot;Platform Sharing Architecture&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/fundamentals/platform-sharing-architecture&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/sharing-guide.svg&quot;,&quot;description&quot;:&quot;Learn how to provide secure data access&quot;},{&quot;label&quot;:&quot;See All Fundamentals&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/fundamentals&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/decision-guides.svg&quot;}]}]},{&quot;label&quot;:&quot;Resources&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Project Resource Gallery&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Artificial Intelligence&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/resources/project-resource-gallery/ai&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/template-gallery.svg&quot;,&quot;description&quot;:&quot;Get AI projects started fast&quot;}]},{&quot;label&quot;:&quot;Releases&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Release Overviews&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/releases&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/releases.svg&quot;,&quot;description&quot;:&quot;Explore what&#39;s changed across releases&quot;}]},{&quot;label&quot;:&quot;Roadmap Explorer&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Roadmap Explorer&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/roadmaps/roadmap-explorer&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/nav/roadmap-explorer.svg&quot;,&quot;description&quot;:&quot;Plan in alignment with Salesforce innovation&quot;}]}]},{&quot;label&quot;:&quot;Connect&quot;,&quot;sections&quot;:[{&quot;label&quot;:&quot;Connect with Salesforce Architects&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Our Blog&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;/connect/blog&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/images/architects_logo_vertical.svg&quot;,&quot;description&quot;:&quot;A tech publication for architects&quot;},{&quot;label&quot;:&quot;Our Youtube Channel&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;https://www.youtube.com/c/SalesforceArchitects&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},&quot;iconUrl&quot;:&quot;/assets/images/nav-youtube.png&quot;,&quot;description&quot;:&quot;Videos to empower and inspire architects&quot;},{&quot;label&quot;:&quot;Trailblazer Community&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;https://trailblazer.salesforce.com/about&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},&quot;iconUrl&quot;:&quot;/assets/images/nav-community-groups.png&quot;,&quot;description&quot;:&quot;Get help, answers, and inspiration from peers&quot;}]},{&quot;label&quot;:&quot;Stay up to date with our feeds&quot;,&quot;items&quot;:[{&quot;label&quot;:&quot;Our Website Feed&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;https://architect.salesforce.com/feed.xml&quot;,&quot;target&quot;:null},&quot;iconUrl&quot;:&quot;/assets/icons/rss.png&quot;,&quot;description&quot;:&quot;Get new diagrams and content updates&quot;},{&quot;label&quot;:&quot;Our Blog Feed&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;https://medium.com/feed/salesforce-architects&quot;,&quot;target&quot;:&quot;noopener&quot;},&quot;iconUrl&quot;:&quot;/assets/icons/rss-black.png&quot;,&quot;description&quot;:&quot;Our latest blogs delivered&quot;},{&quot;label&quot;:&quot;Our Youtube Channel Feed&quot;,&quot;link&quot;:{&quot;href&quot;:&quot;https://www.youtube.com/feeds/videos.xml?channel_id=UC9OaSDoddWJ7Zwu83nANsCA&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},&quot;iconUrl&quot;:&quot;/assets/icons/rss-red.png&quot;,&quot;description&quot;:&quot;Subscribe for video updates&quot;}]}]}],&quot;footer&quot;:{&quot;columns&quot;:[{&quot;heading&quot;:&quot;Well-Architected&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/well-architected/overview&quot;,&quot;label&quot;:&quot;Overview&quot;},{&quot;href&quot;:&quot;/well-architected/trusted/overview&quot;,&quot;label&quot;:&quot;Trusted&quot;},{&quot;href&quot;:&quot;/well-architected/easy/overview&quot;,&quot;label&quot;:&quot;Easy&quot;},{&quot;href&quot;:&quot;/well-architected/adaptable/overview&quot;,&quot;label&quot;:&quot;Adaptable&quot;},{&quot;href&quot;:&quot;/well-architected/explorer&quot;,&quot;label&quot;:&quot;Pattern &amp; Anti-Pattern Explorer&quot;}]},{&quot;heading&quot;:&quot;Diagrams&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/diagrams/#framework&quot;,&quot;label&quot;:&quot;Salesforce Diagrams Overview&quot;},{&quot;href&quot;:&quot;/diagrams/#reference-architecture-gallery&quot;,&quot;label&quot;:&quot;Reference Architecture Gallery&quot;},{&quot;href&quot;:&quot;/diagrams/#data-model-gallery&quot;,&quot;label&quot;:&quot;Data Model Gallery&quot;}]},{&quot;heading&quot;:&quot;Decision Guides&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/decision-guides/event-driven&quot;,&quot;label&quot;:&quot;Event-Driven Architectures&quot;},{&quot;href&quot;:&quot;/decision-guides/data-integration&quot;,&quot;label&quot;:&quot;Data Integration&quot;},{&quot;href&quot;:&quot;/decision-guides/trigger-automation&quot;,&quot;label&quot;:&quot;Record-Triggered Automation&quot;},{&quot;href&quot;:&quot;/decision-guides/build-forms&quot;,&quot;label&quot;:&quot;Building Forms&quot;},{&quot;href&quot;:&quot;/decision-guides&quot;,&quot;label&quot;:&quot;See All Guides&quot;}]},{&quot;heading&quot;:&quot;Fundamentals&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/fundamentals/platform-transformation&quot;,&quot;label&quot;:&quot;Platform Transformation&quot;},{&quot;href&quot;:&quot;/fundamentals/architecture-basics&quot;,&quot;label&quot;:&quot;Architecture Basics&quot;},{&quot;href&quot;:&quot;/fundamentals/platform-multitenant-architecture&quot;,&quot;label&quot;:&quot;Platform Multitenant Architecture&quot;},{&quot;href&quot;:&quot;/fundamentals/platform-sharing-architecture&quot;,&quot;label&quot;:&quot;Plaform Sharing Architecture&quot;}]},{&quot;heading&quot;:&quot;Resources&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/resources/project-resource-gallery/ai&quot;,&quot;label&quot;:&quot;Project Resource Gallery&quot;},{&quot;href&quot;:&quot;/roadmaps/roadmap-explorer&quot;,&quot;label&quot;:&quot;Roadmap Explorer&quot;},{&quot;href&quot;:&quot;/releases&quot;,&quot;label&quot;:&quot;Release Overviews&quot;}]},{&quot;heading&quot;:&quot;Connect&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/connect/blog&quot;,&quot;label&quot;:&quot;Our Blog&quot;},{&quot;href&quot;:&quot;https://www.youtube.com/c/SalesforceArchitects&quot;,&quot;label&quot;:&quot;Our Youtube Channel&quot;},{&quot;href&quot;:&quot;https://trailblazer.salesforce.com/about&quot;,&quot;label&quot;:&quot;Trailblazer Community&quot;}]}],&quot;global&quot;:{&quot;logo&quot;:{&quot;assistiveText&quot;:&quot;Salesforce Logo&quot;,&quot;url&quot;:&quot;/assets/images/salesforce-corp-logo.jpg&quot;},&quot;copyrightTitle&quot;:&quot;© Copyright 2024 Salesforce, Inc. &quot;,&quot;copyrightEnd&quot;:&quot; Various trademarks held by their respective owners. Salesforce, Inc. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/&quot;,&quot;label&quot;:&quot;Legal&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/&quot;,&quot;label&quot;:&quot;Terms of Service&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/privacy/&quot;,&quot;label&quot;:&quot;Privacy Information&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/disclosure/&quot;,&quot;label&quot;:&quot;Responsible Disclosure&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://trust.salesforce.com/&quot;,&quot;label&quot;:&quot;Trust&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/contact-us/?d=cta-glob-footer-11&quot;,&quot;label&quot;:&quot;Contact&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/form/other/privacy-request/&quot;,&quot;label&quot;:&quot;Your Privacy Choices&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;,&quot;icon&quot;:&quot;/assets/images/privacyicon.png&quot;}]}}}"> <tds-search slot="search"></tds-search> </tds-header> </header> <div class="guide"> <tm-page-header-a title="Secure" jptranslation="https://sf-archs.cdn.salesforce-experience.com/cms/delivery/media/MC57GCHQQUX5BL3PRFIFHFRLUJHA?version=2.1&amp;channelId=0apHs000000y0QG&amp;oid=00DHs000003Wrxy" url="/well-architected/trusted/secure"></tm-page-header-a> <tm-content reading-time="32" last-updated="July 2024" image-hash="plcq"> <blockquote> <p>Read about our update schedules <a href="../contributors">here</a>.</p> </blockquote> <h2 id="introduction">Introduction</h2> <p>A secure system protects an organization’s stakeholders and data. Secure architectures help ensure that users accessing your system are who they say they are, allow access to only necessary data, and protect data within the system from being compromised.</p> <p>Salesforce is committed to fostering and maintaining the trust of our customers — and the security of our platform is an essential part of that commitment. Maintaining the privacy and security of customer data is a cornerstone of the Salesforce Platform. You can explore real-time information about Salesforce system performance and security at <a href="https://trust.salesforce.com/">Salesforce Trust</a>.</p> <p>Protecting your org and customer data is the foundation of building secure Salesforce solutions. As an architect building on Salesforce, you are responsible for deciding how to best use the built-in security features of Salesforce in your solutions, based on the specific requirements of your business. You’ll need to consider a variety of factors, including geographic distribution, industry, company operating procedures, and the type of customer data involved.</p> <p>You can make your solutions more secure by focusing on three areas: organizational security, session security, and data security.</p> <h2 id="organizational-security">Organizational Security</h2> <p>Organizational security is about protecting your system against unauthorized access. Strong organizational security involves ensuring only validated, authorized users can access a system — and that validated users can only access necessary features and data.</p> <p>Signs that you have problematic organizational security include:</p> <ul> <li>Ad hoc processes to activate or deactivate users</li> <li>Unclear steps to update authorization for individual users when they change roles or system roles change</li> <li>Relying on individuals with institutional knowledge for correct user security assignments</li> </ul> <p>You can build better organizational security controls for your Salesforce orgs by focusing on authentication and authorization.</p> <h3 id="authentication">Authentication</h3> <p>Authentication is a fundamental concept in security and access management. Authentication is the process of verifying the identity of a user who wants to access your system. This could be a human user, like an employee or customer, or an automated user like an external system or integration.</p> <p>Different kinds of users require different authentication schemes. You will need to configure multiple kinds of authentication security to adequately validate user access across different entry points for your Salesforce org.</p> <p>Consider the following to create secure authentication flows in Salesforce:</p> <ul> <li><strong>Create Salesforce users based on individuals, not personas</strong>. Salesforce provides built-in auditing features that are most effective when there is a 1:1 mapping between Salesforce user accounts and entities accessing Salesforce with a user account. Shared user accounts decrease the usefulness of built-in auditing, create additional security risks, increase the potential damage stemming from account breaches, and hinder your ability to create effective authorization schemes. This includes user accounts for integration users.</li> <li><strong>Secure UI-based access scenarios</strong>. Most human users require some kind of UI-based access (often called login access) for a Salesforce org. Salesforce provides several layers of protection for these login scenarios, including: <ul> <li><strong>Password policies.</strong> Usernames and passwords are a primary target for cybercriminals seeking to gain unauthorized access to applications. Configuring <a href="https://help.salesforce.com/s/articleView?id=sf.admin_password.htm&#x26;type=5">password policies</a> is a baseline step to protecting login access. This step alone is not sufficient, however, as password policies can be overridden on a per-user basis within Salesforce.</li> <li><strong>Multi-factor authentication (MFA).</strong> Salesforce <a href="https://help.salesforce.com/s/articleView?id=000352937&#x26;type=1">requires MFA</a> for all UI-based user logins. In MFA scenarios, after successfully entering a username and password, users must also provide an additional type of identification, or factor, to verify their identity. This additional factor is usually in a physical format, like a mobile device, security key, or biometric marker. MFA is an essential defense against credential leaks and brute-force attacks.</li> <li><strong>Single-sign on (SSO).</strong> In SSO scenarios, users only use one set of credentials across an organization’s applications. Access to systems is provisioned and managed from a central location, which improves security. Salesforce can act as a service provider or an identity provider in <a href="https://help.salesforce.com/s/articleView?id=sf.sso_about.htm&#x26;type=5">SSO scenarios</a>. Be sure to allow some or all admins to log in directly to Salesforce so they can address outages or issues with your SSO implementation.</li> <li><strong>Post-login steps.</strong> For some use cases, you might want your users to complete additional steps before they’re allowed to access your system. In such cases, you can use custom login flows to route users through an additional set of process steps before they are granted access to your system. Examples include: <ul> <li>Accepting terms and conditions</li> <li>Working through <a href="https://help.salesforce.com/s/articleView?id=sf.external_identity_passwordless_login_use_cases.htm&#x26;type=5">login discovery and passwordless login scenarios</a></li> <li>Limiting the number of simultaneous Salesforce sessions per user to reduce the likelihood of session-based attacks (see <a href="/../well-architected/trusted/secure#Session_Security">session security</a>).</li> <li>Connecting to geofencing services</li> </ul> </li> </ul> </li> <li><strong>Secure API-based access scenarios</strong>. Any user can request API-based access for a Salesforce org. Salesforce provides several layers of protection for API-based scenarios, including: <ul> <li><strong>API Access Control.</strong> Without <a href="https://help.salesforce.com/s/articleView?id=sf.security_api_access_control_about.htm&#x26;type=5">API access control</a>, anyone with a valid set of credentials can leverage any app to connect with your org — even if the connected app is not deployed in the org. Data access controls will still be enforced, but users could access information in uncontrolled ways. For example, someone could implement an app to download large volumes of data — or worse, upload a set of corrupted information — without a system administrator ever approving an app.</li> <li><strong>API Only permissions.</strong> You can configure API Only user permissions in Salesforce. Assign this as part of a permission set to any automated or <a href="https://help.salesforce.com/s/articleView?language=en_US&#x26;id=sf.integration_user.htm">integration user</a> personas to block UI-based access entirely.</li> <li><strong>Certificates and keys.</strong> <a href="https://help.salesforce.com/s/articleView?id=sf.security_keys_about.htm&#x26;type=5">Certificates and keys</a> enable Salesforce to validate that requests are actually coming from the business or company authorized to access a particular org. You will need to configure certificates and keys if you want to use <a href="https://help.salesforce.com/s/articleView?id=sf.sso_about.htm&#x26;type=5">SSO with Salesforce</a>.</li> <li><strong>Connected apps.</strong> Configuring <a href="https://help.salesforce.com/s/articleView?id=sf.connected_app_overview.htm&#x26;type=5">connected apps</a> in Salesforce enables you to control external system access to Salesforce, including required authentication protocols, authorization scope, and session behavior in a single definition.</li> <li><strong>Named credentials.</strong> <a href="https://help.salesforce.com/s/articleView?id=sf.named_credentials_define.htm&#x26;type=5">Named credentials</a> enable you to control external access points and authentication protocols in a single definition within Salesforce. You can use them to securely define and manage authentication for callouts from Apex, external services, and Salesforce Connect data sources.</li> </ul> </li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Organizational_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) authentication architecture looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about authentication tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="authorization">Authorization</h3> <p>Authorization is the process of determining the features, functionality, and data a user can access once they’ve been <a href="/../well-architected/trusted/secure#Authentication">authenticated</a>. It also involves determining what a user can do with the resources they can access.</p> <p>Restricting who can authenticate into your org is a good first step. But if you don’t pair strong authentication with equally strong authorization, you haven’t actually secured your Salesforce org and your business. Without adequate authorization controls, a user in your system could create, edit, and delete records or access system functionality in ways that are harmful to your business and your stakeholders. Inadequate authorization control can also make systems harder to use. Controlling what users can do within the system creates higher levels of trust by protecting your system and your users.</p> <p>Consider the following to build secure authorization schemes for Salesforce:</p> <ul> <li><strong>Follow the principle of least privilege</strong>. The principle of least privilege (PoLP) is an approach to security in which users are assigned the minimal permissions necessary to carry out their work. To follow this principle, structure your permission sets to be granular and modular. This will enable you to create sophisticated access controls with permission set groups and to precisely manage permissions, which can be <a href="https://help.salesforce.com/s/articleView?id=sf.perm_set_groups_muting.htm&#x26;type=5">muted</a>, <a href="https://help.salesforce.com/s/articleView?id=release-notes.rn_forcecom_permissions_assn_expiration.htm&#x26;type=5&#x26;release=238">set to expire</a>, and more. Orient the <a href="/../well-architected/adaptable/composable#Functional_Units">functional units</a> of your system to business capabilities to define granular permissions and effective permission set groups. Remember that permissions apply to <em>metadata</em> access in Salesforce. For details about configuring PoLP for Salesforce <em>data</em> access, see <a href="/../well-architected/trusted/secure#Sharing_and_Visibility">Sharing and Visibility</a>.</li> <li><strong>Think about what users can access in terms of personas, not individuals</strong>. Thinking of authorization (or security in general) in terms of individual users will not set your system up to scale and evolve. A better approach is to design for and manage <em>personas</em> that represent groups of users. It’s important to recognize that Salesforce solutions architected to be secure use <em>individuals</em> for <em>authentication</em>, but <em>personas</em> for <em>authorization</em>. As you build your security model, specify the security configuration appropriate to each security persona. Determining access (and privileges) based on personas gives you the ability to control access at a granular level, and reduces the amount of refactoring involved in maintaining your system over time. Include the security personas you define in your <a href="/../well-architected/easy/intentional#Readability">design standards and documentation</a>.</li> <li><strong>Use permission sets and permission set groups to control metadata access for users</strong>. Use permission sets and permission set groups to control what metadata users can access and what they can do with that metadata. (To learn more about Salesforce metadata, see <a href="/../fundamentals/architecture-basics#Metadata_Versus_Data">Metadata versus Data</a>) Configure app assignments, feature license activations, and managed package access as well as system permissions, <a href="https://developer.salesforce.com/docs/atlas.en-us.214.0.lightning.meta/lightning/apex_crud_fls.htm">CRUD</a> access, and field-level access via permission sets and permission set groups. Include this access in your design <a href="/../well-architected/easy/intentional#Readability">design standards and documentation</a>.</li> <li><strong>Use OWDs and sharing to control data access for users</strong>. Because <a href="/../fundamentals/architecture-basics#Metadata_Versus_Data">data and metadata</a> are distinct entities in Salesforce, access controls for data and metadata are also distinct. Use organization-wide defaults (OWDs) and built-in sharing tools to configure access for Salesforce data (individual records, files, and docs). For more details, see <a href="/../well-architected/trusted/secure#Data_Security">Data Security</a>.</li> <li><strong>Use OAuth scopes to control access for connected apps</strong>. When you configure a connected app, you can determine what <a href="https://help.salesforce.com/s/articleView?id=remoteaccess_oauth_tokens_scopes.htm&#x26;type=5&#x26;language=en_US">scope</a>, or access permissions, users of the connected app should have to resources in Salesforce. For more about managing OAuth tokens, see <a href="/../well-architected/trusted/secure#Session_Management">Session Management</a>.</li> <li><strong>Create one Salesforce user for every integration</strong>. To adhere to the principle of least privilege, create a separate Salesforce <a href="https://help.salesforce.com/s/articleView?id=sf.integration_user.htm">integration user</a> for each integration, assigning them to a specific subset of data. This approach provides better control over operations, traceability of transactions, and minimizes the impact of any potential security breaches.</li> <li><strong>Minimize use of profiles and migrate any access controls out of profiles</strong>. Profiles provide the ability to limit access to <a href="https://help.salesforce.com/s/articleView?id=sf.security_networkaccess.htm&#x26;type=5">login IP ranges</a>, <a href="https://help.salesforce.com/s/articleView?id=sf.login_hours.htm&#x26;type=5">login hours</a>, and specific features tied to the legacy Salesforce Classic user interface (specifically default record types and page layout assignments). Any functionality not directly tied to these features should be migrated to equivalent functionality in <a href="https://help.salesforce.com/s/articleView?id=sf.perm_set_groups_create_with_perm_sets.htm">permission sets and permission set groups</a>. Functionality in your profiles tied to Salesforce Classic UI features should be targeted for remediation.</li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Organizational_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) authorization looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about authorization tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="organizational-security-patterns-and-anti-patterns">Organizational Security Patterns and Anti-Patterns</h3> <p>The following table shows a selection of patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.</p> <p>✨ Discover more patterns for organizational security in the <a href="/../well-architected/explorer?Trusted=Organizational+Security">Pattern &#x26; Anti-Pattern Explorer</a>.</p> <table> <colgroup> <col span="1" style="width: 10%;"> <col span="1" style="width: 45%;"> <col span="1" style="width: 45%;"> </colgroup> <tbody> <tr> <th scope="colgroup"></th> <th scope="colgroup">Patterns</th> <th scope="colgroup">Anti-Patterns</th> </tr> <tr> <td rowspan="3"><b>Authentication</b></td> <td><b>In your design standards and documentation:</b> <br> - Approved security personas are clearly defined and listed <br> - Mapping between security personas and allowed authentication schemes (UI, API) exist in a security matrix</td> <td>If design standards and documentation exist, they: <br> - Do not include security personas <br> - Do not include a security matrix with clear mappings for security personas and allowed authentication schemes</td> </tr> <tr> <td><b>In your org:</b> <br> - Login configurations align to the <a href="https://security.salesforce.com/mfa-requirement-check">Salesforce MFA Check</a> <br> - The relationship between users and entities logging into Salesforce is 1:1 (no shared users) <br> - <a href="https://help.salesforce.com/s/articleView?language=en_US&#x26;type=5&#x26;id=sf.security_api_access_control_about.htm">API Access Control</a> prevents users from authenticating via an unauthorized connected app <br> - If SSO is enabled, approved admin users have direct login access</td> <td><b>In your org:</b> <br> - Login configurations do not align to the <a href="https://security.salesforce.com/mfa-requirement-check">Salesforce MFA Check</a> <br> - The relationship between users and entities logging into Salesforce is not 1:1 (there are shared user accounts) <br> - If users access Salesforce from behind a firewall, the firewall uses hard-coded IP addresses to secure communications to/from Salesforce <br> - <a href="https://help.salesforce.com/s/articleView?language=en_US&#x26;type=5&#x26;id=sf.security_api_access_control_about.htm">API Access Control</a> is not enabled <br> - If SSO is enabled, no approved admin users have direct login access</td> </tr> <tr> <td><b>In LWC, Apex, Aura:</b> <br> - Methods that execute authentication use named credentials to handle username/password flows <br> - No usernames or passwords appear in code in readable formats (no hard-coded values or strings) <br> - If custom login flows exist, all related custom code uses appropriate <code>SessionManagement</code> methods</td> <td><b>In LWC, Apex, Aura:</b> <br> - Authentication is handled ad hoc <br> - Usernames and passwords appear in code</td> </tr> <tr> <td rowspan="3"><b>Authorization</b></td> <td><b>In your design standards and documentation:</b> <br> - Every user and system with access to Salesforce maps to one or more personas in a security matrix <br> - The security matrix clearly lists metadata permissions and assigned user personas <br> - Use cases for granting elevated privileges are clearly listed, including: <br> -- Modify All Data permissions <br> -- View All Data permissions </td> <td>If design standards and documentation exist, they: <br> - Do not include a security matrix <br> - Do not clearly list permissions <br> - Do not clearly list use cases for granting elevated privileges</td> </tr> <tr> <td><b>In your org:</b> <br> - Permission sets and permission set groups are used to control access to metadata <br> - Permission sets and permission set groups align to business capabilities <br> - Permissions assigned to users follow security matrix definitions <br> - Profiles are used minimally and only to control login IP ranges and login hours <br> - A unique API only integration user is configured for every integration</td> <td><b>In your org:</b> <br> - Permission set groups are not configured to allow for access based on business capabilities <br> - Permission sets are configured ad hoc <br> - Permission sets are redundant or are heavily duplicated; it is difficult to understand clear functional logic and differences between sets <br> - Permissions assigned to users do not follow security matrix definitions <br> - Profiles contain access controls for metadata <br> - API only users are not configured or are shared across more than one integration</td> </tr> <tr> <td><b>In Apex:</b> <br> - Database operations perform field- and object-level access checks appropriately, including: <br> -- DML and Database DML statements declare <a href="https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_enforce_usermode.htm">user or system mode</a> for data operations AND/OR <br> -- DML and Database DML statements use <code>stripInaccessible</code> methods before data operations <br> -- SOQL and SOSL statements use <code>WITH USER_MODE</code> and <code>WITH SYSTEM_MODE</code> keywords AND/OR <br> -- <code>stripInaccessible</code> methods are used to filter query and subquery results <br> -- sObject describe result methods (i.e. <code>isAccessible</code>, <code>isCreateable</code>, <code>isUpdateable</code>, and/or <code>isDeletable</code>) are used sparingly</td> <td><b>In Apex:</b> <br> - DML, Database Class methods, SOQL and SOSL run in default system mode <br> - Database operations do not perform access checks appropriately, including: <br> -- DML or Database Class methods exclusively use <code>isAccessible</code>, <code>isCreateable</code>, <code>isUpdateable</code>, and/or <code>isDeletable</code> checks for sObject and field-level access <br> -- SOQL queries exclusively use <code>WITH SECURITY_ENFORCED</code> keywords for access restrictions</td> </tr> </tbody> </table> <h2 id="session-security">Session Security</h2> <p>A session is the series of requests and responses associated with a user over a period of time. A session is initiated when a user successfully authenticates into Salesforce. <a href="https://help.salesforce.com/s/articleView?language=en_US&#x26;type=5&#x26;id=sf.security_overview_sessions.htm">Session security</a> is the practice of configuring your system in a way that prevents unauthorized parties from accessing your system or data by interfering with or hijacking sessions.</p> <p>Since all user activity in your system takes place in the context of a session, it is critical to account for the ways sessions can begin, what can take place during a session, and what devices users will be (and should be) using, as well as how to see and respond to suspicious or anomalous session behaviors.</p> <p>You can build session security in Salesforce by focusing on three keys: session management, device access, and threat detection and response.</p> <h3 id="session-management">Session Management</h3> <p>Sessions, which are initiated when a user successfully authenticates and gains access to Salesforce, enable the platform to associate specific requests and responses with a particular user.</p> <p>HTTPS is the protocol that enables communication between a front-end client and a server. In this context, the server is the Salesforce Platform. Clients can include browsers, mobile applications, local applications, and so on. HTTPS is a stateless protocol, which means that every communication is discrete and unrelated to any previous or future communications.</p> <p>This stateless approach helps to speed up network communications and eliminates errors caused by broken links between packets. However, web apps still need a way to keep track of each user’s identity and other related information across multiple request and response interactions. Like most other web applications, Salesforce uses sessions and <a href="https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_tokens_scopes.htm&#x26;type=5">tokens</a> to address this.</p> <ul> <li><strong>Sessions</strong> enable Salesforce to associate requests and responses with users. After a user is authenticated, the platform sends a session ID back to the client app. The client app includes this ID with any user requests (such as navigating, searching, and submitting data).</li> <li><strong>Tokens</strong> enable users and connected applications to verify their identity once and use a unique access token from then on. Tokens have a limited lifespan and only provide access to specific resources (see <a href="/../well-architected/trusted/secure#Authorization">Authorization</a> for more about configuring access levels). Tokens allow access to authorized resources without requiring users to login.</li> </ul> <p>If sessions and tokens aren’t secured properly, bad actors can potentially interfere with them and impersonate users or execute malicious code in your system.</p> <p>Consider the following to build secure session management for Salesforce:</p> <ul> <li><strong>Understand how Salesforce classifies session types</strong>. Identify and map approved <a href="https://help.salesforce.com/s/articleView?id=sf.security_session_types.htm&#x26;type=5">session types</a> to security user personas, and record these in your documentation.</li> <li><strong>Control how sessions can originate and where session traffic can go</strong>. Once you’ve identified the kinds of sessions various user personas are allowed to initiate, configure controls to block sessions that originate from unapproved sources or contexts. Salesforce provides several ways to control session origins and traffic, including: <ul> <li>Built-in session protection. Salesforce automatically enables org-wide protections for session-based malicious activity, including cross-site scripting, cross-site request forgery, <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing">content sniffing</a>, <a href="https://owasp.org/www-community/attacks/Clickjacking">clickjacking</a> and more. These protections should never be disabled (and some cannot be disabled).</li> <li>Domains and IP ranges. All Salesforce orgs have <a href="https://help.salesforce.com/s/articleView?id=sf.domain_name_overview.htm&#x26;type=5">My Domain</a> enabled by default, which creates a company-specific subdomain for Salesforce access. You can customize or change the name associated with an org through My Domain. Further, Salesforce supports additional <a href="https://help.salesforce.com/s/articleView?id=sf.domain_mgmt_overview.htm&#x26;type=5">domain configurations</a> for Experience Cloud sites and other application pages. Note: If your users need to access Salesforce from behind a company firewall, add the <a href="https://help.salesforce.com/s/articleView?id=sf.setup_domains.htm&#x26;type=5">required domains</a> to your firewall allowlists. You can set up <a href="https://developer.salesforce.com/docs/atlas.en-us.securityImplGuide.meta/securityImplGuide/users_profiles_epui_login_ip_ranges_edit.htm">login IP ranges</a> and <a href="https://help.salesforce.com/s/articleView?id=sf.security_networkaccess.htm">trusted IP ranges</a> to control inbound login and session requests to Salesforce.</li> <li>Login hours. If certain user personas have set working hours, you can restrict their ability to access Salesforce outside of defined <a href="https://help.salesforce.com/s/articleView?id=sf.login_hours.htm&#x26;type=5">login hours</a>.</li> </ul> </li> <li><strong>Control activities that require added session-level security</strong>. By default, sessions can have two kinds of <a href="https://help.salesforce.com/s/articleView?id=sf.security_overview_sessions.htm&#x26;type=5">security levels</a>: standard and high-assurance. You can use these security levels to control how users can and cannot carry out activities such as accessing reports and dashboards, or managing the security configurations in a Salesforce org. Session-level security policies can require users to establish <a href="https://help.salesforce.com/s/articleView?id=sf.security_auth_require_ha_session.htm&#x26;type=5">high-assurance sessions</a> to carry out operations or block users from carrying out any sensitive operations at all.</li> <li><strong>Control activities that require added session-based permissions</strong>. Salesforce supports <a href="https://help.salesforce.com/s/articleView?id=sf.perm_sets_session_use.htm&#x26;type=5">session-based permission</a> activations to temporarily allow users elevated authorization or access to permissions during a particular session. You can activate and deactivate session-based permissions via Flow or Salesforce APIs.</li> <li><strong>Manage inactive user sessions through timeouts.</strong> Ending inactive sessions is a key part of managing session security. This helps protect your system when, for example, a user leaves a Salesforce session open in a browser tab but is actively working in another application, or when a user’s mobile device is logged into Salesforce, but the user isn’t near their mobile device. Salesforce has a default session inactivity timeout of two hours. You can increase or decrease session inactivity timeout levels. (Avoid increasing timeouts, however, without a compelling and well-documented reason.)</li> <li><strong>Manage connected app sessions through token configuration.</strong> When you configure a connected app, you also define the scope, or level of authorization, that will be granted to users accessing Salesforce through the connected app. This scope is enforced at the session level through <a href="https://help.salesforce.com/s/articleView?id=remoteaccess_oauth_tokens_scopes.htm&#x26;type=5&#x26;language=en_US">OAuth tokens</a>, which are issued after a user of a connected app successfully authenticates. You can control how long a token should last through <a href="https://help.salesforce.com/s/articleView?id=remoteaccess_oauth_tokens_scopes.htm&#x26;type=5&#x26;language=en_US">token refresh policies</a>. Org administrators can manually revoke tokens on a per-user and per-org basis, if needed.</li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Session_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) session management looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about session management tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="device-access">Device Access</h3> <p>In the current context, a <em>device</em> is any piece of electronic equipment that an individual will use to access Salesforce, such as a desktop workstation, laptop, tablet, or mobile phone.</p> <p>While the ability to access Salesforce from portable devices gives users the flexibility to work from anywhere, it can also create additional attack vectors for bad actors. These vectors range from simple (looking over someone’s shoulder in a coffee shop and stealing their credentials) to advanced (installing malware on a device or creating a phony public Wi-Fi network to monitor data transmissions). Because of this, securing devices — especially portable devices — is essential to overall system security.</p> <p>Consider the following to secure device access for Salesforce:</p> <ul> <li><strong>Use the mobile app solutions provided by Salesforce</strong>. Have users on mobile devices who need to access Salesforce use the official <a href="https://help.salesforce.com/s/articleView?id=sf.mobile_security.htm&#x26;type=5">Salesforce apps available for iOS and Android</a>. If business needs require a custom mobile solution, you should use the <a href="https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/intro.htm">Salesforce Mobile SDK</a>, which provides methods for secure authentication and authorization.</li> <li><strong>Design mobile device usage into your session management</strong>. Session security levels, session timeouts, and other session context controls should take into account any anticipated access from users on mobile devices. Consider what devices should and should not be allowed to access Salesforce, and what kinds of users should have access to mobile sessions. Include mobile access standards in your security persona documentation. For more on this topic, see <a href="/../well-architected/trusted/secure#Session_Management">Session Management</a>.</li> <li><strong>Supplement device-level security with Mobile Device Management (MDM) technology.</strong> The Salesforce apps for iOS and Android are <a href="https://help.salesforce.com/s/articleView?id=sf.mobile_security_mdm.htm&#x26;type=5">compatible with many popular MDM suites</a>. You can configure additional access controls for the Salesforce app on user devices through your preferred MDM solution.</li> <li><strong>Supplement app-level security with Mobile Application Management (MAM) technology</strong>. MAM technology supports app-level controls on mobile devices. Salesforce offers a paid <a href="https://help.salesforce.com/s/articleView?id=sf.mobile_security_mam_overview.htm&#x26;type=5">MAM add-on</a> for Salesforce mobile apps.</li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Session_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) device management looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about device management tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="threat-detection-and-response">Threat Detection and Response</h3> <p>Threat detection is the process of identifying behavior patterns in your system that may indicate malicious activity. This can include larger than average volumes of data being downloaded or a user modifying fields containing sensitive data on several records within a shorter than average period of time. Responses to threats can include automated session expiration, alerting, and other notifications.</p> <p>The goal of threat detection is to identify and respond to potential issues as quickly as possible. Taking action based on real-time threat detection can stop malicious behavior in its tracks. Salesforce offers <a href="https://help.salesforce.com/s/articleView?id=sf.real_time_event_monitoring_overview.htm&#x26;type=5">real-time event monitoring</a> as an add-on or as part of <a href="https://www.salesforce.com/products/platform/products/shield/">Salesforce Shield</a>. Use one of these solutions if you have highly sensitive applications or require robust real-time threat detection and response capabilities.</p> <p>Consider the following to build an effective threat detection and response strategy for your Salesforce solutions:</p> <ul> <li><strong>Use built-in audit capabilities</strong>. Salesforce offers a variety of <a href="https://help.salesforce.com/s/articleView?id=sf.monitoring_admin.htm&#x26;type=5">built-in tools</a> to help track and audit changes to your org. For example, you can view the audit history for administrative actions taken in an org through the <a href="https://help.salesforce.com/s/articleView?id=sf.admin_monitorsetup.htm&#x26;type=5">Setup Audit Trail</a>. Salesforce tracks field-level changes for a limited period of time by default — but you can activate <a href="https://help.salesforce.com/s/articleView?id=sf.tracking_field_history.htm&#x26;type=5">Field History Tracking</a> to display field changes for up to 18 months in the UI and up to 24 months via the API. Additionally, you can activate <a href="https://help.salesforce.com/s/articleView?id=sf.field_audit_trail.htm&#x26;type=5">Field Audit Trail</a> to retain an audit history for field-level changes indefinitely (until you manually delete the data).</li> <li><strong>Establish regular audit reviews.</strong> Auditing is a key part of detecting anomalous changes that may not be picked up as a real-time threat. Consider, for example, a user with legitimate access who deletes a small number of records every day for an extended period. Because this user has valid login credentials, has proper authorization to delete records, and is not deleting many records all at once, the activity isn’t likely to be detected as a threat in real time. For an audit team reviewing a report of user activities, however, the trend of a single user deleting an excessive number of records over time would be clearer to see and easier to respond to. As part of your <a href="/../well-architected/easy/intentional#Governance">governance policies</a>, establish regular intervals for auditing login history, user session activity, and connected app usage.</li> <li><strong>Develop a threat response strategy and include it in your security policies</strong>. Create a threat response strategy that covers: <ul> <li>Threat response type definitions (for example, alerts and automations) and any stakeholder <a href="/../well-architected/adaptable/resilient#Incident_Response">groups that should be involved</a> (For more on designing messages or alerts, see <a href="/../well-architected/easy/engaging#Notifications_and_Messages">Errors and Notifications</a>.)</li> <li>Specific categories for real-time changes or activities that could be considered threats and the associated response type for each</li> <li>A clear list of all automated threat responses (such as revoking tokens, ending sessions, deactivating user accounts, or blocking access to resources) and automation triggers</li> </ul> </li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Session_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) threat detection and response looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about threat detection, alerting, and response automation tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="session-security-patterns-and-anti-patterns">Session Security Patterns and Anti-Patterns</h3> <p>The following table shows a selection of patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.</p> <p>✨ Discover more patterns for session security in the <a href="/../well-architected/explorer?Trusted=Session+Security">Pattern &#x26; Anti-Pattern Explorer</a>.</p> <table> <colgroup> <col span="1" style="width: 10%;"> <col span="1" style="width: 45%;"> <col span="1" style="width: 45%;"> </colgroup> <tbody> <tr> <th scope="colgroup"></th> <th scope="colgroup">Patterns</th> <th scope="colgroup">Anti-Patterns</th> </tr> <tr> <td rowspan="3"><b>Session Management</b></td> <td><b>In your design standards and documentation:</b> <br> - Security personas clearly list approved session types and timeout/duration settings for each persona <br> - Login hours have been specified (or identified as not needed) <br> - Operations requiring elevated session-level security or permissions are clear and discoverable <br> - Connected app scope and token management policies are clear and discoverable</td> <td><b>In your design standards and documentation:</b> <br> - Security personas do not exist or lack information about session types and timeout/duration settings <br> - Security policies do not contain information about connected app scopes or token management</td> </tr> <tr> <td><b>In your org:</b> <br> - Session audits show users only access Salesforce through expected session types <br> - There is a clear, active permission set for "API Only User" access (with "API Only" permission set to TRUE) and all integration and automated users are assigned <br> - If users access Salesforce from behind a firewall, the firewall uses an allowlist of required domains instead of IP addresses to secure communications to/from Salesforce <br> - Inactive session timeout intervals do not exceed the default (2 hours) <br> - All of the following settings are enabled: <br> -- Clickjack protection for Setup pages <br> -- Clickjack protection for non-Setup Salesforce pages <br> -- Cross-Site Request Forgery (CSRF) protection <br> -- Cross-Site Scripting (XSS) protection <br> -- Enable content sniffing protection <br> -- Referrer URL protection <br> -- Warn users before they are redirected outside of Salesforce</td> <td><b>In your org:</b> <br> - There is no regular session auditing <br> - There are no definitions of what session types users should have <br> - “API Only" permissions are unclear or missing from integration and automated users <br> - If users access Salesforce from behind a firewall, the firewall uses hard-coded IP addresses to secure communications to/from Salesforce <br> - Inactive session timeout intervals exceed the default (2 hours) <br> - Any of the following settings are disabled: <br> -- Clickjack protection for Setup pages <br> -- Clickjack protection for non-Setup Salesforce pages <br> -- Cross-Site Request Forgery (CSRF) protection <br> -- Cross-Site Scripting (XSS) protection <br> -- Enable content sniffing protection <br> -- Referrer URL protection <br> -- Warn users before they are redirected outside of Salesforce</td> </tr> <tr> <td><b>In LWC, Apex, Aura:</b> <br> - If custom login flows exist, all related custom code uses appropriate <code>SessionManagement</code> methods to assign session-level security</td> <td><b>In LWC, Apex, Aura:</b> <br> - If custom login flows exist, there is no logic to assign session-level security</td> </tr> <tr> <td rowspan="2"><b>Device Access</b></td> <td><b>In your design standards and documentation:</b> <br> - Device policies are clear and discoverable <br> - Security personas are clearly mapped to appropriate device usages and policies</td> <td><b>In your design standards and documentation:</b> <br> - Security policies do not exist or do not contain information about device access</td> </tr> <tr> <td><b>In your org:</b> <br> - Salesforce mobile connected app configuration requires PIN/passcode unlock after inactivity <br> - If business needs require strict control of users who can access Salesforce mobile, API Access Control is enabled and permission sets are assigned to all users of Salesforce mobile apps</td> <td><b>In your org:</b> <br> - Salesforce mobile connected app is not configured to require PIN/passcode unlock for inactivity <br> – Business needs require strict control of users who can access Salesforce mobile, but API Access Control is not enabled or permission sets are not used to control access to Salesforce mobile apps</td> </tr> <tr> <td rowspan="3"><b>Threat Detection and Response</b></td> <td><b>In your design standards and documentation:</b> <br> - Security policies contain a list of events that should trigger a response along with the appropriate response type <br> - Audit levels have been specified for all objects in your data model<br> - Steps to review logs available within Salesforce are documented <br> - All automated responses are documented clearly</td> <td><b>In your design standards and documentation:</b> <br> - Security policies do not exist or do not include information about threat detection and alerting <br> - Documentation for automated responses does not exist or is unclear</td> </tr> <tr> <td><b>Within your company:</b> <br> - Audit data is available in reports business stakeholders can understand and access <br> - Regular reviews of audit history and reports take place</td> <td><b>Within your company:</b> <br> - Audit data is only available through log files that require subject matter expertise to access and interpret <br> - No processes exist to review auditing information</td> </tr> <tr> <td><b>In your org:</b> <br> - Automations are in place to respond to threats by deactivating user accounts or blocking access to resources in real time if abnormal usage is detected <br> - Notifications and alerts are configured to notify appropriate users about anomalous activity <br> - Field History tracking is enabled for all fields containing private or sensitive data</td> <td><b>In your org:</b> <br> - There are no automations in place to respond to threats <br> - Notifications and alerts are either not configured to notify appropriate users about anomalous activity, or some notifications and alerts related to anomalous activity exist, but they are ad hoc <br> - Field History tracking is not consistently enabled for fields containing private or sensitive data</td> </tr> </tbody> </table> <h2 id="data-security">Data Security</h2> <p>Data security is the practice of protecting your data from unauthorized access, corruption, or unintended deletion. Data security involves safeguarding data both in transit and at rest.</p> <p>Strong data security minimizes the risks and potential damages from unauthorized access to your system. Systems without adequate data security are more at risk of data breaches, which can cause great harm to your customers and your company. Protecting your data is an essential part of building secure architectures.</p> <p>Improving data security starts with a clear understanding of what is considered data within Salesforce. The individual records, files, and documents stored within a Salesforce org are its data. (For more on the distinction between metadata and data, see <a href="/../fundamentals/architecture-basics#Metadata_Versus_Data">Salesforce Architecture Basics</a>.)</p> <p>You can build stronger data security in your Salesforce solutions by focusing on sharing and visibility as well as the use of encryption.</p> <blockquote> <p>Note: When designing for data security, be sure to take into account <a href="/../well-architected/trusted/compliant#Data_Privacy">data privacy</a> as well as <a href="/../well-architected/adaptable/resilient#Continuity_Planning">archiving and purging</a>, as both of these concepts will affect the overall data security of your solutions.</p> </blockquote> <h3 id="sharing-and-visibility">Sharing and Visibility</h3> <p>Sharing and visibility involves configuring your system to control how users access data within Salesforce. It is important to note that sharing and visibility control which individual records a user can access — but sharing and visibility alone does not ultimately control what a user can do with a particular record, nor which fields are visible to a user when they access a record. Permissions to carry out data operations (like <a href="https://developer.salesforce.com/docs/atlas.en-us.214.0.lightning.meta/lightning/apex_crud_fls.htm">CRUD</a>) are assigned to users through metadata access controls, which can be configured for a user at the individual object and field level. For more on this, see <a href="/../well-architected/trusted/secure#Authorization">Authorization</a>.</p> <p>Consider the following to configure effective sharing and visibility in Salesforce:</p> <ul> <li><strong>Design access around meaningful job functions</strong>. Create a security matrix that maps your <a href="/../well-architected/trusted/secure#Authentication">user personas</a> to business functions they are to perform. Use this <a href="/../resources/security-policy-template">template</a> as a foundation to design your sharing and visibility. For more on identifying meaningful business functions, see <a href="/../well-architected/adaptable/composable#Functional_Units">Functional Units</a>.</li> <li><strong>Choose the simplest path to applying the principle of least privilege</strong> As you apply the <a href="/well-architected/trusted/secure#Authorization">principle of least privilege</a> in designing sharing and visibility schemes, do so in the most straightforward way. Avoid over-engineered data restrictions and sharing schemes, which can cause downstream issues for system maintainability, scalability, and adaptability. Instead, take advantage of the <a href="https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/sharing_architecture.pdf">flexible, layered data sharing in Salesforce</a>, which enables you to configure fine-grained rules for user access at the data level.</li> <li><strong>Set <em>internal</em> organization-wide defaults (OWDs) to Public Read Only, unless your business deals with sensitive data — then use Private</strong>. OWDs control the level of “least” privilege users will have at the data level. You cannot restrict access below the level of your OWD. For this reason, it may seem like choosing an OWD of Private is the optimal approach in every use case. However, in practice, users across the business can often end up inadvertently replicating a more permissive OWD through complex sharing schemes. Additionally, Private OWDs can cause users to create duplicate data. Sharing calculations (and re-calculations) may take a significant amount of time to complete depending on data volume and parent-child or ownership skew — Private OWDs exacerbate this. CRUD permissions and field-level visibility aren’t actually controlled by OWDs. Only choose an OWD of Private when it is justified by business needs — most often, such justifications will be related to <a href="/../well-architected/trusted/compliant">compliance</a>.</li> <li><strong>Set <em>external</em> organization-wide defaults (OWDs) to Private, unless you have a compelling business reason to allow greater access</strong>. <a href="https://help.salesforce.com/s/articleView?id=sf.security_owd_external.htm&#x26;type=5">External OWDs</a> apply to users accessing Salesforce data from Experience Cloud sites, portals, and so on. Using External OWDs enables you to configure separate OWD baselines for internal and external users, to allow for differing types of “least” privilege. Always set the OWD for external users to Private — exceptions for a more open level must be clearly justified by business needs.</li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Data_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) sharing and visibility looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about sharing and visibility tools from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="use-of-encryption">Use of Encryption</h3> <p>Encryption focuses on ways to convert data from a format that is easily read or understood into an encoded format that is indecipherable. Encrypted data can be decrypted, or translated back to its original form, via a key. Encryption is among the most effective methods for securing data at rest and in transit because it ensures that in the event data is accessed by an unauthorized party, it will be unreadable.</p> <p>Consider the following to design for proper use of encryption in your Salesforce solutions:</p> <ul> <li><strong>Always adequately encrypt data in transit</strong>. Salesforce <a href="https://help.salesforce.com/s/articleView?id=sf.security_overview_infrastructure.htm&#x26;type=5">employs Transport Layer Security (TLS)</a> for all sessions that take place in a <a href="https://help.salesforce.com/s/articleView?id=sf.getstart_browser_overview.htm&#x26;type=5">Salesforce-supported browser</a>, and requires that outbound calls using HTTPS meet specific security standards. Platform APIs also employ HTTPS by default. Additionally, data sent between a Salesforce Experience Cloud site or a portal and its related Salesforce org is encrypted in transit <a href="https://help.salesforce.com/s/articleView?id=release-notes.rn_networks_tls_cruc_enforced.htm&#x26;type=5&#x26;release=222">by default</a>. If you use Salesforce’s <a href="https://help.salesforce.com/s/articleView?id=sf.emailadmin_send_email_from_salesforce_overview.htm&#x26;type=5">built-in email services</a>, there are default levels for the Transport Layer Security (TLS) Salesforce uses to <a href="https://help.salesforce.com/s/articleView?id=sf.emailadmin_deliverability.htm&#x26;type=5">send and attempt delivery of email</a>. You should, at a minimum, ensure the org settings are not lower than the default settings, unless you have clear business justification.</li> <li><strong>If the business requires it, encrypt data at rest</strong>. Salesforce offers different ways to encrypt data at rest. <ul> <li>Hyperforce. Data is encrypted at rest in orgs that use <a href="/../fundamentals/platform-multitenant-architecture#Hyperforce">Hyperforce</a>. Encryption is managed for your org by Salesforce. You cannot create (or destroy) your own encryption keys.</li> <li>Salesforce Shield. <a href="https://www.salesforce.com/products/platform/products/shield/">Salesforce Shield</a> enables you to encrypt data at rest in a Salesforce org. With Shield, you can create and destroy your own encryption keys. You can also encrypt unstructured data (including files, attachments, search indexes, and events).</li> </ul> </li> </ul> <p>The list of <a href="/../well-architected/trusted/secure#Data_Security_Patterns_and_Anti_Patterns">patterns and anti-patterns</a> below shows what proper (and poor) use of encryption looks like in a Salesforce org. You can use these to validate your designs before you build, or identify opportunities for further improvements.</p> <p>To learn more about encryption tools available from Salesforce, see <a href="/../well-architected/trusted/secure#Tools_Relevant_To_Secure">Tools Relevant to Secure</a>.</p> <h3 id="data-security-patterns-and-anti-patterns">Data Security Patterns and Anti-Patterns</h3> <p>The following table shows a selection of patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.</p> <p>✨ Discover more patterns for data security in the <a href="/../well-architected/explorer?Trusted=Data+Security">Pattern &#x26; Anti-Pattern Explorer</a>.</p> <table> <colgroup> <col span="1" style="width: 10%;"> <col span="1" style="width: 45%;"> <col span="1" style="width: 45%;"> </colgroup> <tbody> <tr> <th scope="colgroup"></th> <th scope="colgroup">Patterns</th> <th scope="colgroup">Anti-Patterns</th> </tr> <tr> <td rowspan="3"><b>Sharing and Visibility</b></td> <td><b>In your design standards and documentation:</b> <br> - A security matrix outlines the data each user persona is authorized to access <br> - Different data access standards are used for external users and internal users, if applicable </td> <td><b>In your design standards and documentation:</b> <br> - Design standards and documentation do not exist or do not contain a security matrix <br> - If a security matrix exists, it does not outline data access for user personas </td> </tr> <tr> <td><b>In your org:</b> <br> - Organization-wide defaults (OWDs) for internal users is Public Read, or OWDs for internal users is Private, due to compliance requirements <br> - OWDs for external users is Private <br> - Generative AI operates only in user mode, or select uses for system access have clear business justification</td> <td><b>In your org:</b> <br> - OWDs for internal users is set to Private without business justification or OWDs for internal users is set to Public Read/Write <br> - OWDs for external users are set to anything other than Private without business justification <br> - Generative AI operates in system mode without business justification</td> </tr> <tr> <td><b>In Apex:</b> <br> - All code accessing data (SOQL/SOSL) or performing data operations (DML/Database Class methods) uses <code>with sharing</code> keywords</td> <td><b>In Apex:</b> <br> - <code>with sharing</code> keywords are used inconsistently</td> </tr> <tr> </tr><tr> <td rowspan="3"><b>Use of Encryption</b></td> <td><b>In your design standards and documentation:</b> <br> - Use cases for data encryption in transit and (if needed) at rest are clear and discoverable <br> - Approved encryption protocols are clearly listed <br> - Code documentation clearly indicates where encryption is used and what protocols are used</td> <td><b>In your design standards and documentation:</b> <br> - Approved encryption protocols are not clear or not listed <br> - Code is not documented or documentation is unclear on where and how encryption is used in code</td> </tr> <tr> <td><b>In your org:</b> <br> - If security risks are identified that require greater data protection at rest, either Hyperforce or Salesforce Shield provide encryption at rest</td> <td><b>In your org:</b> <br> - Business needs require greater data protection at rest, but neither Hyperforce nor Salesforce Shield is used</td> </tr> <tr> <td><b>In Apex:</b> <br> - If business needs require greater data protection in transit, all code involved in integration carries out logic using <a href="https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_classes_restful_crypto.htm">Crypto Class methods</a> to encrypt data before transmission or decrypt data upon receipt</td> <td><b>In Apex:</b> <br> - Business needs require greater data protection in transit, but code involved in integration carries out logic without encrypting data before transmission or upon receipt, or Crypto Class methods are used ad hoc</td> </tr> </tbody> </table> <h2 id="tools-relevant-to-secure">Tools Relevant to Secure</h2> <table class="tools-table"><tbody><tr><th>Tool</th><th>Description</th><th>Organizational Security</th><th>Session Security</th><th>Data Security</th></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_classes_restful_crypto.htm">Apex Crypto Class</a></td><td>Encrypt and decrypt data in Apex</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_api_access_control_about.htm&#x26;type=5&#x26;language=en_US">API Access Control</a></td><td>Manage access to your Salesforce APIs and connected apps</td><td class="check-col">X </td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/sforce_api_objects_apianomalyevent.htm">API Anomaly Event</a></td><td>Track anomalies in how users make API calls</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=browser_security.htm&#x26;type=5&#x26;language=en_US">Browser Security Settings</a></td><td>Protect sensitive data and monitor SSL certificates</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_certificate_based_auth.htm&#x26;type=5&#x26;language=en_US">Certificate-Based Authentication</a></td><td>Authenticate individuals with unique digital certificates</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_keys_about.htm&#x26;type=5">Certificates and Keys</a></td><td>Verify requests to external websites from Salesforce</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://security.secure.force.com/security/tools/forcecom/scanner">Code Scanner</a></td><td>Scan Apex code for Security vulnerabilities</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=connected_app_overview.htm&#x26;type=5&#x26;language=en_US">Connected Apps</a></td><td>Integrate via APIs and standard protocols</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/sforce_api_objects_credentialstuffingevent.htm">Credential Stuffing Event</a></td><td>Track attempted logins that use stolen user credentials</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.configuring_remoteproxy.htm&#x26;type=5">CSP Trusted Site</a></td><td>Prevent code injection attacks (i.e. cross-site scripting)</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_login_flow.htm&#x26;type=5">Custom Login Flows</a></td><td>Control login business processes for users</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=identity_about_customers_partners.htm&#x26;type=5&#x26;language=en_US">Customer Identity</a></td><td>Control website and app logins and verification</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.data_mask_overview.htm&#x26;type=5">Data Mask</a></td><td>Automatically mask sensitive data in sandboxes</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.code_debug_log.htm&#x26;type=5">Debug Logs</a></td><td>Track events that occur in your org</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=admin_delegate.htm&#x26;type=5&#x26;language=en_US">Delegated Administration</a></td><td>Assign limited admin privileges to non-admin users</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_overview_identity_verification.htm&#x26;type=5">Device Activation</a></td><td>Verify logins from untrusted browsers, devices or IP ranges</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.enhanced_transaction_security_policy_types.htm&#x26;type=5">Enhanced Transaction Security</a></td><td>Intercept events, monitor and control user activity</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.modifying_field_access_settings.htm&#x26;type=5">Field Access</a></td><td>Control data access at the field level</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.field_audit_trail.htm&#x26;type=5">Field Audit Trail</a></td><td>Define a policy to retain archived field history data</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.tracking_field_history.htm&#x26;type=5">Field History Tracking</a></td><td>Track and display field history</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_frontdoorjsp.htm&#x26;type=5&#x26;language=en_US">Frontdoor.jsp</a></td><td>Allow access with an existing session ID and server URL</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://www.heroku.com/connect">Heroku Connect</a></td><td>Bi-directional synch between Heroku and Salesforce</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://www.heroku.com/shield">Heroku Shield</a></td><td>Build HIPAA or PCI compliant apps</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_auth_require_ha_session.htm&#x26;type=5&#x26;language=en_US">High Assurance Session Security</a></td><td>Require additional security for sensitive operations</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.identityconnect_about.htm&#x26;type=5">Identity Connect</a></td><td>Map user records to Active Directory accounts</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_verification_history.htm&#x26;type=5">Identity Verification History</a></td><td>Audit user identity verification attempts</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?language=en_US&#x26;id=sf.integration_user.htm">Integration User License</a></td><td>Grant access to data and features via API only.</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_ll_overview.htm&#x26;type=5">Lightning Login</a></td><td>Prevent weak or forgotten passwords and locked-out accounts</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.identity_login_access.htm&#x26;type=5">Login Access</a></td><td>Allow support users to log in as another user</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.event_monitoring_faq.htm&#x26;type=5">Login Forensics</a></td><td>Identify behavior that may indicate identity fraud</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=users_login_history.htm&#x26;type=5&#x26;language=en_US">Login History</a></td><td>Monitor org and Experience Cloud site login attempts</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_device_management.htm&#x26;type=5&#x26;language=en_US">Mobile Device Tracking</a></td><td>Track and monitor mobile device access to your org</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/intro.htm">Mobile SDK</a></td><td>Connect to the Salesforce Platform within stand-alone mobile apps</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=release-notes.rn_security_monitor_user_permissions.htm&#x26;type=5&#x26;release=238">Monitor User Permissions (Shield)</a></td><td>Permission set and permission set group changes</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_overview_2fa.htm&#x26;type=5">Multifactor Authentication</a></td><td>Require two or more verification methods for login</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_keys_uploading_mutual_auth_cert_api.htm&#x26;type=5">Mutual Authentication</a></td><td>Enforce SSL or TLS mutual authentication</td><td class="check-col"></td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.domain_name_overview.htm&#x26;type=5">My Domain</a></td><td>Configure login pages and policies, SSO and social logins</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.named_credentials_about.htm&#x26;type=5">Named Credentials</a></td><td>Specify endpoint URLs and authentication parameters</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.remoteaccess_authenticate.htm&#x26;type=5">OAuth Authorization</a></td><td>Authorize client application access via token exchange </td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=admin_password.htm&#x26;type=5&#x26;language=en_US">Password Policies</a></td><td>Set password history, length, and complexity</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=release-notes.rn_forcecom_permissions_assn_expiration.htm&#x26;type=5&#x26;release=238">Permission Set Assignment Expirations</a></td><td>Set expirations for permission set and permission set group assignments</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=release-notes.rn_security_monitor_user_permissions.htm&#x26;type=5&#x26;release=238">Permission Set Event</a></td><td>Monitor changes made to permission sets and permission set groups</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=perm_set_groups.htm&#x26;type=5&#x26;language=en_US">Permission Set Groups</a></td><td>Bundle permission sets to support complex access requirements</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=perm_sets_overview.htm&#x26;type=5&#x26;language=en_US">Permission Sets</a></td><td>Control how users access metadata, features and apps</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.private_connect_overview.htm&#x26;type=5">Private Connect</a></td><td>Secure integrations between Salesforce and Amazon Web Services</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.admin_userprofiles.htm&#x26;type=5">Profiles</a></td><td>Control login IP ranges and login hours</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.real_time_event_monitoring_overview.htm&#x26;type=5">Real-Time Event Monitoring</a></td><td>Monitor and detect standard events in Salesforce </td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=configuring_remoteproxy.htm&#x26;type=5&#x26;language=en_US">Remote Site Settings</a></td><td>Register external sites for Apex or JavaScript calls</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/sforce_api_objects_reportanomalyevent.htm">Report Anomaly Event</a></td><td>Track anomalies in how users run or export reports</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_restriction_rule.htm&#x26;type=5">Restriction Rules</a></td><td>Prevent users from accessing unnecessary records</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://forcedotcom.github.io/sfdx-scanner/">Salesforce Code Analyzer</a></td><td>Scan code via IDE, CLI or CI/CD to ensure it adheres to best practices</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_scoping_rule.htm&#x26;type=5">Scoping Rules</a></td><td>Control the default records your users can see</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_center.htm&#x26;type=5">Security Center</a></td><td>View security and privacy settings across all your orgs</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_health_check.htm&#x26;type=5">Security Health Check</a></td><td>Identify vulnerabilities in your security settings</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/sforce_api_objects_sessionhijackingevent.htm">Session Hijacking Event</a></td><td>Identify unauthorized access via stolen session identifiers</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.236.0.apexref.meta/apexref/apex_class_Auth_SessionManagement.htm">Session Management Class</a></td><td>Customize security settings for an active session</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=admin_sessions.htm&#x26;type=5&#x26;language=en_US">Session Security Settings</a></td><td>Configure sessions to protect against malicious attacks</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.admin_monitorsetup.htm&#x26;type=5">Setup Audit Trail</a></td><td>Track recent setup changes made by admins</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.managing_the_sharing_model.htm&#x26;type=5">Sharing Settings</a></td><td>Control data access at the record level</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.security_pe_overview.htm&#x26;type=5">Shield Platform Encryption</a></td><td>Encrypt sensitive data at rest and in transit</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.sso_about.htm&#x26;type=5">Single Sign-On</a></td><td>Provide access to multiple applications via a single login</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.identity_scim_overview.htm&#x26;type=5">System for Cross-Domain Identity Management (SCIM)</a></td><td>Manage identities across systems via REST APIs</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=sf.real_time_em_threat_detection.htm&#x26;type=5">Threat Detection</a></td><td>Use statistics and machine learning to detect threats</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_networkaccess.htm&#x26;type=5&#x26;language=en_US">Trusted IP Ranges</a></td><td>Define IP addresses that don't require additional verification</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FYkDDUA1&#x26;tab=e">User Access Report</a></td><td>Get a unified view of your users' object, record, and permissions access</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> </tbody></table> <h2 id="resources-relevant-to-secure">Resources Relevant to Secure</h2> <table class="tools-table"><tbody><tr><th>Resource</th><th>Description</th><th>Organizational Security</th><th>Session Security</th><th>Data Security</th></tr> <tr><td><a href="https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/sharing_architecture.pdf">A Guide to Sharing Architecture</a></td><td>Learn more about access tools, sharing models, and use cases</td><td class="check-col"></td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="/../resources/design-standards-template">Design Standards Template</a></td><td>Create design standards for your organization</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://medium.com/salesforce-architects/how-to-build-a-user-security-model-12db130b3182">How to Build a User Security Model</a></td><td>Gain a better understanding of user security models</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://medium.com/salesforce-architects/how-to-implement-the-principle-of-least-privilege-in-salesforce-59d3dbab9908?source=friends_link&#x26;sk=b7650c7fca8ad47bdd876399bbb0c635">How to Implement the Principle of Least Privilege in Salesforce</a></td><td>Learn to apply PoLP data access controls in Salesforce</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_user_session_info.htm&#x26;type=5&#x26;language=en_US">Monitor User Sessions</a></td><td>Review active sessions and end suspicious sessions</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://security.salesforce.com/mfa">Multi-Factor Authentication</a></td><td>Access official MFA resources from Salesforce</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://trailhead.salesforce.com/content/learn/modules/permission-set-groups/mute-permissions-in-permission-set-groups">Permission Set Groups (Trailhead)</a></td><td>Get hands-on with permission set groups</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col">X</td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.234.0.api_rest.meta/api_rest/intro_rest_architecture.htm">REST API Architecture</a></td><td>Understand REST API terms and concepts</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_concepts_security.htm">Security and the SOAP API</a></td><td>Understand SOAP API terms and concepts</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://medium.com/salesforce-architects/security-best-practices-for-api-access-and-internal-system-users-a6199d0cda09">Security Best Practices for API and Internal System Users</a></td><td>Secure access to Salesforce by API users and secure internal system users</td><td class="check-col">X</td><td class="check-col"></td><td class="check-col"></td></tr> <tr><td><a href="https://resources.docs.salesforce.com/238/latest/en-us/sfdc/pdf/salesforce_security_impl_guide.pdf">Security Implementation Guide</a></td><td>Take a comprehensive look at Salesforce Security</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="/../resources/security-policy-template">Security Policy Template</a></td><td>Set Security Policies for your Organization</td><td class="check-col">X</td><td class="check-col">X</td><td class="check-col">X</td></tr> <tr><td><a href="https://help.salesforce.com/s/articleView?id=security_session_types.htm&#x26;type=5&#x26;language=en_US">Session Types</a></td><td>Identify the types of sessions used to access your org</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> <tr><td><a href="https://trailhead.salesforce.com/content/learn/modules/threat-modeling-fundamentals">Threat Modeling Fundamentals (Trailhead)</a></td><td>Learn about security threats and how to prevent them.</td><td class="check-col"></td><td class="check-col">X</td><td class="check-col"></td></tr> </tbody></table> <h2 id="tell-us-what-you-think">Tell us what you think</h2> <p>Help us keep Salesforce Well-Architected relevant to you; take our <a href="https://sfdc.co/bxNtvh">survey</a> to provide feedback on this content and tell us what you’d like to see next.</p> </tm-content> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Secure", "image": ["https://architect.salesforce.com/assets/images/cards/secure.png"], "author": "Salesforce Architects", "publisher": { "@type": "Organization", "name": "Salesforce", "logo": { "@type": "ImageObject", "url": "https://architect.salesforce.com'/assets/images/favicon-192x192.png" } }, "url": "https://architect.salesforce.com", "mainEntityOfPage": "https://architect.salesforce.com/well-architected/trusted/secure", "datePublished": "July 2024", "dateModified": "July 2024", "description": "Read about our update schedules here. Introduction A secure system protects an organization’s stakeholders and data. Secure architectures..." } </script> <footer> <tds-footer config="{&quot;columns&quot;:[{&quot;heading&quot;:&quot;Well-Architected&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/well-architected/overview&quot;,&quot;label&quot;:&quot;Overview&quot;},{&quot;href&quot;:&quot;/well-architected/trusted/overview&quot;,&quot;label&quot;:&quot;Trusted&quot;},{&quot;href&quot;:&quot;/well-architected/easy/overview&quot;,&quot;label&quot;:&quot;Easy&quot;},{&quot;href&quot;:&quot;/well-architected/adaptable/overview&quot;,&quot;label&quot;:&quot;Adaptable&quot;},{&quot;href&quot;:&quot;/well-architected/explorer&quot;,&quot;label&quot;:&quot;Pattern &amp; Anti-Pattern Explorer&quot;}]},{&quot;heading&quot;:&quot;Diagrams&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/diagrams/#framework&quot;,&quot;label&quot;:&quot;Salesforce Diagrams Overview&quot;},{&quot;href&quot;:&quot;/diagrams/#reference-architecture-gallery&quot;,&quot;label&quot;:&quot;Reference Architecture Gallery&quot;},{&quot;href&quot;:&quot;/diagrams/#data-model-gallery&quot;,&quot;label&quot;:&quot;Data Model Gallery&quot;}]},{&quot;heading&quot;:&quot;Decision Guides&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/decision-guides/event-driven&quot;,&quot;label&quot;:&quot;Event-Driven Architectures&quot;},{&quot;href&quot;:&quot;/decision-guides/data-integration&quot;,&quot;label&quot;:&quot;Data Integration&quot;},{&quot;href&quot;:&quot;/decision-guides/trigger-automation&quot;,&quot;label&quot;:&quot;Record-Triggered Automation&quot;},{&quot;href&quot;:&quot;/decision-guides/build-forms&quot;,&quot;label&quot;:&quot;Building Forms&quot;},{&quot;href&quot;:&quot;/decision-guides&quot;,&quot;label&quot;:&quot;See All Guides&quot;}]},{&quot;heading&quot;:&quot;Fundamentals&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/fundamentals/platform-transformation&quot;,&quot;label&quot;:&quot;Platform Transformation&quot;},{&quot;href&quot;:&quot;/fundamentals/architecture-basics&quot;,&quot;label&quot;:&quot;Architecture Basics&quot;},{&quot;href&quot;:&quot;/fundamentals/platform-multitenant-architecture&quot;,&quot;label&quot;:&quot;Platform Multitenant Architecture&quot;},{&quot;href&quot;:&quot;/fundamentals/platform-sharing-architecture&quot;,&quot;label&quot;:&quot;Plaform Sharing Architecture&quot;}]},{&quot;heading&quot;:&quot;Resources&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/resources/project-resource-gallery/ai&quot;,&quot;label&quot;:&quot;Project Resource Gallery&quot;},{&quot;href&quot;:&quot;/roadmaps/roadmap-explorer&quot;,&quot;label&quot;:&quot;Roadmap Explorer&quot;},{&quot;href&quot;:&quot;/releases&quot;,&quot;label&quot;:&quot;Release Overviews&quot;}]},{&quot;heading&quot;:&quot;Connect&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;/connect/blog&quot;,&quot;label&quot;:&quot;Our Blog&quot;},{&quot;href&quot;:&quot;https://www.youtube.com/c/SalesforceArchitects&quot;,&quot;label&quot;:&quot;Our Youtube Channel&quot;},{&quot;href&quot;:&quot;https://trailblazer.salesforce.com/about&quot;,&quot;label&quot;:&quot;Trailblazer Community&quot;}]}],&quot;global&quot;:{&quot;logo&quot;:{&quot;assistiveText&quot;:&quot;Salesforce Logo&quot;,&quot;url&quot;:&quot;/assets/images/salesforce-corp-logo.jpg&quot;},&quot;copyrightTitle&quot;:&quot;© Copyright 2024 Salesforce, Inc. &quot;,&quot;copyrightEnd&quot;:&quot; Various trademarks held by their respective owners. Salesforce, Inc. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States&quot;,&quot;links&quot;:[{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/&quot;,&quot;label&quot;:&quot;Legal&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/&quot;,&quot;label&quot;:&quot;Terms of Service&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/legal/privacy/&quot;,&quot;label&quot;:&quot;Privacy Information&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/disclosure/&quot;,&quot;label&quot;:&quot;Responsible Disclosure&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://trust.salesforce.com/&quot;,&quot;label&quot;:&quot;Trust&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/company/contact-us/?d=cta-glob-footer-11&quot;,&quot;label&quot;:&quot;Contact&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;},{&quot;href&quot;:&quot;https://www.salesforce.com/form/other/privacy-request/&quot;,&quot;label&quot;:&quot;Your Privacy Choices&quot;,&quot;target&quot;:&quot;_blank&quot;,&quot;rel&quot;:&quot;noopener&quot;,&quot;icon&quot;:&quot;/assets/images/privacyicon.png&quot;}]}}"></tds-footer> </footer> <script type="application/javascript">/* This script is generated */ /* Client Bootstrap configuration */ globalThis.LWR = globalThis.LWR || {}; Object.assign(globalThis.LWR, {"appId":"genericRouteHandler","bootstrapModule":"@lwrjs/app-service/genericRouteHandler/module/esm/v/0_11_15","autoBoot":true,"imports":{"/1/bundle/esm/l/en-US/bi/0/module/mi/%40lwrjs%2Fapp-service%2FgenericRouteHandler%2Fmodule%2Fesm%2Fv%2F0_11_15/s/b6ad7971baa5047e7bbcc1e3720daf77d2e9a4e8/bundle_@lwrjs_app-service_genericRouteHandler_module_esm.js":["@lwrjs/app-service/genericRouteHandler/module/esm/v/0_11_15"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Fheader%2Fv%2F1_0_1/s/f1ae5fd3b59a385b871f876495d5741e0957add6/bundle_tds_header.js":["tds/header/v/1_0_1"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Fsearch%2Fv%2F1_0_1/s/ba146dfefa0db013dde40c32eb477d1546205919/bundle_tds_search.js":["tds/search/v/1_0_1"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tm%2FpageHeaderA%2Fv%2F1_0_1/s/c8f9c55107f494dec9b72e13a6bb453e5f9f65bd/bundle_tm_pageHeaderA.js":["tm/pageHeaderA/v/1_0_1"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tm%2Fcontent%2Fv%2F1_0_1/s/dee4bef2d0f5ca8a26d7c6e1b844af5611d11762/bundle_tm_content.js":["tm/content/v/1_0_1"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Ffooter%2Fv%2F1_0_1/s/1f66aa6c773f6411635ee086a6f51d1560c26190/bundle_tds_footer.js":["tds/footer/v/1_0_1"],"/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Finstrumentation%2Fv%2F1_0_1/s/9c0fc260e15d54da8ccbbd08bcaf7480b9943fff/bundle_tds_instrumentation.js":["tds/instrumentation/v/1_0_1"]},"index":{"@lwrjs/app-service/genericRouteHandler/module/esm/v/0_11_15":"/1/module/esm/0/l/en-US/mi/%40lwrjs%2Fapp-service%2FgenericRouteHandler%2Fmodule%2Fesm%2Fv%2F0_11_15/latest/@lwrjs_app-service_genericRouteHandler_module_esm.js","tds/header/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tds%2Fheader%2Fv%2F1_0_1/latest/tds_header.js","tds/search/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tds%2Fsearch%2Fv%2F1_0_1/latest/tds_search.js","tm/pageHeaderA/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tm%2FpageHeaderA%2Fv%2F1_0_1/latest/tm_pageHeaderA.js","tm/content/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tm%2Fcontent%2Fv%2F1_0_1/latest/tm_content.js","tds/footer/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tds%2Ffooter%2Fv%2F1_0_1/latest/tds_footer.js","tds/instrumentation/v/1_0_1":"/1/module/esm/0/l/en-US/mi/tds%2Finstrumentation%2Fv%2F1_0_1/latest/tds_instrumentation.js"},"rootComponents":["tds/header/v/1_0_1","tds/search/v/1_0_1","tm/pageHeaderA/v/1_0_1","tm/content/v/1_0_1","tds/footer/v/1_0_1","tds/instrumentation/v/1_0_1"],"serverData":{},"endpoints":{"uris":{"mapping":"/1/mapping/esm/0/l/en-US/bi/0/mp/","module":"/1/bundle/esm/l/en-US/bi/0/module/mi/"}}}); globalThis.process = { env: {"NODE_ENV":"prod","SSR":false,"basePath":"","locale":"en-US","assetBasePath":"","uiBasePath":""} }; globalThis.lwcRuntimeFlags = { ENABLE_MIXED_SHADOW_MODE: false };</script> <script type="module" src="/1/bundle/esm/l/en-US/bi/0/module/mi/%40lwrjs%2Fapp-service%2FgenericRouteHandler%2Fmodule%2Fesm%2Fv%2F0_11_15/s/b6ad7971baa5047e7bbcc1e3720daf77d2e9a4e8/bundle_@lwrjs_app-service_genericRouteHandler_module_esm.js"></script> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Fheader%2Fv%2F1_0_1/s/f1ae5fd3b59a385b871f876495d5741e0957add6/bundle_tds_header.js" /> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Fsearch%2Fv%2F1_0_1/s/ba146dfefa0db013dde40c32eb477d1546205919/bundle_tds_search.js" /> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tm%2FpageHeaderA%2Fv%2F1_0_1/s/c8f9c55107f494dec9b72e13a6bb453e5f9f65bd/bundle_tm_pageHeaderA.js" /> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tm%2Fcontent%2Fv%2F1_0_1/s/dee4bef2d0f5ca8a26d7c6e1b844af5611d11762/bundle_tm_content.js" /> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Ffooter%2Fv%2F1_0_1/s/1f66aa6c773f6411635ee086a6f51d1560c26190/bundle_tds_footer.js" /> <link rel="modulepreload" href="/1/bundle/esm/l/en-US/bi/0/module/mi/tds%2Finstrumentation%2Fv%2F1_0_1/s/9c0fc260e15d54da8ccbbd08bcaf7480b9943fff/bundle_tds_instrumentation.js" /> <tds-instrumentation use-google-tag-manager="true"></tds-instrumentation> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10