将SAML_login与拥有超过100万用户的AEM一起使用是多么合适?

问题描述 投票:6回答:1

我正在研究大型企业AEM项目的登录时间缓慢和一些配置文件同步问题。该系统拥有约150万用户。该网站由10个发布者提供服务。

该项目的构建方式是,他们为所有这些最终用户启用了SAML_login,并且我假设有一个第三方IDP,我认为SAML_login与之通信。我不是SSO的专家-SAML_login流程,所以我试图了解这是否是第一步的正确方法。

由于此设置和用户数量,SAML_login调用平均需要15秒。随着用户数量的增加,这种情况一天天变得令人无法接受。更重要的是,这10个发布者之间的同步有时会失败,因此某些用户有时无法按预期使用该系统。

由于用户存储在SCR_login的JCR中,因此您甚至无法从crx浏览器中检查home / users文件夹。由于无法一次显示150万行,因此超时。我的有根据的猜测是,这就是SAML_login调用花费这么长时间的原因。

我遇到了articles,它告诉您如何在AEM上设置SAML_login,这对于在这种情况下使用它是合法的。但是我认为这是有史以来最糟糕的设置,因为对于这种使用场景,JCR并不是设计合理的快速访问数据存储。

到目前为止,我的理解是,这种方法可能很好用,但仅适用于有限数量的用户,但是对于这么多的用户,这是不适用的解决方案。所以我的第一个问题是:我说的对吗? :)

如果我做错了,那肯定是我尚不了解的某个瓶颈,这个瓶颈有待改善吗?

single-sign-on aem saml saml-2.0 jcr
1个回答
0
投票

AEM SAML身份验证处理程序在默认配置下有一些性能限制。当您的浏览器在/ saml_login下向AEM发出HTTP POST请求时,它包含以64为基数编码的“ SAMLResponse”请求参数。 AEM直接处理该响应,并且不与任何外部系统联系。

尽管SAML响应是在AEM本身上处理的,但/ saml_login调用的瓶颈如下:

  1. AEM首次在其中创建用户节点的初始登录-您可以提前创建节点。您可以提前编写脚本以在AEM中创建SAML用户节点(在/ home / users下)。
  2. [在首次创建会话时在每次登录期间-在/home/users/.../{usernode}/.tokens下的用户节点下创建一个令牌节点-可以通过启用encapsulated token feature来避免。] >
  3. 最后,最后一个瓶颈发生在将SAMLResponse XML保存在用户节点下时(以供以后基于SAML的注销使用)。通过不实施基于SAML的注销可以避免这种情况。最新的com.adobe.granite.auth.saml捆绑包支持关闭SAML响应的保存。 Service Pack AEM 6.4.8和AEM 6.5.4包含此功能。要启用此功能,请设置OSGI配置属性storeSAMLResponse = false和handleLogout = false,它不会存储SAML响应。
© www.soinside.com 2019 - 2024. All rights reserved.