作为管理员,代表另一个用户获取访问令牌

问题描述 投票:1回答:1

我正在尝试实现IdentityServer4。当我们是管理员时,我们需要具有以其他用户身份登录的功能。

我已经为普通用户设置了登录功能,但是我想要一个特定的端点,管理员可以在其中输入普通用户的用户名/ ID。

如何在IdentityServer4和常规的oauth2中实现这一点?

oauth oauth-2.0 identityserver4
1个回答
2
投票

这不在OIDC / OAuth2交互作用的范围内,但是对于如何在结果令牌/声明中表示这种情况存在一些约定。阅读https://tools.ietf.org/html/rfc8693(尤其是act声明位)以获取一些启发。

我们通过登录UI流程来完成此操作,但是该模型是用户可以显式授予其他用户模拟权限。如果您在登录时获得了有效的模拟授权,则系统会在登录流程中提示您选择其他帐户或以您自己的身份继续。根据您的情况,您可以识别管理员用户,并为他们提供模拟您喜欢的人的选项。

[如果用户选择了假冒者,则它将更改当前会话以代表该用户,而且还将与原始用户/会话有关的声明存储在演员声明(act)中,并且还将amr声明添加为[C0 ]。然后,我们将这些声明提供给客户,以便他们知道使用了模拟的事实,然后可以例如将该信息添加到审核日志等中。我们还通过电子邮件通知模拟的用户并限制对帐户设置的访问-即冒名顶替者只能以其他用户身份登录客户端,不能更改其帐户设置。

© www.soinside.com 2019 - 2024. All rights reserved.