마이크로 서비스 아키텍처를위한 적절한 / 보안 인증 전략을 선택하는 데 어려움을 겪고 있습니다. 이 주제에서 찾은 유일한 SO 게시물은 다음과 같습니다 .Microservice Architecture의 싱글 사인온
내 생각은 각 서비스 (예 : 인증, 메시징, 알림, 프로필 등)에서 각 사용자에 대한 고유 한 참조 (논리적으로 그다음에 그 user_id
와 같은)와 현재 사용자의 id
로그인 가능성을 얻는 것 입니다.
연구 결과 두 가지 가능한 전략이 있습니다.
1. 공유 아키텍처
이 전략에서 인증 앱은 다른 서비스 중 하나입니다. 그러나 각 서비스는 변환 session_id
=>을 수행 user_id
할 수 있어야하므로 간단해야합니다. 그래서 Redis에 대해 생각한 이유는 key : value 저장하는 것 session_id:user_id
입니다.
2. 방화벽 아키텍처
이 전략에서 세션 저장소는 인증 앱에서만 처리되므로 실제로 중요하지 않습니다. 그러면 user_id
다른 서비스로 전달 될 수 있습니다. Rails + Devise (+ Redis 또는 mem-cached 또는 쿠키 스토리지 등)를 생각했지만 많은 가능성이 있습니다. 중요한 것은 Service X가 사용자를 인증 할 필요가 없다는 것입니다.
이 두 솔루션은 다음과 같은 관점에서 어떻게 비교됩니까?
- 보안
- 견고성
- 확장 성
- 사용의 용이성
아니면 내가 여기서 언급하지 않은 다른 해결책을 제안 할 것입니까?
나는 솔루션 # 1을 더 좋아하지만 올바른 방향으로 가고 있다는 사실을 보장하는 많은 기본 구현을 찾지 못했습니다.
내 질문이 닫히지 않기를 바랍니다. 물어볼 다른 곳은 정말 모르겠습니다.
미리 감사드립니다