Implementing Microservices Security Patterns & Protocols

Nov 13 2018 Talk @ Devoxx Belgium

A video of my talk Implementing Microservices Security Patterns & Protocols with my friend Joe Grandja on Nov 13 2018 at Devoxx Belgium.

Abstract:

Building secure microservices requires mastering a variety of patterns, protocols, frameworks, and technologies. This deep dive provides a holistic end-to-end view of how to secure microservices using industry standard protocols and Spring. The goal is to present how standards such as JWT, JWA, JWS, JWE, JWK, OAuth2, OpenID Connect, TLS can be combined to make writing secure microservices easy.

The deep dive will alternate between slides that explain the security standards and protocols and code walkthroughs/live coding showing how to apply the patterns and standards using Spring Security 5.1. We will demonstrate the following patterns and their implementations.

  • Web SSO Login
  • Implementing OAuth2 resource servers
  • Implementing edge service gateways
  • Token Exchange in a microservice call chain
  • Token Relay in a microservice call chain
  • Integration with OpenID Connect / OAuth2 Servers
  • Features of Spring Security 5.1 that make it easier to secure microservices

We assume no prior experience with security standards or Spring Security. However, we assume that you are comfortable reading Java code and web development.

Microservices Security Patterns & Protocols with Spring & PCF

September 26 2018 Talk @ Spring One Platform

A video of my talk at Microservices Security Patterns & Protocols with Spring & PCF on September 26 2018 at Spring One Platform Conference in Washington DC.

Abstract:

This introductory talk introduces the patterns and protocols used to secure microservices. The goal is to present how standards such as JWT, JWA, JWS, JWE, JWK, OAuth2, OpenId Connect, and others can be combined to make writing secure microservices easy. The patterns and protocols will be illustrated with a demo application build using Spring & PCF. The goal is to demonstrate how to make writing secure microservices easier.

Storing JKS files in Spring Cloud Config Sever

A customer asked me how they can store a JKS file with certificates in a spring cloud config server, retrieve it on application startup and use it to setup a a Java SSLContext for doing mutual TLS with a backend system, that was using self signed certificates.

The config server can’t store binary files, so you have to first encode the JKS file as a base64 string, put in the config server then pull it at startup with regular Spring @Value annotation which is then used to setup the context. I created a sample application which you can find at https://github.com/asaikali/mtls-demo