将经过身份验证的用户转移到SPA,而不必强迫他们重新输入其凭据

时间:2019-03-21 15:26:46

标签: oauth identityserver4 oidc oidc-client-js

这是我当前的设置:

  • IdentityServer4
  • API(承载者身份验证)
  • SPA页面(oidc-client隐式流重定向到IdentityServer4 Quickstart UI)
  • 本机应用程序(用C#编写)

本机应用程序已经具有用户凭据。我想提供一个从本机应用程序指向SPA页面的Web链接,但是我不想在导航到Web时强制用户再次登录。相反,我想将其当前会话移至网页。

是否可以将访问令牌“注入” oidc客户端? (使用url片段)。还是有其他流程或方法可以使这项工作成功?

1 个答案:

答案 0 :(得分:2)

通常的答案应该是:您的方法不正确
外观:您在本机应用中使用资源所有者密码流,这是错误的。它不是交互式的,这意味着不仅IdP有权访问凭据。通常,建议将这种流程用于测试等目的,而不是用于一般用途。非交互式流的一个巨大限制是它不会创建用户会话。 If you switch your native app to an interactive flow such as Code flow with PKCE extension,它将创建会话。之后,只要身份服务器的会话cookie处于活动状态,您的其他应用就会自动进行身份验证。
NB:如果您不希望改进体系结构,则可以随意执行任何操作,包括在其中提供令牌。链接。该令牌对于调用API仍然有效。但这不是隐式流程,您没有会话,也没有使用静默刷新功能的可能性。