IdentityServer:客户端级别的模拟

时间:2017-08-28 07:26:20

标签: c# impersonation identityserver3

我需要能够在应用/客户端级别模拟用户。 用例如下:

  • 用户决定公开共享仪表板(包含经常刷新的数据,自定义组织......)
  • 用户向其他人发送链接(其他人可能不是我的应用的用户)。该链接包含仪表板的ID和一些令牌,以防止人们只是试一试。
  • 当接收者浏览到链接时,我们验证仪表板是否存在以及公共共享是否已激活以及令牌。
  • 然后,根据仪表板配置,我们需要调用我们的API(带有承载令牌)以获取仪表板的最新数据。 我希望客户端应用程序能够模仿仪表板的“所有者”,以便能够在其名称上调用API以获取数据。

我阅读了其他问题/门票,但他们都提到冒充其他用户的用户,但我找不到任何证据表明它实际上可以做我正在寻找的事情。

你能以正确的方向开车吗?

编辑:我想我说我不希望仪表板链接的接收者看到任何登录屏幕是没有用的,这对他来说应该是完全透明的

2 个答案:

答案 0 :(得分:0)

听起来您需要一个服务器应用程序来授权作为所有者。在服务器上,您可以为授权保密,但不能在客户端保密。 然后,服务器应用程序可以拥有一个自定义授权客户端,代表所有者获取访问令牌,并在仪表板公开时使用它来调用数据API。

这是OAuth2.0,顺便说一下,而不是OIDC。

答案 1 :(得分:0)

我们找到了实现我们需要的方法。

基于this post及其引用的样本,我们使用了CustomGrant验证器。