OAuth Flow Identification
Which OAuth 2.0 grant type is most appropriate for native mobile applications where the client secret cannot be safely stored?
- A. Authorization Code Grant with PKCE
- B. Implicit Grant
- C. Resource Owner Password Credentials Grant
- D. Client Credentials Grant
- E. Authrization Code Grant
Token Attributes
What is the primary difference between an access token and a refresh token in OAuth 2.0?
- A. Access tokens are long-lived, while refresh tokens are short-lived.
- B. Refresh tokens are used to access protected resources directly, while access tokens are used to obtain new access tokens.
- C. Access tokens are short-lived and used to access protected resources, while refresh tokens are used to obtain new access tokens when the access token expires.
- D. Access tokens are only used for authorization, while refresh tokens are only used for authentication.
- E. Refresh Tokens is only used by the resource server
Scope Specificity
A user grants an application the scope 'read:profile'. What permissions does this typically grant the application?
- A. The ability to create, read, update, and delete the user's profile.
- B. The ability to only read the user's profile information.
- C. Full administrative access to the user's account.
- D. The ability to post on the user's behalf.
- E. The ability to only delete the users profile
Security Vulnerabilities
Which of the following security risks is most directly mitigated by implementing proper token validation on the resource server?
- A. Cross-Site Scripting (XSS)
- B. SQL Injection
- C. Token theft and replay attacks
- D. Denial-of-Service (DoS) attacks
- E. Brute Force Attacks
OAuth Best Practices
Which of the following is a recommended best practice for securely implementing OAuth 2.0?
- A. Storing client secrets directly in the mobile application code.
- B. Using the Implicit Grant flow for all types of applications.
- C. Implementing short-lived access tokens and rotating refresh tokens.
- D. Allowing clients to request overly broad scopes without user consent.
- E. Always using HTTP instead of HTTPS for token requests