IdentityServer4无重定向
我正在实现IdentityServer4作为我的身份验证服务。IdentityServer4无重定向
将使用该客户端是一个角度应用程序。从我见过的所有例子中,客户端被重定向到身份服务器上的一个页面,该页面在返回给客户端之后返回给客户端。
对于用户的体验,我想保持我的用户页面上的全部时间。因此,这导致了几个问题:
身份服务器UI可以显示在网站内的DIV或iframe中吗?我猜iframe有点皱眉了?
如果上述是不可能的,是有可能主机上的客户端应用程序,而不是身份服务器的登录界面?
我想这是更多的UX组的一个问题,但我会想到的是,在现场保持用户中会带来更好的用户体验,而不是完全重定向他们?
感谢
我见过配置了水疗中心,工作IdentityServer4项目,虽然我没有所有的细节在这里把我的头顶部。
退房这块documentation的:
用于用户 认证定义基于浏览器的JavaScript客户端(例如SPA)和授予的访问和API该客户端使用这样 称为隐式流动以请求身份从 JavaScript的访问令牌:
var jsClient = new Client { ClientId = "js", ClientName = "JavaScript Client", ClientUri = "http://identityserver.io", AllowedGrantTypes = GrantTypes.Implicit, AllowAccessTokensViaBrowser = true, RedirectUris = { "http://localhost:7017/index.html" }, PostLogoutRedirectUris = { "http://localhost:7017/index.html" }, AllowedCorsOrigins = { "http://localhost:7017" }, AllowedScopes = { IdentityServerConstants.StandardScopes.OpenId, IdentityServerConstants.StandardScopes.Profile, IdentityServerConstants.StandardScopes.Email, "api1", "api2.read_only" } };
你可以看到所有重定向回到同一URL。据推测,你的路线将从那里接管。
的UX问题取决于很多的东西,UX必须通过安全考虑得到锻炼。
如果您完全拥有客户端和身份服务器,则可以使用不涉及重定向的ResourceOwnerPasswordFlow
,并允许您的客户端获取用户名/密码并使用它们获取访问令牌。
这种流动但如果你没有自己的客户端,和/或不与凭证信任它,不建议使用。想象一下,一个网站将其登录过程委托给Google/Facebook之类的情况......作为身份(Google/Facebook)的拥有者,您真的不希望您的客户将自己的密码输入到某个随机网站。相反,您可以使用重定向流来呈现一个熟悉且可信的网址,客户可以更快乐地输入他们的详细信息。
所以重定向的问题不是一个简单的“它会带来坏UX”,因为在许多情况下,它是一个更好的UX如果与它带来了增强的安全意识,以重定向涉及。
如果您有多个客户端应用程序,则此和RO不会为您提供SSO。 – Lutando