IdentityServer:客户端级别的模拟
IdentityServer: Impersonation at Client Level
我需要能够模拟 app/client 级别的用户。
用例如下:
- 用户决定 public 共享仪表板(包含非常频繁刷新的数据、自定义组织,...)
- 用户发送 link 给其他人(其他人可能不是我的应用程序的用户)。 link 包含仪表板的 ID 和一些令牌,以防止人们只是尝试一下。
- 当接收者浏览到 link 时,我们验证仪表板是否存在并且 public 共享以及令牌已被激活。
- 然后,根据仪表板配置,我们需要调用 API(使用 Bearer 令牌)以获取仪表板的最新数据。
我想让客户端应用程序能够模拟仪表板的 "owner",以便能够调用其名称上的 API 来获取数据。
我读了其他 issues/tickets,但他们都提到了一个用户冒充另一个用户,但我找不到任何证据表明实际上可以做我正在寻找的事情。
你能带我去正确的方向吗?
编辑:我想说我不希望仪表板的接收者 link 看到任何登录屏幕是没有用的,这对他来说应该是完全透明的
听起来您需要一个服务器应用程序才能授权为所有者。在服务器上,您可以为授权保密,但不能在客户端中。
然后服务器应用程序可以有一个自定义授权客户端代表所有者获取访问令牌,并在仪表板为 public.
时使用它来调用数据 API
顺便说一句,这是 OAuth2.0,而不是 OIDC。
我们找到了实现所需的方法。
基于 this post 和此处引用的样本,我们使用了 CustomGrant 验证器。
我需要能够模拟 app/client 级别的用户。 用例如下:
- 用户决定 public 共享仪表板(包含非常频繁刷新的数据、自定义组织,...)
- 用户发送 link 给其他人(其他人可能不是我的应用程序的用户)。 link 包含仪表板的 ID 和一些令牌,以防止人们只是尝试一下。
- 当接收者浏览到 link 时,我们验证仪表板是否存在并且 public 共享以及令牌已被激活。
- 然后,根据仪表板配置,我们需要调用 API(使用 Bearer 令牌)以获取仪表板的最新数据。 我想让客户端应用程序能够模拟仪表板的 "owner",以便能够调用其名称上的 API 来获取数据。
我读了其他 issues/tickets,但他们都提到了一个用户冒充另一个用户,但我找不到任何证据表明实际上可以做我正在寻找的事情。
你能带我去正确的方向吗?
编辑:我想说我不希望仪表板的接收者 link 看到任何登录屏幕是没有用的,这对他来说应该是完全透明的
听起来您需要一个服务器应用程序才能授权为所有者。在服务器上,您可以为授权保密,但不能在客户端中。 然后服务器应用程序可以有一个自定义授权客户端代表所有者获取访问令牌,并在仪表板为 public.
时使用它来调用数据 API顺便说一句,这是 OAuth2.0,而不是 OIDC。
我们找到了实现所需的方法。
基于 this post 和此处引用的样本,我们使用了 CustomGrant 验证器。