SlideShare a Scribd company logo
1 of 34
Download to read offline
Security in the Cloud Webinar
Adam Torman
Senior Product Manager
   @atorman


Bud Vieira
Senior Product Manager
   @aavra

Chuck Mortimore
Senior Director, Product Management
   @cmort
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any
such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could
differ materially from the results expressed or implied by the forward-looking statements we make. All statements
other than statements of historical fact could be deemed forward-looking, including any projections of product or
service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding
strategies or plans of management for future operations, statements of belief, any statements concerning new,
planned, or upgraded services or technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and
delivering new functionality for our service, new products and services, our new business model, our past operating
losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting,
breach of our security measures, the outcome of intellectual property and other litigation, risks associated with
possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history,
our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and
successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and
selling to larger enterprise customers. Further information on potential factors that could affect the financial results of
salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31,
2011. This documents and others containing important disclosures are available on the SEC Filings section of the
Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements
are not currently available and may not be delivered on time or at all. Customers who purchase our services should
make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no
obligation and does not intend to update these forward-looking statements.
@forcedotcom / #forcewebinar



Developer Force Group



facebook.com/forcedotcom
http://bit.ly/sfcloudstock
Agenda

§  Force.com Overview
§  Authenticating Database.com Users
§  Provisioning Database.com Users
§  Controlling Access
§  Key Take Aways
§  Q&A
Enterprise Data Collaboration Platform

§  Trusted by the enterprise
§  Designed for social collaboration
§  Open for any language, platform, or device
§  Support for mobile applications
Chuck Mortimore
Sr. Product Management Director
         Core Security
Authentication and Database.com

§  Two primary mechanisms for authentication
§  Direct db access with a privileged user
   –  1 highly privileged user to access the data
   –  Classic integration and database connection model
§  Individual user accounts
   –  Each user has a named account
   –  Propagates Identity all they way to the database tier
   –  Can simplify the development of authentication
   –  Allows granular authorization at the data tier
What is OAuth?

§  An open protocol to allow secure API access in a simple
    and standard method from desktop and web
    applications
§  Standardization of common, successful API patterns
§  Standard track in IETF
   –  Salesforce.com, Google, Microsoft, Facebook, Twitter, Yahoo,
      Oracle, etc.
Why Use OAuth
§  Simple
   –  Protocol is HTTP based.
   –  Interfaces are already done
   –  Allows you to focus on your value add
§  Works great for mobile
   –  Salesforce mobile and desktop clients are switching
   –  No need for API token
§  Stops the password anti-pattern
   –  Reduce the security and management issues with passwords
Direct DB Access with a Privileged User
§  User Name / Password Flow
    –  Used for simple server to server integration use-cases

POST /services/oauth/token HTTP/1.1!
Host: login.salesforce.com!
grant_type=password&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}
&redirect_uri={REDIRECT_URI}&username={USERNAME}&password={PASSWORD}!
!
!
!
!
HTTP/1.1 200 OK!
Content-Type: application/json!
!
{"id":"https://login.salesforce.com/id/00D300000000mlxEAA/
00530000000gKV8AAM","issued_at":"1313612089200","instance_url":"https://
cmort-developer-edition.my.salesforce.com","signature":"NRbIb/
EnYBfxKz9hApUI70Pl/Rog1S8ArsTHoxbj4eg=","access_token":"00D300000000mlx!
AQoAQKtgvm50TODcRU3QboID1DctJIssSMRPWIdVmXcAF9vbqIppVOGIVGZ6MR2xzS2TjQix.bW3
ZHH9OnColDSH.5fg_rM"}!
Individual User Accounts
§  Web Server Flow
   –  Web servers can protect secrets. Code returned to callback
      URL and exchanged for a token via a POST
§  User Agent Flow
   –  Used for Javascript, Mobile, and Desktop. Token returned
      directly to callback URL behind # fragment
How Does It Work?

1)  Device opens a browser
    with authorization URL
2)  User is Authenticated
3)  User Authorizes App
4)  Tokens returned to device
What the User Sees:




      Authentication   Authorization
Step 1: Open a URL


 https://login.salesforce.com/services/oauth2/authorize
 ?response_type=token
 &client_id={YOUR_CLIENT_ID}
 &redirect_uri={YOUR_REDIRECT_URI}



https://login.salesforce.com/services/oauth2/authorize?
response_type=token&client_id=MyClient&redirect_uri=myapp%3A%2F%2Fcallback
Step 2: Parse the Response


  {YOUR_REDIRECT_URI}#
  access_token={SESSION}
  &refresh_token={LIKE_A_PASSWORD}
  &instance_url={USERS_INSTANCE}
  &id={IDENTITY_URL}


myapp://callback#access_token=czZCaGRSa3F0MzpnWDFmQm
&refresh_token=5Aep8615VRsd_GrUz3LAcJl&redirect_uri=myapp%3A%2F%2Fcallback
&instance_url=https%3A%2F%2Fna1.salesforce.com
&id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00DD0000000FJCR%2F005D0000001B5bx
Step 3: Use your Token


 GET /some/resource HTTP/1.1
 Host: na1.salesforce.com
 Authorization: Oauth czZCaGRSa3F0MzpnWDFmQm
Using a Token

§  Token Response:
   –  XML or JSON
   –  access_token: an API only SID
   –  refresh_token: a token you can use to get new access_tokens
   –  instance_url: the user’s instance
   –  id: a url that is both a unique id for the user and a getUserInfo
§  Using it with the API
   –  REST: HTTP Header: “Authorization: OAuth <access_token>”
   –  SOAP: place access token in SOAP header like a SID
Identity URL Service

§  Return a central identity url
   –  https://login.salesforce.com/id/{orgid}/{userid}
§  Basic profile information similar to GetUserInfo
§  Discovery service for API endpoints
§  Chatter Status and photos
§  Working to standardize this as “OpenID Connect”
Configuring a Client
Setup/Administration/Create/Remote Access
Demo Time!
Adam Torman and Bud Vieira
       Sr. Product Managers
     Administration and Sharing
User Provisioning
§  Add multiple users
    quickly
§  Add single users
    with more detail
§  Use the sObject
    API for bulk
§  Use REST API
§  Use SAML for
    upsert
User Provisioning with REST API




      https://workbench.developerforce.com/login.php!

GET: /services/data/v24.0/sobjects/User/00530000004qkoH!
POST: /services/data/v24.0/sobjects/User/!
   {!
   "Username" : "gogolbordello@db.com", !
   "LastName" : "Bordello", !
   "FirstName" : "Gogol", !
   "Email" : "atorman@salesforce.com", !
   "Alias" : "gUser", !
   "CommunityNickname" : "gogolbordello1234", !
   "IsActive" : false, !
   "TimeZoneSidKey" : "America/Los_Angeles", !
   "LocaleSidKey" : "en_US", !
   "EmailEncodingKey" : "ISO-8859-1", !
   "ProfileId" : "00e30000001btrSAAQ", !
   "LanguageLocaleKey" : "en_US", !
   "UserPermissionsMobileUser" : false, !
   "UserPreferencesDisableAutoSubForFeeds" : false!
   }!
How do Profiles and Sharing Work Together
  Keep the simple simple and make the complex possible

  §  Profiles                                       §  Sharing
       –  What tables and columns                       –  What rows can I access
          can I access                                  –  Read/Write/Transfer/Full
       –  Read/Create/Edit/Delete


                                          Event Table
ü  Read
                                                                               ü  Read
ü  Create       Name                                     Description
                                                                               ü  Write
ü  Edit         Authentication: A Practical Guide        Practical Guide…
q  Delete
                 Keynote 1                                Welcome to Dream…



                                                              q  Read
                                                              q  Edit
Demo: Access to the Dreamforce Event Object


                           Event Table


          Name                           Description
          Authentication: A Practical…   Practical Guide…
                                         Welcome to
          Keynote 1
                                         Dream…
          Developer Zone                 Welcome Devs

          Metallica!                     Killer Show
What’s a permission set?

§  Like profiles, a permission set is a collection of
    permissions and settings that allow users to do things in
    Salesforce.
§  What a user can do is determined by one profile plus
    permission sets
Demo: Least Privilege Permissions

                       Db.com w/Events Profile
                                              q  Read
                                              q  Edit
                             Event Table
         Name                        Description
         Authentication: A
                                     Practical Guide…
         Practical…
         Keynote 1                   Welcome to Dream…

         Developer Zone              Welcome Devs


                                              ü  Read
                                              q  Edit
         Event Description Permission Set
Highlights of the Sharing Toolbox
               !

                              default sharing model for all users
          Org Wide Defaults




                              management access to data
            Role Hierarchy




                              target access to specific groups
      Sharing Rules



                              most granular – complete control
     Programmatic Sharing
Demo: Opening up Sharing Access to Events



                  Event_Share Table


           User          Level   Reason
           Demo User     Full    Owner

           Event Owner   Full    Owner
           Demo User     Read    Sharing Rule
           Demo User     Read    Custom
Key Take Aways

§  We have many ways to handle single sign on – take
    your pick
§  There are privileged users, admin users, and everyone
    in between
§  Profiles and Sharing work together to keep the simple
    simple and make the complex scale
Resources
Security Wiki
http://wiki.developerforce.com/page/Security

Force.com Security Overview
http://wiki.developerforce.com/page/An_Overview_of_Force.com_Security

Security Implementation Guide
https://na1.salesforce.com/help/doc/en/salesforce_security_impl_guide.pdf

Security Cookbook Recipes
http://developer.force.com/cookbook/category/security/recent

I <3 Permission Sets DF11 Presentation
http://www.youtube.com/watch?v=arXxUgH9cD4

Using Apex Managed Sharing to Create Custom Record Sharing Logic
http://wiki.developerforce.com/page/
Using_Apex_Managed_Sharing_to_Create_Custom_Record_Sharing_Logic

Digging Deeper into Oauth 2.0 on Force.com
http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com
Questions & Answers
  http://bit.ly/securitywebinar



                  Chuck Mortimore
                  Senior Director, Product Management
                     @cmort


                  Adam Torman
                  Senior Product Manager
                     @atorman


                  Bud Vieira
                  Senior Product Manager
                     @aavra
ABCs of Security in the Cloud Webinar

More Related Content

Similar to ABCs of Security in the Cloud Webinar

Hands-On Workshop: Introduction to Development on Force.com for Developers
Hands-On Workshop: Introduction to Development on Force.com for DevelopersHands-On Workshop: Introduction to Development on Force.com for Developers
Hands-On Workshop: Introduction to Development on Force.com for DevelopersSalesforce Developers
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsSalesforce Developers
 
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptx
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptxLWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptx
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptxVkrish Peru
 
Lightning Component - Components, Actions and Events
Lightning Component - Components, Actions and EventsLightning Component - Components, Actions and Events
Lightning Component - Components, Actions and EventsDurgesh Dhoot
 
I Am MongoDB – And So Can You!
I Am MongoDB – And So Can You!I Am MongoDB – And So Can You!
I Am MongoDB – And So Can You!MongoDB
 
Keeping it Simple with Permission Sets
Keeping it Simple with Permission SetsKeeping it Simple with Permission Sets
Keeping it Simple with Permission SetsConfigero
 
Secure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSecure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSalesforce Developers
 
Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018MOnCloud
 
Dreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for DevelopersDreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for DevelopersPeter Chittum
 
Salesforce DX for Accidential Admins
Salesforce DX for Accidential AdminsSalesforce DX for Accidential Admins
Salesforce DX for Accidential AdminsMartin Humpolec
 
Elevate london dec 2014.pptx
Elevate london dec 2014.pptxElevate london dec 2014.pptx
Elevate london dec 2014.pptxPeter Chittum
 
Bringing "real life" relations to Plone
Bringing "real life" relations to PloneBringing "real life" relations to Plone
Bringing "real life" relations to PloneMassimo Azzolini
 
Advanced Automation with Flows and Custom Metadata Types
Advanced Automation with Flows and Custom Metadata TypesAdvanced Automation with Flows and Custom Metadata Types
Advanced Automation with Flows and Custom Metadata TypesSalesforce Admins
 
XP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsXP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsVlad Fedosov
 
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreDeveloping Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreSalesforce Developers
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comAlistair Croll
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop LondonKeir Bowden
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftJosh Holmes
 

Similar to ABCs of Security in the Cloud Webinar (20)

Hands-On Workshop: Introduction to Development on Force.com for Developers
Hands-On Workshop: Introduction to Development on Force.com for DevelopersHands-On Workshop: Introduction to Development on Force.com for Developers
Hands-On Workshop: Introduction to Development on Force.com for Developers
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptx
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptxLWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptx
LWC_Workbxcgbgfbgfbfgbfgbfbfbshop_Day2.pptx
 
Lightning Component - Components, Actions and Events
Lightning Component - Components, Actions and EventsLightning Component - Components, Actions and Events
Lightning Component - Components, Actions and Events
 
I Am MongoDB – And So Can You!
I Am MongoDB – And So Can You!I Am MongoDB – And So Can You!
I Am MongoDB – And So Can You!
 
Keeping it Simple with Permission Sets
Keeping it Simple with Permission SetsKeeping it Simple with Permission Sets
Keeping it Simple with Permission Sets
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Secure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSecure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and Sharing
 
Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018
 
Using Wireframes
Using WireframesUsing Wireframes
Using Wireframes
 
Dreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for DevelopersDreamforce 15 - Platform Encryption for Developers
Dreamforce 15 - Platform Encryption for Developers
 
Salesforce DX for Accidential Admins
Salesforce DX for Accidential AdminsSalesforce DX for Accidential Admins
Salesforce DX for Accidential Admins
 
Elevate london dec 2014.pptx
Elevate london dec 2014.pptxElevate london dec 2014.pptx
Elevate london dec 2014.pptx
 
Bringing "real life" relations to Plone
Bringing "real life" relations to PloneBringing "real life" relations to Plone
Bringing "real life" relations to Plone
 
Advanced Automation with Flows and Custom Metadata Types
Advanced Automation with Flows and Custom Metadata TypesAdvanced Automation with Flows and Custom Metadata Types
Advanced Automation with Flows and Custom Metadata Types
 
XP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applicationsXP Days 2019: First secret delivery for modern cloud-native applications
XP Days 2019: First secret delivery for modern cloud-native applications
 
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStoreDeveloping Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
Developing Offline-Capable Apps with the Salesforce Mobile SDK and SmartStore
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and Microsoft
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

More from Salesforce Developers (20)

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

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

ABCs of Security in the Cloud Webinar

  • 1. Security in the Cloud Webinar Adam Torman Senior Product Manager @atorman Bud Vieira Senior Product Manager @aavra Chuck Mortimore Senior Director, Product Management @cmort
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2011. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. @forcedotcom / #forcewebinar Developer Force Group facebook.com/forcedotcom
  • 5. Agenda §  Force.com Overview §  Authenticating Database.com Users §  Provisioning Database.com Users §  Controlling Access §  Key Take Aways §  Q&A
  • 6. Enterprise Data Collaboration Platform §  Trusted by the enterprise §  Designed for social collaboration §  Open for any language, platform, or device §  Support for mobile applications
  • 7. Chuck Mortimore Sr. Product Management Director Core Security
  • 8. Authentication and Database.com §  Two primary mechanisms for authentication §  Direct db access with a privileged user –  1 highly privileged user to access the data –  Classic integration and database connection model §  Individual user accounts –  Each user has a named account –  Propagates Identity all they way to the database tier –  Can simplify the development of authentication –  Allows granular authorization at the data tier
  • 9. What is OAuth? §  An open protocol to allow secure API access in a simple and standard method from desktop and web applications §  Standardization of common, successful API patterns §  Standard track in IETF –  Salesforce.com, Google, Microsoft, Facebook, Twitter, Yahoo, Oracle, etc.
  • 10. Why Use OAuth §  Simple –  Protocol is HTTP based. –  Interfaces are already done –  Allows you to focus on your value add §  Works great for mobile –  Salesforce mobile and desktop clients are switching –  No need for API token §  Stops the password anti-pattern –  Reduce the security and management issues with passwords
  • 11. Direct DB Access with a Privileged User §  User Name / Password Flow –  Used for simple server to server integration use-cases POST /services/oauth/token HTTP/1.1! Host: login.salesforce.com! grant_type=password&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET} &redirect_uri={REDIRECT_URI}&username={USERNAME}&password={PASSWORD}! ! ! ! ! HTTP/1.1 200 OK! Content-Type: application/json! ! {"id":"https://login.salesforce.com/id/00D300000000mlxEAA/ 00530000000gKV8AAM","issued_at":"1313612089200","instance_url":"https:// cmort-developer-edition.my.salesforce.com","signature":"NRbIb/ EnYBfxKz9hApUI70Pl/Rog1S8ArsTHoxbj4eg=","access_token":"00D300000000mlx! AQoAQKtgvm50TODcRU3QboID1DctJIssSMRPWIdVmXcAF9vbqIppVOGIVGZ6MR2xzS2TjQix.bW3 ZHH9OnColDSH.5fg_rM"}!
  • 12. Individual User Accounts §  Web Server Flow –  Web servers can protect secrets. Code returned to callback URL and exchanged for a token via a POST §  User Agent Flow –  Used for Javascript, Mobile, and Desktop. Token returned directly to callback URL behind # fragment
  • 13. How Does It Work? 1)  Device opens a browser with authorization URL 2)  User is Authenticated 3)  User Authorizes App 4)  Tokens returned to device
  • 14. What the User Sees: Authentication Authorization
  • 15. Step 1: Open a URL https://login.salesforce.com/services/oauth2/authorize ?response_type=token &client_id={YOUR_CLIENT_ID} &redirect_uri={YOUR_REDIRECT_URI} https://login.salesforce.com/services/oauth2/authorize? response_type=token&client_id=MyClient&redirect_uri=myapp%3A%2F%2Fcallback
  • 16. Step 2: Parse the Response {YOUR_REDIRECT_URI}# access_token={SESSION} &refresh_token={LIKE_A_PASSWORD} &instance_url={USERS_INSTANCE} &id={IDENTITY_URL} myapp://callback#access_token=czZCaGRSa3F0MzpnWDFmQm &refresh_token=5Aep8615VRsd_GrUz3LAcJl&redirect_uri=myapp%3A%2F%2Fcallback &instance_url=https%3A%2F%2Fna1.salesforce.com &id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00DD0000000FJCR%2F005D0000001B5bx
  • 17. Step 3: Use your Token GET /some/resource HTTP/1.1 Host: na1.salesforce.com Authorization: Oauth czZCaGRSa3F0MzpnWDFmQm
  • 18. Using a Token §  Token Response: –  XML or JSON –  access_token: an API only SID –  refresh_token: a token you can use to get new access_tokens –  instance_url: the user’s instance –  id: a url that is both a unique id for the user and a getUserInfo §  Using it with the API –  REST: HTTP Header: “Authorization: OAuth <access_token>” –  SOAP: place access token in SOAP header like a SID
  • 19. Identity URL Service §  Return a central identity url –  https://login.salesforce.com/id/{orgid}/{userid} §  Basic profile information similar to GetUserInfo §  Discovery service for API endpoints §  Chatter Status and photos §  Working to standardize this as “OpenID Connect”
  • 22. Adam Torman and Bud Vieira Sr. Product Managers Administration and Sharing
  • 23. User Provisioning §  Add multiple users quickly §  Add single users with more detail §  Use the sObject API for bulk §  Use REST API §  Use SAML for upsert
  • 24. User Provisioning with REST API https://workbench.developerforce.com/login.php! GET: /services/data/v24.0/sobjects/User/00530000004qkoH! POST: /services/data/v24.0/sobjects/User/! {! "Username" : "gogolbordello@db.com", ! "LastName" : "Bordello", ! "FirstName" : "Gogol", ! "Email" : "atorman@salesforce.com", ! "Alias" : "gUser", ! "CommunityNickname" : "gogolbordello1234", ! "IsActive" : false, ! "TimeZoneSidKey" : "America/Los_Angeles", ! "LocaleSidKey" : "en_US", ! "EmailEncodingKey" : "ISO-8859-1", ! "ProfileId" : "00e30000001btrSAAQ", ! "LanguageLocaleKey" : "en_US", ! "UserPermissionsMobileUser" : false, ! "UserPreferencesDisableAutoSubForFeeds" : false! }!
  • 25. How do Profiles and Sharing Work Together Keep the simple simple and make the complex possible §  Profiles §  Sharing –  What tables and columns –  What rows can I access can I access –  Read/Write/Transfer/Full –  Read/Create/Edit/Delete Event Table ü  Read ü  Read ü  Create Name Description ü  Write ü  Edit Authentication: A Practical Guide Practical Guide… q  Delete Keynote 1 Welcome to Dream… q  Read q  Edit
  • 26. Demo: Access to the Dreamforce Event Object Event Table Name Description Authentication: A Practical… Practical Guide… Welcome to Keynote 1 Dream… Developer Zone Welcome Devs Metallica! Killer Show
  • 27. What’s a permission set? §  Like profiles, a permission set is a collection of permissions and settings that allow users to do things in Salesforce. §  What a user can do is determined by one profile plus permission sets
  • 28. Demo: Least Privilege Permissions Db.com w/Events Profile q  Read q  Edit Event Table Name Description Authentication: A Practical Guide… Practical… Keynote 1 Welcome to Dream… Developer Zone Welcome Devs ü  Read q  Edit Event Description Permission Set
  • 29. Highlights of the Sharing Toolbox ! default sharing model for all users Org Wide Defaults management access to data Role Hierarchy target access to specific groups Sharing Rules most granular – complete control Programmatic Sharing
  • 30. Demo: Opening up Sharing Access to Events Event_Share Table User Level Reason Demo User Full Owner Event Owner Full Owner Demo User Read Sharing Rule Demo User Read Custom
  • 31. Key Take Aways §  We have many ways to handle single sign on – take your pick §  There are privileged users, admin users, and everyone in between §  Profiles and Sharing work together to keep the simple simple and make the complex scale
  • 32. Resources Security Wiki http://wiki.developerforce.com/page/Security Force.com Security Overview http://wiki.developerforce.com/page/An_Overview_of_Force.com_Security Security Implementation Guide https://na1.salesforce.com/help/doc/en/salesforce_security_impl_guide.pdf Security Cookbook Recipes http://developer.force.com/cookbook/category/security/recent I <3 Permission Sets DF11 Presentation http://www.youtube.com/watch?v=arXxUgH9cD4 Using Apex Managed Sharing to Create Custom Record Sharing Logic http://wiki.developerforce.com/page/ Using_Apex_Managed_Sharing_to_Create_Custom_Record_Sharing_Logic Digging Deeper into Oauth 2.0 on Force.com http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com
  • 33. Questions & Answers http://bit.ly/securitywebinar Chuck Mortimore Senior Director, Product Management @cmort Adam Torman Senior Product Manager @atorman Bud Vieira Senior Product Manager @aavra