LDAP调试指南
LDAP调试指南
的轻量级目录访问协议(LDAP)提供REST api风格的方法来验证用户。在Artifactory中,这意味着每当用户使用其LDAP凭据时,应用程序将检查LDAP服务器进行身份验证。这很有用,因为它允许动态组同步。例如,如果用户更改了LDAP组,Artifactory将自动更新其LDAP组组列表为了反映这种变化。有关LDAP组同步和映射的更多信息在这里.
LDAP设置要求:
所有LDAP连接都必须根据指定的参数进行操作,这些参数的确切值通常存储在LDAP服务器配置中。
的LDAP URL(例如,ldap://example.com/dc=jfrog,dc=org)使用ldap或ldaps协议(其中“s”代表“安全”并使用SSL加密)。dc或Directory Components部分映射到组织的顶级LDAP坐标。在上面的例子中,它翻译为jfrog.org。
的搜索过滤器(例如samAccountName={0})或用户DN模式(uid={0},ou=people)是Artifactory在LDAP系统中搜索用户的方式。{0}由提交的用户名填充。可以使用搜索筛选器或用户DN模式,但至少需要配置其中一个。
虽然LDAP管理器凭证(例如,cn=admin,dc=example,dc=com)不是严格要求的,它们可以很方便,因为大多数LDAP服务器需要身份验证来查找目录信息。在LDAP中,这采用的形式是LDAP坐标,映射到用户名和密码。
解决LDAP问题
搜索基础问题:在第一次设置Artifactory系统时,经常会错误地使用搜索基础字段。搜索库限制了Artifactory用于查找用户的LDAP目录。如果搜索基础太宽,搜索将花费很长时间并导致超时。如果它太窄,那么具有搜索库之外的LDAP坐标的用户将无法登录。
LDAP调试记录器在用户登录时记录用户的LDAP坐标。您可以使用此信息相应地对参数进行微调。如果存在用户所在的特定LDAP目录,您可以尝试在Artifactory中使用多个LDAP设置。这些设置可以共享相同的LDAP URL和其他信息,但具有完全不同的搜索基础。
网络问题:如果LDAP连接测试按钮失败并返回网络错误,这通常是由LDAP URL引起的。和ldap协议可能特别棘手。由于使用SSL加密,使用的URL需要匹配证书的通用名称。LDAP调试日志记录器将把任何额外的网络问题或信息注册到LDAP .log文件。
另一个常见问题发生在网络故障导致登录超时时。这可能会触发间歇性构建失败问题。这个问题的一个解决方案是增加登录缓存时间。设置可以在美元ARTIFACTORY_HOME / etc / artifactory.system.properties文件:
##认证在缓存中空闲的秒数
artifactory.security.authentication.cache.idleTimeSecs = 300
锁着的用户问题:当帐户被锁定时,可能有两种状态。第一个是在用户试图登录但失败时触发的,这将导致他们的LDAP帐户被锁定。第二种情况发生在LDAP管理器的帐户被锁定时。
来运行一个LDAP搜索,Artifactory使用LDAP管理器的凭据。这些信息有时会被错误配置或更改,从而导致管理员的帐户从LDAP端被锁定。如果发生这种情况,在使用LDAP调试记录器时,将完整地打印“DEBUG”错误,而不是被截断的“error”行。如果发生了管理员帐户锁定,通常需要调用LDAP管理员来解锁用户帐户或管理员帐户。
LDAP调试日志记录器
在几乎所有情况下,Artifactory的LDAP调试日志程序都可以帮助确定问题的原因。这个XML片段放在美元ARTIFACTORY_HOME / etc / logback.xml文件,不需要重新启动即可生效。
请记住,随着记录器到位,安全信息(如LDAP坐标,但不是密码)以明文形式登录。当记录这些额外的信息时,性能也会受到轻微的影响。调试完成后,您应该删除记录器。
这个XML片段应该放在logback.xml文件的末尾,在""行之前:
<文件> $ {artifactory.home} /日志/ ldap.log > < /文件
<编码器>
<模式> % $ {artifactory日期。contextId}[%线程][% 5 p] (% -20 c {3}: % L) - m % n % > < /模式
< /编码器>
< rollingPolicy class = " ch.qos.logback.core.rolling.FixedWindowRollingPolicy " >
< FileNamePattern > $ {artifactory.home} /日志/ ldap. % i.log < / FileNamePattern >
13 < maxIndex > < / maxIndex >
< / rollingPolicy >
< triggeringPolicy class = " ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy " >
< MaxFileSize > 10 mb < / MaxFileSize >
< / triggeringPolicy >
< / appender >
<记录器name = " org.springframework.security。ldap”相加性= " false " >
< / logger >
<记录器name = " org.artifactory.addon。ldap”相加性= " false " >
< / logger >
<记录器name = " org.artifactory.security。ldap”相加性= " false " >
< / logger >
<记录器name = " org.artifactory.webapp.servlet。AccessFilter”相加性= " false " >
< / logger >
当应用时,ldap.log文件将出现在$ARTIFACTORY_HOME/logs/文件夹中。
