Single sign on 使用Identity Server 4实现单点登录

Single sign on 使用Identity Server 4实现单点登录,single-sign-on,identityserver4,Single Sign On,Identityserver4,给定一个Identity Server 4,我们可以通过一个用户身份验证服务器实现不同应用程序使用的单一登录吗 如果是的话,我们怎么做?是否有相同的参考资料?可以,这就是IdentityServer 4的用途(SSO和身份验证)。 有很多,还有一些 事实上,要启用单点登录,您无需做任何特殊的事情。默认情况下,它是可用的,但并非适用于所有场景 要使SSO正常工作,只有一条规则: 用户必须登录IdentityServer网站,因为那里必须放置SSO cookie SSO不适用于不需要用户登录Iden

给定一个Identity Server 4,我们可以通过一个用户身份验证服务器实现不同应用程序使用的单一登录吗


如果是的话,我们怎么做?是否有相同的参考资料?

可以,这就是IdentityServer 4的用途(SSO和身份验证)。
有很多,还有一些

事实上,要启用单点登录,您无需做任何特殊的事情。默认情况下,它是可用的,但并非适用于所有场景

要使SSO正常工作,只有一条规则:

用户必须登录IdentityServer网站,因为那里必须放置SSO cookie

SSO不适用于不需要用户登录IdentityServer网站的用户


工作原理:

用户访问webapp1,点击登录按钮,并被重定向到IdentityServer网站以进行登录。IdentityServer将扫描SSO cookie,但找不到它,因为这是第一次,而且用户尚未通过身份验证

成功登录后,将存储SSO cookie(在IdentityServer网站上),并将经过身份验证的用户返回到webapp1

然后用户访问webapp2。只要用户不需要进行身份验证,该用户将是匿名访问者

当用户单击登录按钮或访问受保护的页面(例如,受
[Authorize]
属性保护)时,需要进行身份验证。这将触发身份验证流,将用户重定向到IdentityServer网站

IdentityServer将再次扫描SSO cookie,但这次找到了它。经过身份验证后,用户不需要再次登录,而是作为经过身份验证的用户返回到网站

请注意,客户端可以通过设置参数来否决SSO cookie


还请注意,Cookie不是跨浏览器的。使用其他浏览器访问webapp2将要求用户再次登录,因为SSO cookie不适用于此浏览器。

文档或示例中没有显示跨不同客户端的“单点登录”(即每个应用程序一个)…问题:我让SSO工作的唯一方法(我想)在Identity Server配置中将多个重定向ID添加到单个客户端。是这样做的,还是可以使用单独的客户端?当我执行后一种操作时,我会不断被重定向到不同客户端的同意页面。显然,如果它们都是同一个客户机,就没有这样的重定向。那么,它使用RedirectURI集合来做SSO吗?Cheers@onefootswill通常一个客户端只有一个实例,其中一个重定向url就足够了。您可以对多个实例使用相同的客户端id,在这种情况下,您可以为每个实例添加重定向url。请注意,重定向url用于验证,以防止从假客户端登录。同意与重定向URL无关。每个clientid的persistendGrants表中存储同意。使用其他clientid需要用户的另一个同意。谢谢。我昨晚意识到我甚至不需要同意屏幕。这不是一项要求,我们不允许第三方应用访问任何内容。这只是我们的应用程序。删除“同意”屏幕时,即使为每个客户端使用单独的客户端配置,也可以获得SSO体验(在我目前的测试中)。所以,我又回到了为不同的客户端使用不同的客户端配置。到现在为止,一直都还不错