IdentityServer:客户端级别的模拟
Posted
技术标签:
【中文标题】IdentityServer:客户端级别的模拟【英文标题】:IdentityServer: Impersonation at Client Level 【发布时间】:2017-08-28 07:26:19 【问题描述】:我需要能够在应用程序/客户端级别模拟用户。 用例如下:
用户决定公开共享仪表板(包含非常频繁刷新的数据、自定义组织......) 用户将链接发送给其他人(其他人可能不是我的应用程序的用户)。该链接包含仪表板的 ID 和一些令牌,以防止人们只是尝试一下。 当接收方浏览到该链接时,我们会验证仪表板是否存在并且公共共享以及令牌是否已激活。 然后,根据仪表板配置,我们需要调用我们的 API(使用 Bearer 令牌)以获取仪表板的最新数据。 我希望客户端应用能够模拟仪表板的“所有者”,以便能够调用其名称上的 API 来获取数据。我阅读了其他问题/票证,但他们都提到了一个用户冒充另一个用户,但我找不到任何证据表明实际上可以做我正在寻找的事情。
你能把我带到正确的方向吗?
编辑:我想说我不希望仪表板链接的接收者看到任何登录屏幕,这对他来说应该是完全透明的
【问题讨论】:
【参考方案1】:我们找到了实现我们需要的方法。
基于 this post 和那里引用的示例,我们使用了 CustomGrant 验证器。
【讨论】:
【参考方案2】:听起来您需要一个服务器应用程序来授权为所有者。在服务器上,您可以为授权保密,但不能在客户端。 然后,服务器应用程序可以有一个自定义授权客户端,它代表所有者获取访问令牌,并在仪表板公开时使用它来调用数据 API。
这是 OAuth2.0,顺便说一句,而不是 OIDC。
【讨论】:
以上是关于IdentityServer:客户端级别的模拟的主要内容,如果未能解决你的问题,请参考以下文章
谁为 Identity Server 4 提供客户端 ID 和客户端密码?