🎣 Consent-phishing defense
A malicious or unverified app doesn't need your password — it just needs you to click Allow on a request asking for more than it needs. Reading the consent screen is the defense.
This is a SELF-CONTAINED simulation, not the Lab's real OIDC consent flow (that lives on the demo app and your own account's Connected apps). Here you play both sides: compose a fictitious client's request below, then read exactly what a transparent consent screen would show you — per-scope sensitivity, every risk signal with its reason, and an overall risk level — BEFORE deciding whether to grant it.
📝 Compose a consent request
Requested scopes
🔍 The consent screen
Compose a request on the left, then "Show me the consent screen".
🔑 Connected apps (consent hygiene)
Every app you've granted, with the risk you were shown at the time. Revoke anything you don't recognize — the same hygiene the real Connected-apps screen on your account page teaches.
Nothing granted yet.
The defenses, all real
- Scope transparency + risk assessment — every scope's sensitivity and every fired signal is shown, with a plain-English reason. Never a black box.
- Publisher verification — an unverified client asking for anything beyond bare profile data is THE central phishing red flag (
unverified_publisher_sensitive), and alone pushes the risk to high. - Least-privilege awareness —
over_broadandwrite_or_adminflag requests asking for more (or more dangerous) access than a single-purpose app plausibly needs. - Revocable grants — every decision is recorded with the risk you were shown, and you can revoke access at any time from "Connected apps" above.
X-ray
🩻 X-ray — what actually happened
Your own insert-only audit trail — the real server events, sanitized (never a secret), each linked to the lesson that explains it.