我想使用IdentityServer4作为我自己的Web应用程序的常用登录。
并非所有用户都可以免费使用所有应用,显然我可以让所有应用都拒绝让用户访问它们。
拥有一个共同的#34似乎更优雅;这个应用程序不会为你激活"页面集中在身份服务器中。这样,我只需要实现一次该页面。身份服务器必须知道哪个用户可以访问哪个客户端,但这在我的场景中是合理的:无论如何,它们都是我自己的应用程序。
我不确定将测试挂钩的地方是什么。它不能是登录页面,因为用户可能已经从他有权访问的客户端登录到身份服务器到。
答案 0 :(得分:2)
我不会采用这种方法,但我不知道你的应用程序的设计。
我认为该网址可能会让用户感到困惑。由于它是IdentityServer的URL,他们看到了"此应用程序未被激活,并且#34; 消息。这对用户意味着什么以及从那里去哪里?
此外,IdentityServer旨在验证用户身份,而不是授权用户。因此,将此类逻辑移至IdentityServer似乎并不正确。这听起来像是额外的工作。
保持简单。保持授权靠近资源并使用消息创建一个页面。将其复制到您的所有应用程序,css完成其余的工作。
并使用默认行为。如果匿名用户访问安全方法,则用户将自动重新路由到登录页面。如果经过身份验证的用户访问了无法访问的方法,则会重新路由到默认(应用)帐户/拒绝页面。
您可以覆盖启动配置中的路径:
.AddCookie("Cookies", options =>
{
options.AccessDeniedPath = "/accountdenied";
})
您可以显示&#34;此应用未针对您<#em; 页面激活,或者您可以从那里开始并使用代码重定向到IdentityServer页面。可以添加其他信息来自定义页面。
如果更符合您的设计,也许您可以进入IdentityServer的页面。我没有尝试过,所以我不知道是否可能。
但无论如何我会在应用程序中保留授权逻辑。