Skip to content

Study guide

Study guide for chapter 9 of the Securing Salesforce: Identity and Access course. Read the five modules first; this page helps you check what stuck.

About this study guide. It’s built only from this course’s own content and the published Salesforce exam guide’s list of objectives. It is never based on real exam questions, and it doesn’t claim to know what’s on the exam. If you’ve taken the exam, please don’t send me questions from it: the certification agreement forbids sharing them, and memorizing answers is the wrong way to become an architect anyway.

This chapter carries two of the Identity and Access Management Architect exam’s objectives, both in its Salesforce as an Identity Provider section, 17% of the exam: choosing the OAuth flow (the web server, user-agent and device flows are named in it) and OAuth’s working parts. The exam guide aligns to Summer ‘23, before PKCE became required and before the user-agent flow’s retirement, so check its current version before you book.

Tick them off as you go. Each one links to where it’s taught.

The web server flow (supports IDP-1)

  • I can say why an app shouldn’t take a person’s password, or act as one integration user for everyone. (Two answers that don’t work)
  • I can walk the web server flow in five steps and three moves. (Five steps, three moves)
  • I know the front channel carries only a short-lived code, and the tokens travel on the back channel. (Two channels)
  • I know why the app’s client secret matters in the swap. (The business license)

On the wire (supports IDP-3)

PKCE (supports IDP-1, IDP-3)

  • I can explain the weakness PKCE closes: a code caught in the browser. (The weakness)
  • I know code_challenge goes in the authorize request and code_verifier in the token request, and the challenge is the verifier’s SHA-256 hash. (On the wire)
  • I know PKCE is required for new apps since July 2026 and for ISV apps, and how an org can require it. (Not optional any more)

OpenID Connect (supports IDP-1, IDP-3)

The derivatives (supports IDP-1)

  • I can walk the device flow: the device’s two requests, the user code, the device code, polling, and both codes lasting 10 minutes. (The TV)
  • I know the device flow is limited to local external client apps with a localhost callback from November 2026. (The TV)
  • I know why the user-agent flow is retiring (the token in the browser) and the date, February 20, 2027. (The token in the browser)

The exam is the floor, not the ceiling. These are the habits from this chapter that an architect needs, whether or not a question ever asks about them.

  • The person signs in only at Salesforce, never in the app.
  • Exact callback URLs, only the ones each app needs.
  • PKCE on every app, with the change done in order: the app’s code, then the app, then the org.
  • Check the ID token’s signature, and use a nonce.
  • Find every app still on the user-agent flow, your own and the ones you install, before February 20, 2027.
  • Move device apps to local external client apps with a localhost callback.
TermIn one line
Web server flowThe authorization code flow: a code through the browser, swapped for tokens server to server
Authorization codeThe short-lived claim ticket the browser carries; 15 minutes
Authorize endpoint/services/oauth2/authorize, where the person signs in and approves
Callback URL (redirect_uri)Where Salesforce sends the person back; must match the app’s
stateA value the app makes up and checks on the way back
Front channelThe browser, a little less secure
Back channelServer to server, where the tokens travel
PKCEProof Key for Code Exchange: the pickup word that locks the code to the app
code_verifierThe pickup word, sent in the token request
code_challengeIts fingerprint, a SHA-256 hash, sent in the authorize request
OpenID ConnectA layer on OAuth that says who signed in
ID tokenA signed JWT about who signed in and which app asked
nonceA value in the authorize request that helps detect replays
UserInfo endpointReturns the current user’s basic information
Device flowA code shown on one screen, approved on another, the device polling
User code and device codeThe code the person types, and the one the device keeps
User-agent flowThe implicit grant: the token in the browser; retiring 2027-02-20

Short scenarios in the style of the course. Decide your answer before you open it.

1. A web app wants each customer to see their own Salesforce data, and proposes one integration user for all of them. What's wrong?

Every customer would see what the integration user sees, and every change would show the integration user. Use the web server flow, so the app acts as each person, with her own access. Reread Two answers that don’t work.

2. After setting up the web server flow, every approval fails. The client ID is right. Where do you look first?

At the callback URL. The redirect_uri must match one of the app’s callback URLs exactly, or the approval fails. Reread When it goes wrong.

3. A security review asks what stops someone who catches the authorization code in the browser from using it. What do you answer?

PKCE. The app sent only the fingerprint, the code_challenge, with the request; the swap needs the pickup word, the code_verifier, which never left the app. A stolen code alone gets nothing. Reread The pickup word.

4. An admin turns on Require PKCE for the whole org, and two apps stop working. What went wrong?

The order. The apps’ code had to send the challenge and verifier first, then each app in Salesforce, and only then the org setting: it “requires a coordinated change on both the server and clients”. Reread Not optional any more.

5. A web app wants to show "Hello, Priya" after she logs in with Salesforce, and to trust that it's really her. What does it add to the web server flow?

The openid scope. The answer then includes an ID token, signed by Salesforce, saying who signed in and which app asked; the app checks the signature with Salesforce’s keys. Reread The ID token.

6. A team's warehouse scanner uses the device flow through a connected app. What happens on November 30, 2026, and what's the fix?

The device flow is blocked for apps that aren’t local external client apps with a localhost callback URL. Move the scanner to a compliant local external client app. Reread The TV.

7. A mobile app's login puts the access token after a # in the callback address. What is it, and what should it move to?

The user-agent flow, which retires on February 20, 2027, because it exposes the token to the browser. Move it to the web server flow with PKCE. Reread The token in the browser.

The official list of objectives and their weights. Always check the current version before you book an exam.