【问题标题】:Implementation concerns regarding IndetityServer4关于 IndetityServer4 的实施问题
【发布时间】:2018-08-03 12:32:17
【问题描述】:

我在以下情况下对 Identityserver4 有一些疑问:

我有许多域(domainA、domainB、domainC 等),我希望它们都使用 Identityserver4 进行身份验证,但我只想要 Identityserver4 的一个实现(使用 asp.net 身份和 EF ) 并让所有域都使用此实现作为客户端。所有域都在以 MS SQL 作为数据库的托管环境中(如果有任何相关性)。

问题 1:

IdentityServer4 是否可以在 domainA 的子文件夹/区域中运行,如果可以,需要哪些步骤才能使其正常工作,例如.well-known 端点中显示的端点?

问题2:

在 domainA 下的子文件夹/区域中托管 Identityserver4 以及让 domainA 使用 Identityserver 对站点其余部分的用户进行身份验证时存在哪些缺陷(如果有),如果有缺陷,如何避免这些缺陷?

允许一个用户这样做而不是那样的授权部分,而另一用户则相反,这不是 Identityserver4 的关注点,但据我所知,我可以在网上找到相应的域/站点自己的责任。为了在每个域/站点中使用 asp.net 身份核心 2 中的角色和角色声明,该域/站点中必须有一个用户,该用户引用 Identityserver4 中的用户,以便域使用 Identityserver4用于身份验证。

问题 3:

如何避免用户必须同时在域和 Identityserver4 中注册,一个注册会更好,而另一个注册会在幕后与参考一起进行?

我希望有人可以回答我的一个或所有问题。欢迎提供相关博客等的链接,但我已经在网上搜索了有用的答案,但没有任何运气 - 希望你们中的一些人拥有比我更好的搜索引擎技能。

【问题讨论】:

    标签: identityserver4 implementation


    【解决方案1】:

    第一季度

    是的,你可以。 IdentityServerOWIN 托管环境,因此如果您设置它,它将作为您的 domainA 的 middleware 工作。拥有公共端点完全取决于您的域A。


    第二季度

    您可能会遇到的问题可能是性能问题。您的 domainA 将接收来自 domainB 和 domainC 的请求,当然包括 domainA 本身。并且IdentityServer 的检查(例如身份验证、验证、颁发令牌)显然是耗时的工作与普通的 HTTP 请求相比

    虽然middleware 正在发挥作用,但其性能会比 domanB 和 domainC 略低。但这是必要的、不可避免的事与愿违,因为您在 HTTP 窗口中添加了另一层来处理服务端点上的身份验证/授权/验证问题。

    如果流量变得比您预期的要大得多并且您觉得您的授权服务器正在拖累整个服务,您可能需要扩展您的 IdentityServer。我建议您事先进行一些压力测试,并比较使用身份服务的服务和不使用身份服务的服务之间的性能差异。


    第三季度

    这可能是高度自以为是的答案。但正如你提到的ASP.NET IdentityEF 我想你已经知道答案了。看来您要在自己托管的DBMS 中管理令牌和身份信息。然后考虑使用可能的重复注册完成。只要您做得对,您的DBMS 和存储和获取此类数据的实现将为您完成。

    如果您不打算将DBMS 用于身份和令牌数据,而是使用缓存或文件系统,那么您将不得不在实现中投入一些精力以保证concurrency 开启此类数据的交易。

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多