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 the Password grant type for client apps provided by the OAuth 2 server

Sometimes, we are developing native mobile applications that belong to the same solution provided by the server application. Regarding this scenario, users will present their credentials in any case, and these credentials will be the same as those used to authenticate the user at the server side. When faced with such a scenario, instead of storing the user's credentials, our application can exchange them for an access token at the server side (which must be an OAuth 2.0 Provider). Although the access token is also sensitive, it can be maintained in memory or by using some kind of strategy such as a key chain. Even so, access tokens are easily manageable and can have a short life. This recipe presents you with how you can use the Resource Owner Password Credentials grant type to allow the application to exchange user credentials for an OAuth 2.0 access token.

Getting ready

To run this recipe you need the server application...