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


As the development of mobile applications increases, there is also an increase of API consumption, which needs to be performed securely. Native mobile applications are considered as public client types because of not being able to store confidential data as web applications. Because of the nature of native applications, the use of OAuth 2.0 might be hard to implement in a safe manner. In some cases, the most we can do is reduce the vulnerabilities or minimize the time window for an attack to be performed. The RFC 6749 by itself does not provide details on how to safely implement native mobile clients, which has been addressed by a recently published Request for Comments (RFC) at the time of writing, that is, RFC 8252—OAuth 2.0 for native apps.

This chapter will present you with how to implement native clients through an Android platform, using the grant types provided by OAuth 2.0 and some OAuth 2.0 profiles such as Proof Key for Code Exchange by OAuth Public Clients (PKCE) that...