我正在尝试构建一个多租户架构,golang其中会有不同的服务Service-A,Service-B每个服务将在不同的服务器上运行,我希望用户有一个single sign-in 解决方案并在提供的所有服务中获得身份验证。
就像什么Amazon AWS or Google一样,它有许多不同的服务,如Amazon Cloud Front, Amazon EC2,Amazon S3并且所有服务都通过单个登录和注销从一个服务结果进行身份验证log out from all connected services。
我正在尝试在 中实现这一点golang,到目前为止,我发现了Open-id Connect coreos/dex, 但它缺少解释其 API 和体系结构的文档。
设计这种认证系统的最佳架构是什么?
我认为使用JWT token我可以实现它。Is this architecture will be secure or there any better solution for this?
我的方法
-----------------
| | shared
| | env file
|SERVICES A |---------------|
AUTH HEADER | | |
JWT TOKEN | | |
|---------------> ----------------- |
--------- ------------------ shared |
| | | SERVICE B | env file |
|Login | -----------| |----------- |
|Browser| | | | |
--------- ------------------ | |
| | | |
Login| |"JWT_TOKEN RESPONSE" | |
| | | |
-------------- enviroment file ------------
| |----------------------------------| |
| Main Server| | |
| | |JWT_SECRET|
-------------- |="secret" |
------------
白衣染霜花
相关分类