猿问

golang 中的单点登录身份验证

我正在尝试构建一个多租户架构,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" |          

                                                    ------------


MYYA
浏览 152回答 1
1回答

白衣染霜花

虽然您的解决方案肯定会奏效。它可能会使编写应用程序的浏览器/移动/通用前端部分变得更加复杂。而且可能更慢。例如,您最终可能会在前端有效地连接数据。您向服务 A 发出一个请求,然后使用那里返回的信息向服务 B 发出其他请求。这对用户来说是一种糟糕的体验。曾经是 Netflix 和 Soundcloud 等公司开创的新概念,是前端模式的后端。它是每种类型的前端设备的服务器端适配器,可以处理身份验证并将连接聚合到下游服务。
随时随地看视频慕课网APP

相关分类

Go
我要回答