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

Using proof-of-possession key semantics on OAuth 2.0 Provider

This chapter will present you with the means to implement an OAuth 2.0 solution where it is possible for the client to prove to the Resource Server that it is in possession of a given key through the usage of JWT tokens. Enabling this feature, increases the safeness of an API because it does not allow the usage of an access token that does not belong to the client sending a request. It can be implemented in many different ways as per the official specification described by RFC 7800 that is available at Nevertheless, this recipe presents you with how to implement proof-of-possession key semantics using asymmetric keys.

Getting ready

Throughout this recipe we will create the OAuth 2.0 Provider that is composed by the Resource Server and the Authorization Server. This time both Authorization Server and Resource Server is implemented as a unique Spring Boot application using Java 8, Maven, Spring...