微前端的 IdentityServer4 访问令牌

问题描述

我正在使用 IdentityServer4、ASP.NET Core 和 Angular 为我的一个 Web 应用程序开发安全解决方案,并想知道我所考虑的方法是否正确。

该应用程序具有可以加载多个 SPA(微前端)的 Shell 接口(在 Angular 中作为单页应用程序开发的客户端)。此 App Shell 负责与 IdentityServer4 通信的身份验证。用户可以选择其中一个微前端 (MFE),将其作为子应用加载到 App Shell 中。 App Shell 和 MFE 都是 IdentityServer4 中的客户端。 步骤顺序如下:

  1. 将向用户提供登录页面以登录 App Shell 界面。
  2. 用户登录后,IdentityServer4 会提供 ID 令牌和访问令牌(仅适用于 App Shell)。在这个阶段,我们不知道用户会预先加载到 App Shell 中的哪个微前端。
  3. 然后,App Shell 将加载所有可供用户选择的 MFE。
  4. 这些 MFE 中的每一个都将有其关联的微服务。
  5. 每个用户都将拥有与该 MFE 相关的特定权限集。例如: 一种。对于微前端‘A’,用户‘X’可以拥有“项目经理”角色相关权限 湾对于微前端‘B’,同一个用户‘X’可以拥有“Guest User”角色相关的权限。
  6. 由于这些 MFE 中的任何一个都可以根据用户选择按需加载,并且根据“最低权限原则”,我们不希望在访问令牌时添加所有 MFE 相关范围登录(来自第 2 步)。
  7. 当 MFE 加载到 App Shell 时,会使用来自令牌端点的“自定义授权”请求新的访问令牌。
  8. 与该 MFE 及其关联微服务的进一步交互将通过上述访问令牌(在步骤 7 中生成)进行控制。
  9. 如果用户卸载 MFE,则与其关联的访问令牌将被丢弃。
  10. 如果用户选择另一个 MFE,则从步骤#7 重复该过程。 基本上,在任何时候,我们都会有两个访问令牌,一个用于 App Shell,另一个用于加载的 MFE。我们想知道我们在第 6 步中实施的方法是否符合安全最佳做法。

感谢有关上述方法或解决我们问题的任何其他替代方法的任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...