Authentication & Authorization for microservices in Service Mesh World

Motivation

I’ve been studying Service Mesh infrastructure in the last year. There are many exciting features like how to achieve observability with minor changes in the code.

Or how to use the right deployment strategy to deliver the real value about microservices architecture for our customers, the business.
Also, people talk about how to handle network issues with Mesh, which one is very easy and very helpful as well.

I’ve been working with Enterprise Systems, which one in most of the cases this company has problems with security in the microservices architecture.

There are two main complains about this topic.

The first one is about different ways to implement security in microservices. Different frameworks and languages have mixed thoughts about security.

And the last one is about how we can provide security in the platform layer. It means remove security concerns from developers, in general, because there is a department that defines the security patterns for the company. This department has specific requirements to attend business requirements, as well.

That is the main reason that I decided to study security in the Service Mesh context, and then I’ve found the different ways to solve the problems described above, and I’ll try to explain how to achieve it using Istio.

Blog Post Series

This blog post series will cover the full authentication and authorization features present in ISTIO.

The series will have four posts and the main idea is to cover best practices regarding security for microservices architecture using the service mesh, we will use ISTIO for that.

The first post will cover the Authentication concepts present in ISTIO. We will explain how it works in detail to understand the right use cases for that.

The second post will cover the Authentication in ISTIO but in a practical way, in this post, we will have a lot of yaml and examples.

The third post will cover the Authorization concepts implemented in ISTIO, it is very important to understand

In the last post, we will create the Authorization stuff with yamls, this is the practical part for the Authorization part.

Now our context is very clear. Let’s start it right now !!!!!

Use-case for this Blog Series

The idea about this blog series is about how to use Istio to enable Authentication & Authorization in the microservices world but, to achieve that we need a use-case to show how it works in real.

We will configure a simple bet solution, it will enable users to create bets in our systems. The solution is composed of four microservices bet, matches, championship and players.

The bet microservice will reach the other one’s matches, championships and players to validate the data, it means the championship date and so on.

This is not a real use-case is something to use to clarify the ideas about security in the microservices world and get benefits from Service Mesh infrastructure.

Let’s see our simple solution diagram:

As we can see there are different profiles in our solution. The manager will manage the championship data, match data and users who will manage their profile.

In the next posts, we will cover all details about how Istio can help us to deliver security, authentication, and authorization in a centralized way.

See you there!!!