首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >允许支持者以另一个用户的身份登录。

允许支持者以另一个用户的身份登录。
EN

Stack Overflow用户
提问于 2019-05-23 11:28:15
回答 2查看 729关注 0票数 3

我们目前有一个身份服务器4应用程序。使用实体框架核心和asp .net标识。

我们有一群支持者,他们需要能够访问我们的用户帐户,以帮助他们解决电话中的问题。我们的用户无法理解如何使用团队查看器。因为他们中的大多数都是移动的,而且当时只有一部手机。

我知道所有的安全后果,让其他人签署进入您的帐户,但这是没有办法的。我们的客户已经接受,我们的支持者可以连接到他们的帐户时,他们的要求。我们相信,我们的支持者只有在接到要求时才这样做。

当前的解决办法及其问题

当前的黑客创建了一个只有我们的支持者才能使用的api端点,因为它已经被锁定,所以只有那些拥有支持者权限的人才能使用它。他们向用户发送电子邮件,我们黑了他们,创建一个访问令牌,然后应用程序(Web版本)使用它来表现得就像有问题的用户一样。

这个解决方案是由我的前任创建的,主要是通过获取支持者访问令牌,并将所有声明替换为这个支持者id,然后将其返回到应用程序。我讨厌这个解决方案的许多水平,它非常不稳定,每次我看这个方法,它打破了。目前,它不能工作,因为观众的蛤蜊是不正确的,因为某些原因。

我想做什么

我真的很想以一种更少黑客的方式来做这件事。那么,是否有一种方法可以让用户登录到应用程序,而不需要他们--即进行签名并返回访问令牌?

我试过

代码语言:javascript
运行
复制
await _signInManager.SignInAsync(user, false, null);

但是我想不出如何让它返回访问令牌。

我真正想做的是有能力让支持者登录到任何一个人的帐户,但以某种方式安全地进行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-23 11:50:22

用户帐户的问题是它不绑定到一个应用程序。因此,通过允许其他人使用该帐户登录,您还可以让他们访问其他应用程序。作为解决办法,您可以使用“公共”帐户,如engineer_01、engineer_02等。

但是,这可能根本没有必要。你真正想要的IMO是模仿用户,而不是‘黑客’的帐户。

一种方法是使用自定义授予类型使用IdentityServer扩展延期补助金

这是如何运作的:

允许为特定客户端/资源模拟用户的已登录用户在新的模拟端点上请求访问令牌。

用户将sub从用户发送到模拟端点,在端点中验证用户和(子)的组合。

当授予访问权限时,返回一个新的(短暂的)访问令牌,该令牌可以用于模拟用户,而不必知道用户的凭据。

访问令牌应该包含端点的信息,以便确定用户是否是模拟的。

票数 3
EN

Stack Overflow用户

发布于 2019-05-23 16:02:18

我们实现了一个模拟功能,它集成到基于浏览器的流标志中。如果具有权限的用户选择以另一个用户的身份登录,那么我们将向他们的IDS4身份验证cookie中添加额外的声明,这将支持在结果令牌中发出额外的声明,这反映了它是一个模拟会话以及原始参与者是谁。

  1. 导航到客户端应用程序
  2. 使用任何凭据登录
  3. 检查是否存在任何模拟权限(如何定义这些权限完全取决于您)
  4. 提示模拟帐户选择(或继续作为自我)
  5. 注册为选定的帐户(有原始参与者的记录)
  6. 重定向到授权端点
  7. 发出令牌并将其重定向回客户端应用程序
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56274215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档