Estratégia de autenticação de microsserviço

Estou tendo dificuldades para escolher uma estratégia de autenticação decente / segura para uma arquitetura de microsserviço. O único SO post que encontrei no tópico é este:Logon único na arquitetura de microsserviço

Minha idéia aqui é ter em cada serviço (por exemplo, autenticação, mensagens, notificação, perfil etc.) uma referência única para cada usuário (logicamente,user_id) e a possibilidade de obter o usuário atualid se estiver logado.

Das minhas pesquisas, vejo duas estratégias possíveis:

1. Arquitetura compartilhada

Nesta estratégia, o aplicativo de autenticação é um serviço entre outros. Mas cada serviço deve poder fazer a conversãosession_id =>user_id então deve ser simples demais. Por isso pensei em Redis, que armazenaria a chave: valuesession_id:user_id.

2. arquitetura de firewall

Nessa estratégia, o armazenamento da sessão realmente não importa, pois é tratado apenas pelo aplicativo de autenticação. Então ouser_id pode ser encaminhado para outros serviços. Pensei no Rails + Devise (+ Redis ou cache de memórias, ou armazenamento de cookies etc.), mas há inúmeras possibilidades. A única coisa importante é que o Serviço X nunca precisará autenticar o usuário.

Como essas duas soluções se comparam em termos de:

segurançarobustezescalabilidadefácil de usar

Ou talvez você sugira outra solução que não mencionei aqui?

Gosto mais da solução nº 1, mas não encontrei muita implementação padrão que me protegesse no fato de estar indo na direção certa.

Espero que minha pergunta não seja fechada. Eu realmente não sei onde mais perguntar.

desde já, obrigado

questionAnswers(4)

yourAnswerToTheQuestion