我一直在阅读IdentityServer4的快速入门,但对于如何为SPA实施隐式流程仍然有一些疑问。
我的设置如下:
IdentityServer4作为令牌服务器 需要保护的API(使用WebAPICore) 使用Angular的SPA
我的问题很简单:用户输入用户名和密码的登录屏幕是IdentityServer提供的登录屏幕,还是Angular应用程序提供了此登录窗口?如果要使用IdentityServer提供的登录窗口,最佳做法是直接重定向到该窗口,还是应将其显示在Angular应用程序的iframe中?
答案 0 :(得分:0)
如果使用隐式(或任何其他基于浏览器的流程,例如混合或授权代码),则登录UI位于IDP上,您将进行完整的浏览器重定向以执行交互式身份验证。建立IDP会话后,可以在后台静默刷新用于调用您的后端的访问令牌。
还值得注意的是,JavaScript客户端的隐式流现在已被弃用,您应该将PKCE与hybrid一起使用。最新版本的oidc-client-js支持开箱即用的混合功能以及自动静默令牌更新和会话监视。