从外部 IDp 登录后,用户属性反映在 keycloak 中,但在 alfresco 中仅导入主体属性,有没有办法直接从 keycloak 导入这些属性,如名字、姓氏和电子邮件到 alfresco,而不使用 ldap ?
share-config-custom.xml 或 alfresco-global.properties 中需要提及的任何特定属性吗?
我有 Alfresco Community 的工作解决方案,而不是 Enterprise,所以可以有一些更简单的解决方案。 在 Alfresco Community 中,您可以直接在
alfresco-global.properties
中配置以下属性:
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationAttributeName=department
=
之后的值取自AD。
如果您想要更多属性,您需要覆盖common-ldap-context.xml
。
默认情况下是这个文件:
https://github.com/AlfrescoArchive/alfresco-repository/blob/master/src/main/resources/alfresco/subsystems/Authentication/common-ldap-context.xml
曾经
<bean id="userRegistry" class="org.alfresco.repo.security.sync.ldap.LDAPUserRegistry">
and tag <property name="personAttributeMapping">
您可以定义自己的属性,如下所示:
<entry key="cm:telephone">
<value>${ldap.synchronization.userTelephoneAttributeName}</value>
<entry>
输入密钥取自 cm:person 的属性。值是您将在
alfresco-global.properties
中使用的字符串。
您需要将文件common-ldap-context.xml
放入露天服务器(或容器)上的路径tomcat/shared/classes/alfresco/extension/subsystems/Authentication/ldap-ad/ldap1
。
如果此路径(在类之后)不存在,请创建它。然后添加到alfresco-global.properties
行,如下所示:
ldap.synchronization.userTelephoneAttributeName=telephoneNumber
重新启动 Alfresco,即可同步电话号码。