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

Protecting an Android client with PKCE

When implementing OAuth 2.0 native mobile applications, it's required that you handle the redirection URI when using the Authorization Code or the Implicit grant types. Handing the callback started by the OAuth 2.0 Provider can be achieved by registering a URI scheme strategy. But how can we protect the Authorization Code to be delivered to the right client application? If another client application (a malicious one) registers an activity to listen to the same URI scheme registered for our application, the operational system (in this case Android), will prompt the user with the means to select which application to use. If the user selects the bad one, the Authorization Code will be delivered to the bad application which can request an access token improperly. The PKCE is defined by RFC 7636 just to address this kind of problem and this recipe will help you implement a native application that relies on PKCE to be protected against Authorization Code...