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
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Creating an Android OAuth 2.0 client using an Authorization Code with the system browser


This recipe presents you with how to create a native OAuth 2.0 client application for Android, which integrates with an OAuth 2.0 protected API using the Authorization Code grant type. The OAuth 2.0 specification (RFC 6749) states that public clients shouldn't use the Authorization Code grant type. On the other hand, the recently published RFC 8252 states that Authorization Code should be used in conjunction with dynamic client registration and PKCE validation (we will see more about both approaches later in this chapter).

Note

The application created for this recipe, uses client id and client secret issued by a pre-registered client application just for brevity of the recipe. But bear in mind that, as per OAuth 2.0 specification, the Authorization Server must not issue client secret for native client that aren't specific running on a specific device.

Getting ready

To run this recipe you need the server...