authentication - 是否可以在不重定向到外部登录页面的情况下进行SPA身份验证

标签 authentication single-page-application identityserver3 openid-connect identityserver4

我目前正在开发可连接到大量webAPI的SPA应用程序。这些API要求用户登录,因此我开始使用OpenServer深入研究Openid Conect和OAuth2示例。

由于SPA的原因,它们都要求将隐式授予用于检索access_tokens。 token 刷新是使用隐藏的iframe连接到身份验证服务器来处理的。

我从这种方法中了解到o更新您的access_token的是, session 是在身份验证服务上维护的。隐藏的iframe进入身份验证服务器, session 仍处于事件状态,提供了新的access_token。

所有这些对我来说都很不错,除了(对于UX reasosn),我的用户需要重定向到身份验证服务器页面以提供凭据这一事实除外。

我的SPA应用程序是否有可能将凭据发送到身份验证服务器,获取access_token,然后使用隐藏的iframe进行刷新以进行静默更新(我们显然不希望用户每15分钟或每小时保持一次通知凭据) ..)。

如果出于安全原因这是 Not Acceptable ,请您解释一下原因?

最佳答案

从技术上讲,可以使用“resource owner password flow”,但是在该模型中,身份标识提供者不能信任您的应用程序,也不会为您的用户创建 session (稍后使用静默更新)。因此,这种非交互式方法并不是真正的SSO。对于2019年,对于任何Web应用程序(例如Angular SPA),建议的流程都是带有PKCE扩展名的Code flow,如herethere所述。

关于authentication - 是否可以在不重定向到外部登录页面的情况下进行SPA身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817432/

相关文章:

asp.net - 基于表单的身份验证在 .Net 2.0 和 .Net 4.0 应用程序之间不起作用

c# - Web API 自定义身份验证过滤器

javascript - nuxtjs中如何控制路由渲染

c# - 静默刷新在 OPTIONS 预检上进行身份验证,但不在 GET 到 UserInfo 端点上进行身份验证

PHP 登录表单不会使用正确的凭据登录用户

php 数据库帮助,数据库托管在与 Web 主机不同的服务器上

java - 一旦我从 gwt 中的一个选项卡注销,如何从所有打开的选项卡注销

facebook - 单页网站、搜索引擎优化和社交媒体共享按钮

identityserver3 - 我将如何生成身份服务器签名证书

rsa - 使用 at_hash 验证访问 token