Inicio de sesión único en arquitectura de microservicios

Estoy tratando de diseñar un proyecto de campo verde que tenga varios servicios (sirviendo datos) y aplicaciones web (sirviendo HTML). He leído sobre microservicios y parecen encajar bien.

El problema que todavía tengo es cómo implementar SSO. Quiero que el usuario se autentique una vez y tenga acceso a todos los diferentes servicios y aplicaciones.

Puedo pensar en varios enfoques:

Agregar servicio de identidad y aplicación. Cualquier servicio que tenga recursos protegidos se comunicará con el servicio de Identidad para asegurarse de que las credenciales que posee sean válidas. Si no lo están, redirigirá al usuario para la autenticación.

Use un estándar web como OpenID y haga que cada servicio maneje sus propias identidades. Esto significa que el usuario tendrá que autorizar individualmente cada servicio / aplicación, pero luego será SSO.

Estaré encantado de escuchar otras ideas. Si un PaaS específico (como Heroku) tiene una solución patentada que también sería aceptable.