Sitecore:如何以及为何使用 CD 中的 Sitecore 虚拟用户(内容交付)

Sitecore: How and why use Sitecore Virtual Users in CD (content Delivery)

我遇到过一些在 CD(内容交付)上使用虚拟用户的 sitecore 实现,其中站点具有成员资格(登录状态)。

我们正在将网站从 java CMS 迁移到 sitecore,并使用 azure ADB2C 和社交登录提供程序登录状态。登录后,用户将被重定向到带有令牌的 Sitecore CD。 根据用户会员类型,我们需要在整个网站上显示隐藏的菜单项和小部件。

我知道使用虚拟用户的优势之一是 sitecore 用户无需支付许可费用。

感谢是否有人可以帮助我理解以下内容:

  1. 我们还有哪些场景需要用到CD虚拟用户?
  2. 考虑到我们可以在 Session 中管理用户详细信息,使用虚拟用户有什么优势?
  3. 在 CD 中使用虚拟用户有什么缺点?
  4. 使用虚拟用户和站点核心角色来保护菜单项和页面是否是最佳选择?或者从 asp.net linq 查询等应用安全性?

谢谢。

虚拟用户的概念可能与您的理解略有不同。将它们视为可以从任何地方获取其数据的用户的临时表示,例如你的 azure 供应商。

如果没有虚拟用户,默认情况下所有用户详细信息都存储在核心 aspnet 成员表中。虚拟用户允许人们 'login' 但不会创建关联的数据库记录。

一个听起来像您正在使用的常见场景是用户和角色数据保存在别处 (azure/ad)。在查询此数据时,会创建一个具有相关角色/配置文件等的虚拟用户。然后,当 sitecore 评估安全性时,将使用此虚拟用户数据。

与会话之类的东西相比,使用它们的优势在于所有站点核心安全层都将尊重其中保存的数据。如果你做了一些需要大量开发工作的定制。

虚拟用户和基于许可证的用户之间没有 link - 许可证通常允许同时编辑 cms,这与 'users' 的概念不同。

我们还有哪些场景需要使用CD虚拟用户?

  • 可能有几种情况,请考虑以下情况: 您有通用的身份验证机制,您将用户信息存储到其他一些已经被其他应用程序使用的数据库中。现在,如果您希望用户能够使用相同的凭据登录而无需在 Sitecore 应用程序中创建相同的用户,那么您可以使用此功能。针对其他数据库验证用户,如果有效则在 sitecore 中创建虚拟用户。

考虑到我们可以在 Session 中管理用户详细信息,使用虚拟用户有什么优势?

  • 虚拟用户与Sitecore 中的物理用户无异。它可以完成普通用户可以完成的所有技巧。 另一个优点是如果用户数量增加而不是物理创建用户,可以使用虚拟用户。

在 CD 中使用虚拟用户有什么缺点?

  • 在正常使用情况下,使用CD虚拟用户没有任何缺点。考虑到共享环境的可扩展高使用率,A​​ccessResultCache 可能会以异常方式运行。
  • 另一个缺点是如果 CD 服务器有单独的核心数据库,则需要将角色发布到 CD 数据库服务器。

使用虚拟用户和站点核心角色来保护菜单项和页面是否是最佳选择?或者从 asp.net linq 查询等应用安全性?

  • 我会说虚拟用户。这是整洁干净的方法。但您需要正确维护角色。

更多信息请参考:https://pratiksatikunvar.wordpress.com/2015/06/24/sitecore-security-module-in-production-site/