我们使用带有 mod_svn 的 Apache 来为 subversion 存储库提供服务。Apache 连接到 LDAP 服务器,因此所有用户都可以使用他们的域密码。为了让构建机器能够结账,我想要一个额外的用户,但我无法通过 LDAP 添加。
我可以创建一个用户/密码必须匹配 LDAP 服务器或 htpasswd 文件的设置吗?
我正在配置一个系统,其中所有 IT 资源都可以通过单个用户密码对获得,无论是访问服务器上的 shell、登录到 Samba 域、WiFi、OpenVPN、Mantis 等(访问受管理的特定服务)按组成员身份或用户对象字段)。因为我们的网络中有个人数据,所以我们需要根据欧盟数据保护指令(或者更确切地说是波兰语版本)实施密码老化。
问题是 LDAP 中的 Samba 和 POSIX 帐户使用不同的密码散列和老化信息。虽然同步密码本身很容易(ldap password sync = Yesin smb.conf),但将密码老化添加到混合中会破坏事情:Samba 不更新 shadowLastChange。与obey pam restrictions = Yes创建一个系统,其中 Windows 用户不能更改旧密码,但如果我不使用它,则不会自动创建主目录。另一种方法是使用 LDAP 扩展操作来更改密码,但smbk5pwd模块也不对其进行设置。更糟糕的是,OpenLDAP 维护者不会更新它/接受补丁,因为该字段被认为已弃用。
所以,我的问题是,最好的解决方案是什么?它们的优缺点是什么?
使用 LDAPppolicy和内部 LDAP 密码老化?
ppolicy启用的 LDAP 一起使用?编写一个更新 LDAP 字段的更改密码脚本。(留下用户自己在不更改密码的情况下更新字段的可能性)
我正在使用 ADSI Edit 查看 AD 中单个用户帐户的 LDAP 属性。我看到了诸如 userPrincipalName 之类的属性,但我没有看到完全限定域名 (FQDN) 或 netbios 域名的属性。
我们将设置全局目录 (GC) 以提供对多个域的 LDAP 访问,并通过应用程序中的配置将 LDAP 属性映射到应用程序中的用户配置文件属性。对于典型的 AD,所有用户的 FQDN 和 netbios 域名都是相同的,但是由于涉及 GC,我们需要这些附加信息。我们真的只需要netbios域名(FQDN不够好)。
也许可以通过 LDAP 查询从 AD 中的更顶级对象请求此信息?
我被宠坏了,并且一直在使用 eDirectory 完成我的大部分 LDAP 工作,它有一个名为 DSTrace 的实用程序,它很可爱,特别是对于 LDAP,将向您显示所有绑定尝试、源 IP、传入的搜索、摘要返回的匹配对象。
在调试 LDAP 应用程序(如SAP GRC)时,我可以通过观察应用程序所做的事情轻松找出应用程序做错了什么。
我知道安全事件日志会有一些这样的信息(至少绑定尝试)但必须有更好的方法吗?有没有这样的功能?
我看到一个问题调试 AD很接近,但只建议登录事件。我每天都需要更多的东西来管理 LDAP 应用程序。
所以,我遇到了一个相当奇怪的问题。我有一个服务器,当我尝试通过 SSH 连接时,如果我在第一次尝试时输入正确的密码,它会立即关闭连接。但是,如果我在第一次尝试时故意输入错误的密码,然后在第二次或第三次提示时输入正确的密码,它会成功登录我的计算机。同样,当我尝试使用公钥身份验证时,我会立即关闭连接。但是,如果我为密钥文件输入了错误的密码,然后在恢复为密码身份验证后又输入了另一个错误的密码,只要我在第二次或第三次提示时提供正确的密码,我就可以成功登录。
该机器运行 Red Hat Enterprise Linux Server 6.2 版(圣地亚哥),并使用 LDAP 和 PAM 进行身份验证。关于从哪里开始调试这个的任何想法?让我知道我需要提供哪些配置文件,我会很乐意这样做。
这是一些调试信息。以下代码块按顺序表示这 3 种情况:1) 首次尝试时更正私钥密码,2) 跳过私钥,首次尝试时更正常规密码,3) 跳过私钥,故意输入错误密码,然后进入好的...这是唯一让我真正连接的场景。
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to [removed for privacy].
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/trevor/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/trevor/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: …Run Code Online (Sandbox Code Playgroud) 抱歉——我并不是真正的 Windows 系统管理员,只是试图通过 Java 中的一些 LDAP 交互进行猛烈抨击。
我在distinguishedName中找到了大量带有“DEL:”的对象。这些是等待垃圾收集的孤立项目吗?我如何删除它们?我真的无法通过 ADUC 找到它们,但我可以通过 Java LDAP 找到它们。
Active Directory 用户对象包括许多可被视为标识符的字段。下面列出了其中一些及其在 ADUC 中的标签及其属性名称:
我试图让我们的开发人员在编写针对 AD 进行身份验证的自定义代码时仅使用其中一种进行标准化 - 问题是我不确定哪个是“正确”的,或者不同的是否在不同的情况下是正确的情况。我什至不确定是否应该使用上述任何字段!
有没有其他人选择了一致使用的,是什么影响了你的决定?有什么文件可以澄清这个问题吗?
我一直在考虑mod_auth_kerb在我们的内部 Web 服务器上部署以启用 SSO。我能看到的一个明显问题是,它是一种要么全有要么全无的方法,要么您的所有域用户都可以访问某个站点,要么不能。
是否有可能结合起来mod_auth_kerb的东西,如mod_authnz_ldap在特定的组中LDAP检查组成员?我猜这个KrbAuthoritative选项会与此有关吗?
此外,据我所知,该模块将用户名设置为username@REALM经过身份验证,但当然在目录中,用户仅存储为用户名。此外,我们运行的一些内部站点(例如 trac)已经有一个链接到每个用户名的用户配置文件。有没有办法解决这个问题,也许是通过在身份验证后以某种方式剥离领域位?
我在 Windows Server 2003 机器上有一组私有的 Subversion 存储库,开发人员可以通过 svn:// 协议通过 SVNServe 访问这些存储库。目前,我们一直在使用每个存储库的authz和passwd文件来控制访问,但是随着存储库和开发人员数量的增加,我正在考虑改用 ActiveDirectory 中的凭据。我们在一家所有的 Microsoft 商店中运行,并在我们所有的 Web 服务器上使用 IIS 而不是 Apache,所以如果可能的话,我更愿意继续使用 SVNServe。
除了可能之外,我还关心如何迁移我们的存储库,以便现有用户的历史记录映射到正确的 ActiveDirectory 帐户。还请记住,我不是网络管理员,而且我对 ActiveDirectory 并不十分熟悉,因此如有必要,我可能需要通过其他人来获取在 ActiveDirectory 中所做的更改。
我有哪些选择?
更新 1:从SVN 文档看来,通过使用 SASL,我应该能够让 SVNServe 使用 ActiveDirectory 进行身份验证。澄清一下,我正在寻找的答案是如何配置 SVNServe(如果可能)以使用 ActiveDirectory 进行身份验证,然后如何修改现有存储库以将现有 svn 用户重新映射到他们的 ActiveDirectory 域登录帐户。
更新 2:似乎 SVNServe 中的 SASL 支持在插件模型下工作,文档仅作为示例显示。查看Cyrus SASL 库,它似乎支持多种身份验证“机制”,但我不确定哪一种用于 ActiveDirectory 支持,也无法找到有关此类问题的任何文档。
更新 3:好的,看起来为了与 ActiveDirectory 通信,我希望使用saslauthd而不是sasldb作为auxprop_plugin属性。不幸的是,根据一些帖子(可能已经过时和不准确),saslauthd似乎不是在 Windows 上构建的,这样的努力被认为是一项正在进行的工作。 …
是否可以将请求 URI 的一部分用作 mod_authnz_ldapRequire ldap-group指令的输入?
我正在尝试动态检查对一堆不同项目目录的访问,所有目录都在http://testserver.com/projects/下,这样访问的用户/projects/abc将被检查cn=abc,ou=groups,dc=test. 理想情况下,我希望在不为每个项目创建单独的 Location 指令的情况下执行此操作,因为很可能有数百个。
我想出了这个,它说明了一般概念,但它不起作用(project_name 不检索实际变量内容):
<Location /projects>
SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1
AuthType Basic
AuthBasicProvider ldap
AuthName "Restricted Resource - SVN (LDAP)"
AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid"
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
Require ldap-group cn=%{project_name},ou=groups,dc=test
</Location>
Run Code Online (Sandbox Code Playgroud)
帮助?