CISSP Identity and Access Management Practice Question
In OAuth 2.0, which grant type is recommended for a native mobile application that cannot securely store a client secret, and uses PKCE?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Authorization Code grant with PKCE
The Authorization Code grant with PKCE is designed for public clients like mobile apps to prevent interception of the authorization code.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Client Credentials grant
Why it's wrong here
The Client Credentials grant type is specifically designed for confidential clients, such as server-side applications, to obtain an access token directly from the authorization server using their own client ID and a securely stored client secret. This flow is used when the client is acting on its own behalf, not on behalf of an end-user, and does not involve user interaction for authorization. Native mobile applications are public clients that cannot securely store secrets and require user authorization, making this grant type unsuitable.
- ✗
Implicit grant
Why it's wrong here
The Implicit grant type directly returns the access token in the redirect URI fragment after user authorization, bypassing the authorization code exchange step. This design makes it vulnerable to token leakage through browser history, referrer headers, and malicious applications, especially for public clients like native mobile apps. Due to these significant security concerns and the lack of refresh token support, the Implicit grant is officially deprecated in favor of more secure alternatives like Authorization Code with PKCE.
- ✗
Device Code grant
Why it's wrong here
The Device Code grant type is tailored for input-constrained devices, such as smart TVs or IoT devices, where a user cannot easily type credentials directly into the device. It involves the device displaying a short code and a verification URI, prompting the user to complete authorization on a separate, more capable device (e.g., a smartphone or computer). Native mobile applications typically possess full input capabilities and an integrated browser, rendering this specialized grant type unnecessary and overly complex for their standard use cases.
- ✓
Authorization Code grant with PKCE
Why this is correct
The Authorization Code grant with Proof Key for Code Exchange (PKCE) is the recommended and most secure flow for public clients like native mobile applications. PKCE mitigates the authorization code interception attack by requiring the client to generate a cryptographically random `code_verifier` and send its hash (`code_challenge`) during the initial authorization request. The same `code_verifier` must then be presented when exchanging the authorization code for an access token, ensuring only the legitimate client that initiated the request can complete the exchange, even if the code is intercepted.
Go deeper
Related to this question
Learn chapter
Asset Security: Privacy and Data Retention
Key term
Access token
A digital key that a computer system gives you to prove your identity and grant you permission to access specific resources or perform actions.
Key term
Authorization
Authorization determines what an authenticated user is allowed to do within a system, such as accessing files, running programs, or changing settings.
About these practice questions
One of 747 original CISSP practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CISSP practice question is part of Courseiva's free ISC2 certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CISSP exam.