我的Web应用程序(App1)将用户凭据存储在DB中。 App1需要与微服务app2对话(使用相同的DB)。 我没有得到如何验证app1在app2上发送的请求的身份?
我的方法:-
将用户名/密码(由客户端发送到app1)发送到app2。如果成功生成新的jsessionId并将其发送回app1,则App2将在数据库中进行身份验证。 现在,app1需要与app2通信,它将使用app2验证并允许的同一会话。这种方法看起来不错还是还有其他更好的方法?
答案 0 :(得分:0)
有几种方法各有利弊
您正在做的事情是简单的身份验证,看起来很简单,呼叫是代表用户执行的,但是您需要传递用户凭据,并且没有简单的方法来验证app2的会话仍然有效或不是
另一种方法是使用令牌(例如jwt令牌),app2可以在不传递用户凭据或会话cookie(令牌可以由app1或身份提供者签名)的情况下进行验证,或者使用oauth令牌(每个应用可以使用通用的IdP(身份提供商)验证令牌
app1可以通过自己的应用程序凭据进行身份验证(例如,当app2位于api网关后面时)
因此有多种选择,您可以选择一种以适合您的环境和长期解决方案