0

有没有办法允许某些用户(可能具有admin角色和适当的权限)将 React 应用程序作为另一个用户进行身份验证?

用例将允许支持人员以其他用户身份进行身份验证,以查看他们看到的应用程序,并调试或帮助用户解决他们的问题。

谢谢!

4

1 回答 1

1

这是一个很好的问题和一个常见的要求,但不幸的是可能难以实施。最终,尽管这种类型的解决方案总是涉及 API 中的声明和工作。

认证标准

值得关注不断发展的标准,例如On Behalf Of Flow,看看它们是否能提供帮助。但是,它们可能不符合您的要求或尚未得到您的供应商的支持。

验证

支持用户“以业务用户身份登录”并不正确,因为用户始终使用自己的凭据登录。在正常情况下,这可能需要包含这些声明的访问令牌,并且用户只能在其令牌包含此范围时进行订单更改:

  • 主题:businessUser1
  • 角色:客户
  • 范围:openid 订单

冒充

在模拟情况下,支持人员将使用他们自己的凭据登录,然后可能会收到带有这些声明的访问令牌。您也许可以使用这些声明来仅允许支持用户执行某些操作:

  • 主题:supportUser1
  • 作用:支持
  • can_impersonate: 真
  • 范围:openid 订单

理想情况下,最好在身份验证/令牌颁发时用“can_impersonate”声明提示用户。这将涉及弹出一个屏幕,可以在其中输入业务用户,然后将其包含在访问令牌中并进行审核。

可扩展性

通常,尽管这需要自定义身份验证操作,但更高级的身份验证情况通常需要此操作。如果您的提供商不支持此功能,那么您可能需要在您的应用程序中做更多的工作,例如:

  • 登录完成后调用屏幕
  • 将业务用户存储在您的 API 数据中
  • 或许还要审核 API 数据中的模拟事件
于 2021-06-08T19:29:12.260 回答