我的计划是在.Net Core 2.1中构建一些单独的WebApi后端应用程序。我还想拥有一个大型前端应用程序(内置于Angular中),该应用程序将使用上述微服务的调用。
因此,在Frontend应用程序中,我将具有一些模块: 登录,MicroSrv1,MicroSrv2等...
登录GUI将使用LoginApi。登录后,我想显示MicroSrv1 GUI(连接到MicroSrv1 Api),MicroSrv2(连接到MicroSrv2 Api),依此类推。
我的想法是:
这是一个好习惯吗?是否只有一个单独的微服务进行身份验证?还是每个微服务都应该内置自己的微服务? 如何在微服务之间共享身份验证令牌并仅使用一个Login Api应用程序?您能给我一些例子吗?
答案 0 :(得分:0)
我不明白为什么每个微服务都有GUI,但是您可以通过使用共享数据保护密钥为每个微服务添加身份验证来实现。
您可以通过将数据保护配置为使用共享文件夹作为密钥存储区,或者实现自己的共享存储库来实现这一目的。
答案 1 :(得分:0)
从身份验证服务中,您将根据用户角色和与其关联的权限返回JWT令牌。
在客户端,您将解析JWT令牌,并基于权限,仅显示适用于用户的屏幕,在服务器端,您将读取每个REST调用中的访问权限,并且如果用户尝试在没有权限访问权限的情况下访问服务,则会出现未经授权的错误