2019独角兽企业重金招聘Python工程师标准>>>

这里说的活动目录指的是公司内的AD服务器。希望能通过AD账户来访问Alfresco网站并设置相应的权限。

根据alfresco的官方做法,需要配置一个验证链。

首先用alfrescoNtlm来提供Ntlm验证功能;其次用passthru子系统把用户提供的用户名和密码转交给AD服务器进行验证;最后加上一个ldap-ad在alfresco和AD其同步账户。

创建子系统配置文件

这里有三个子系统,分别是alfrescoNtlm,passthru和ldap-ad。

验证链

首先要在alfresco-global.properties里声明验证链

验证链的声明格式如下:

authentication.chain=id1:type1,id2:type2......idn:typen

所以需要加入以下验证链:

authentication.chain=alfrescoNtlm1:alfrescoNtlm,passthru1:passthru,ldap1:ldap-ad

验证链的第一个一定要声明alfrescoNtlm,后面两个一个用来验证的,一个是用来同步的,所以顺序没有关系。

配置文件

新建以下三个目录

tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/subsystems/Authentication/afrescoNtlm/alfrescoNtlm1
tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/subsystems/Authentication/passthru/passthru1
tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/subsystems/Authentication/ldap-ad/ldap1

再把相应验证子系统中的properties文件拷贝到目录里,

tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/subsystems/Authentication# ls -R
.:
alfrescoNtlm  ldap-ad  passthru./alfrescoNtlm:
alfrescoNtlm1./alfrescoNtlm/alfrescoNtlm1:
alfresco-authentication.properties  ntlm-filter.properties./ldap-ad:
ldap1./ldap-ad/ldap1:
ldap-ad-authentication.properties./passthru:
passthru1./passthru/passthru1:
ntlm-filter.properties  passthru-authentication-context.properties

alfrescoNtlm

ntlm-filter.properties

ntlm.authentication.sso.enabled=false
ntlm.authentication.mapUnknownUserToGuest=falsen
tlm.authentication.browser.ticketLogons=true

alfresco-authentication.properties

alfresco.authentication.allowGuestLogin=false
alfresco.authentication.authenticateCIFS=false

passthru

ntlm-filter.properties

tlm.authentication.sso.enabled=false^M
ntlm.authentication.mapUnknownUserToGuest=false^M
ntlm.authentication.browser.ticketLogons=true

passthru-authentication-context.properties

passthru.authentication.useLocalServer=false passthru.authentication.domain=hapsh.hitachi.com passthru.authentication.servers=192.168.1.5 passthru.authentication.guestAccess=false passthru.authentication.defaultAdministratorUserNames=2023
#Timeout value when opening a session to an authentication server, in milliseconds passthru.authentication.connectTimeout=5000 #Offline server check interval in seconds passthru.authentication.offlineCheckInterval=300 passthru.authentication.protocolOrder=NetBIOS,TCPIP passthru.authentication.authenticateCIFS=true passthru.authentication.authenticateFTP=true

ldap-ad

ldap-ad-authentication.properties

# This flag enables use of this LDAP subsystem for authentication. It may be
# that this subsytem should only be used for synchronization, in which case
# this flag should be set to false.
ldap.authentication.active=false#
# This properties file brings together the common options for LDAP authentication rather than editing the bean definitions
#
ldap.authentication.allowGuestLogin=false
#How to map the user id entered by the user to taht passed through to LDAP
# In Active Directory, this can either be the user principal name (UPN) or DN.
# UPNs are in the form @domain and are held in the userPrincipalName attribute of a user
ldap.authentication.userNameFormat=%s@doamin.local
# The LDAP context factory to use
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory# The URL to connect to the LDAP server
ldap.authentication.java.naming.provider.url=ldap://192.168.1.5:389# The authentication mechanism to use for password validation
ldap.authentication.java.naming.security.authentication=simple# Escape commas entered by the user at bind time
# Useful when using simple authentication and the CN is part of the DN and contains commas
ldap.authentication.escapeCommasInBind=false# Escape commas entered by the user when setting the authenticated user
# Useful when using simple authentication and the CN is part of the DN and contains commas, and the escaped \, is
# pulled in as part of an LDAP sync
# If this option is set to true it will break the default home folder provider as space names can not contain \
ldap.authentication.escapeCommasInUid=false# Comma separated list of user names who should be considered administrators by default
ldap.authentication.defaultAdministratorUserNames=administrator# This flag enables use of this LDAP subsystem for user and group
# synchronization. It may be that this subsytem should only be used for
# authentication, in which case this flag should be set to false.
ldap.synchronization.active=true# The authentication mechanism to use for synchronization
ldap.synchronization.java.naming.security.authentication=simple# The default principal to bind with (only used for LDAP sync). This should be a UPN or DN
ldap.synchronization.java.naming.security.principal=administrator@domain.local# The password for the default principal (only used for LDAP sync)
ldap.synchronization.java.naming.security.credentials=password# If positive, this property indicates that RFC 2696 paged results should be
# used to split query results into batches of the specified size. This
# overcomes any size limits imposed by the LDAP server.
ldap.synchronization.queryBatchSize=1000# If positive, this property indicates that range retrieval should be used to fetch
# multi-valued attributes (such as member) in batches of the specified size.
# Overcomes any size limits imposed by Active Directory.
ldap.synchronization.attributeBatchSize=1000# The query to select all objects that represent the groups to import.
ldap.synchronization.groupQuery=(objectclass\=group)# The query to select objects that represent the groups to import that have changed since a certain time.
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(modifyTimestamp<\={0})))# The query to select all objects that represent the users to import.
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))# The query to select objects that represent the users to import that have changed since a certain time.
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(
userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(modifyTimestamp<\={0})))# The group search base restricts the LDAP group query to a sub section of tree on the LDAP server.
ldap.synchronization.groupSearchBase=DC\=Domain,DC\=local# The user search base restricts the LDAP user query to a sub section of tree on the LDAP server.
ldap.synchronization.userSearchBase=DC\=Domain,DC\=local
# The name of the operational attribute recording the last update time for a group or user.
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp# The timestamp format. Unfortunately, this varies between directory servers.
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'# The attribute name on people objects found in LDAP to use as the uid in Alfresco
ldap.synchronization.userIdAttributeName=sAMAccountName# The attribute on person objects in LDAP to map to the first name property in Alfresco
ldap.synchronization.userFirstNameAttributeName=givenName# The attribute on person objects in LDAP to map to the last name property in Alfresco
ldap.synchronization.userLastNameAttributeName=sn# The attribute on person objects in LDAP to map to the email property in Alfresco
ldap.synchronization.userEmailAttributeName=mail# The attribute on person objects in LDAP to map to the organizational id  property in Alfresco
ldap.synchronization.userOrganizationalIdAttributeName=company# The default home folder provider to use for people created via LDAP import
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider# The attribute on LDAP group objects to map to the authority name property in Alfresco
ldap.synchronization.groupIdAttributeName=cn# The attribute on LDAP group objects to map to the authority display name property in Alfresco
ldap.synchronization.groupDisplayNameAttributeName=displayName# The group type in LDAP
ldap.synchronization.groupType=group# The person type in LDAP
ldap.synchronization.personType=user# The attribute in LDAP on group objects that defines the DN for its members
ldap.synchronization.groupMemberAttributeName=member# If true progress estimation is enabled. When enabled, the user query has to be run twice in order to count entries.
ldap.synchronization.enableProgressEstimation=true

注意事项

  • 所有的配置更改后都必须重启服务
  • ldap-ad中的验证功能必须关闭,否则和passthru冲突
  • AD的UPN是%s@domain.local

转载于:https://my.oschina.net/GrayChan/blog/12634

Alfresco支持LDAP验证相关推荐

  1. 部署harbor1.2.0开启ldap验证

    就harbor本身部署来说是非常简单的,之前写过详细步骤,这里不再重复. 这里主要是总结一下部署当中遇到的问题,以及如何开启ldap验证. harbor默认是通过http通信的,当然也支持https, ...

  2. 通过LDAP验证Active Directory服务

    http://www.cnblogs.com/icuit/archive/2010/06/10/1755575.html 这一周做LDAP做得头都大了.现在终于有点头绪了,记录一下,以备后用. LDA ...

  3. XP远程桌面连接2008提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证

    装了一台2008机器,开了远程桌面,然后用同事 win7 连接测试,发现可以连接上. 晚上回到家里,自己电脑连接,却报错. --------------------------- 远程桌面连接已断开 ...

  4. 远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助...

    故障:"远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助" 故障症状:当您使用Windows XP"远程桌面连接&qu ...

  5. XP远程桌面连接2008提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证...

    装了一台2008机器,开了远程桌面,然后用同事 win7 连接测试,发现可以连接上. 晚上回到家里,自己电脑连接,却报错. --------------------------- 远程桌面连接已断开 ...

  6. 【转】XP远程桌面连接2008提示:远程计算机需要网络级别身份验证,而您的计算机不支持该验证 ....

    装了一台2008机器,开了远程桌面,然后用同事 win7 连接测试,发现可以连接上. 晚上回到家里,自己电脑连接,却报错. --------------------------- 远程桌面连接已断开 ...

  7. iphone8验证服务器出错,某平台上买的“全新国行正品iphone8手机,支持官方验证”用了不到两个月坏了...

    某平台上买的"全新国行正品iphone8手机,支持官方验证"用了不到两个月坏了,老是莫名其妙的重启,电池电也充不进去,一直显示1%,拿到附近的修理店,人家说是官换机,电池有问题,任 ...

  8. 申请微信公众号,当前绑定的银行卡暂不支持实名验证...

    2019独角兽企业重金招聘Python工程师标准>>> 申请改名微信公众号,让微信扫描二维码,扫描完了后,提示"当前绑定的银行卡暂不支持实名验证".   看了下说 ...

  9. dz邮箱验证怎么设置_详细步骤!Discuz如何设置通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)实现论坛邮箱验证功能...

    论坛如何实现邮箱功能呢?今天研究了半天,最终终于成功了. 在网上找了一堆资料也没有一个靠谱的资料,所以在这里记录下我的步骤和方法,希望可以给其他小伙伴一点参考和帮助. 实现思路: 通过注册腾讯企业邮箱 ...

最新文章

  1. Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果
  2. 地址引用PHP,浅谈PHP变量作用域以及地址引用问题
  3. python求解方程组_python如何解方程组
  4. ACM入门之【读入、输出优化】
  5. JVM内存区域:递归JVM指令分析
  6. codeforces 935E Fafa and Ancient Mathematics 语法树、动态规划
  7. 双linux共用swap,在Linux和FreeBSD系统上共享swap空间
  8. 服务器是多用户服务的计算机,Win10权限管理与多用户远程登录(多方案)
  9. axios的介绍与页面配置---axios工作笔记003
  10. 剑指offer面试题49. 丑数
  11. es查询两列相减大于某个值的数据_南京师范大学汇编语言期末试卷
  12. 怎样使用python画复杂函数_在python中绘制复杂的函数?
  13. ERROR 1820: You must reset your password using ALTER USER statement before executing this statement
  14. 常见设计规范与 Sketch 源文件下载集合
  15. java围棋毕业设计,基于Java的围棋游戏的设计与实现.docx
  16. 汽车自动驾驶技术与产品研发仿真测试软件—panosim(一)
  17. 概要设计模板 外部接口设计_0226 rest接口设计
  18. 抖音下载android,抖音完整版
  19. 收藏一个w3school在线手册与php5在线手册
  20. 高质量前端:Code Review 很慢,你要忍一下。

热门文章

  1. echarts 环形图中间添加html,echarts配置一个中间显示文字的环形图
  2. SpringSecurityFilterChain
  3. vue element table 修饰
  4. torch.nn与torch.nn.functional
  5. python multiprocessing.Semaphore应用
  6. nginx 小简单指令
  7. 字符集ASCII、GBK、UNICODE、UTF在储存字符时的区别
  8. Linux线程同步介绍和示例
  9. landset8各波段_landsat8波段
  10. java 中random类使用_Python中random的使用方法