Book Image

OAuth 2.0 Cookbook

By : Adolfo Eloy Nascimento
Book Image

OAuth 2.0 Cookbook

By: Adolfo Eloy Nascimento

Overview of this book

OAuth 2.0 is a standard protocol for authorization and focuses on client development simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and so on. This book also provides useful recipes for solving real-life problems using Spring Security and creating Android applications. The book starts by presenting you how to interact with some public OAuth 2.0 protected APIs such as Facebook, LinkedIn and Google. You will also be able to implement your own OAuth 2.0 provider with Spring Security OAuth2. Next, the book will cover practical scenarios regarding some important OAuth 2.0 profiles such as Dynamic Client Registration, Token Introspection and how to revoke issued access tokens. You will then be introduced to the usage of JWT, OpenID Connect, and how to safely implement native mobile OAuth 2.0 Clients. By the end of this book, you will be able to ensure that both the server and client are protected against common vulnerabilities.
Table of Contents (16 chapters)
Title Page
About the Author
About the Reviewer
Customer Feedback

Creating an Android OAuth 2.0 client using the Implicit grant type with the system browser

The specification for OAuth 2.0, which is RFC 6749, address native mobile applications with just a small section. It does not states which grant type must be used or not, although it mentions the usage of Authorization Code and Implicit grant type. The only concern when using Implicit grant type is about that a refresh token is not returned requiring the authorization processes once the access token expires. Even though, the most recent specification, OAuth 2.0 for native apps (RFC 8252) states that implicit flow isn't recommended for native apps, basically because by using this grant type the client application will not be able to use PKCE, which avoids interception attacks (we will see more about PKCE in the Protecting an Android client with PKCE recipe).

Despite these considerations, this recipe still presents you with how to use the Implicit grant type, because depending on your scenario, you might...