Identity Server 4 身份验证太慢

Posted

技术标签:

【中文标题】Identity Server 4 身份验证太慢【英文标题】:Identity Server 4 Authentication Too Slow 【发布时间】:2019-08-17 00:56:06 【问题描述】:

我刚刚在这里为 .Net Core 试用了身份服务器 4 的示例

https://github.com/IdentityServer/IdentityServer4.Samples

在快速入门中,我测试了 ImplicitFlowAuthentication。

问题是,有时到达身份服务器应用程序上的登录页面需要很长时间。

我正在我们公司的 Intranet 中对此进行测试,并且我正在寻找一种解决方案来集中我们所有应用程序的身份验证。

开箱即用我真的很喜欢身份服务器 4 的灵活性,但我不明白为什么到达身份服务器 4 需要超过 20 秒。今天访问它花了不到一秒,但昨天花了使用示例解决方案登录和注销几乎需要一分钟。

另一方面,我已经有了使用 Web API 进行 Jwt 身份验证的工作解决方案,但我必须处理许多自定义并处理我如何在客户端上存储令牌。

所以我有两个选择。

选项 1:使用身份服务器 4 并尝试尽可能优化它。

选项 2:继续使用 Jwt Web Api 身份验证并尽可能保护它。

如果有人可以帮助我选择以及为什么我的情况,请这样做。我的目标是让我们公司内联网上的用户无需每次都登录即可访问每个应用程序,并避免为每个应用程序重复数据。此外,用户通过 LDAP 进行验证,我看到 IdentityServer4 也有一个扩展。

如果有更多选择请指教。

编辑

为了测试 IS4,我以唯一用户身份在本地运行它并处于调试模式。我实际上是在尝试找出 IS4 是否有一些可能会降低性能的配置

【问题讨论】:

如果您不提供有关您的确切问题的信息,我们如何提供帮助?哪里慢了?开发系统?生产?有多少用户?多少请求?你检查网络问题了吗?你定制了吗?您是否处于调试模式(F5 模式、Visual Studio)? 我只是作为调试模式下的唯一用户在本地运行示例。我想知道的是,应用程序本身是否真的有一些东西会减慢重定向 调试模式要慢很多,但是20秒听起来有点过分,2-4秒更真实,第一次执行时5-8秒因为抖动。分离调试器(或 Ctrl+F5) 【参考方案1】:

只需在启动主项目之前安装 Redis 服务器并启动它 https://github.com/abpframework/abp/issues/2764

【讨论】:

好吧,这解决了我使用带有分离 IdentityServer 的 adp 角度模板的问题。如果无法选择安装 Redis,这也是另一种选择:github.com/abpframework/abp/issues/5708#issuecomment-703977488

以上是关于Identity Server 4 身份验证太慢的主要内容,如果未能解决你的问题,请参考以下文章

.Net Core 自定义身份验证使用 API 密钥和 Identity Server 4

如何在 Identity Server 4 中使用主域进行 Openid 身份验证?

Identity Server 3 没有保留身份验证 cookie

移动和 Web 应用程序的 Identity Server3 身份验证

Identity Server 4 无法验证来自 localhost 的受保护 API 的令牌

带有 EF 核心的 Identity Server 4