鉴于Identity Server 4,我们是否可以使用单个用户身份验证服务器实现不同应用程序使用的单一SignOn?
如果是这样,我们怎么做?有哪些可用的参考资料?
答案 0 :(得分:0)
实际上,启用单点登录没有什么特别的事情。默认情况下可用,但并非在所有情况下都可用。
为了使SSO起作用,只有一条规则:
用户必须登录IdentityServer网站,因为这是必须放置SSO cookie的地方。
SSO无法用于grant types,不需要用户登录IdentityServer网站。
工作原理:
用户访问webapp1,单击登录按钮,然后重定向到IdentityServer网站以进行登录。 IdentityServer将扫描SSO cookie,但由于这是第一次并且用户尚未通过身份验证,因此将找不到它。
成功登录后,将存储SSO cookie(在IdentityServer网站上),并将经过身份验证的用户返回到webapp1。
然后,用户访问webapp2。只要不要求用户进行身份验证,该用户将是匿名访问者。
当用户单击登录按钮或访问受保护的页面(例如,受[Authorize]
属性保护的页面)时,需要进行身份验证。这将触发身份验证流程,该流程会将用户重定向到IdentityServer网站。
同样,IdentityServer将扫描SSO cookie,但是这次找到了。已经通过身份验证的用户不需要再次登录,而是以已认证用户的身份返回网站。
请注意,客户端可以通过设置prompt=login参数来否决SSO cookie。
还要注意,Cookie不是跨浏览器的。 使用其他浏览器访问webapp2将要求用户再次登录,因为此浏览器无法使用SSO cookie。
答案 1 :(得分:-1)
是的,您可以,这就是IdentityServer4用于(SSO和身份验证)。 有documentation和一些samples。