我看到了大量允许 Google Apps 使用外部 AD 和 LDAP 服务进行登录的解决方案。
但是,我已经在 Google Apps 中设置了大量用户,而我正试图反其道而行之。也就是说,我希望允许用户使用我在 Google Apps 中创建的帐户登录我的外部服务器。
有没有人成功发现将 Google Apps 域用作 Open Directory、Active Directory 或 LDAP 提供程序的方法?
我们的企业 LDAP 目录位于 Snow Leopard Server Open Directory 设置中。我正在尝试使用该ldapsearch工具导出 .ldif 文件以导入另一个外部 LDAP 服务器以进行外部身份验证;基本上是试图能够在内部和外部使用相同的凭据。
我已经开始ldapsearch工作并为我提供了“用户”OU 中所有内容的内容和属性,甚至过滤到仅我需要的属性:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Run Code Online (Sandbox Code Playgroud)
这为我提供了可以导入到远程 OpenLDAP 服务器的用户和属性列表。
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
Run Code Online (Sandbox Code Playgroud)
但是,当我在 OD“组”而不是“容器”上尝试相同的查询时,结果是这样的:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
Run Code Online (Sandbox Code Playgroud)
我真正想要的是根据组成员身份过滤的顶部示例中的用户列表,但看起来成员资格是从组方面设置的,而不是用户帐户方面。必须有一种方法可以过滤掉它并只导出我需要的东西,对吗?
在工作中,我们安装了 OSX 10.7.3,每隔一段时间我就会看到以下行为:
如果屏幕被锁定,则不接受同一用户/通行证的多次尝试。
如果屏幕已解锁,则打开新的 bash 术语可能会产生如下提示:
`I have no name$`
Run Code Online (Sandbox Code Playgroud)
或者
lkyrala$ ssh lkyrala@ah-lkyrala2u
You don't exist, go away!
Run Code Online (Sandbox Code Playgroud)即使我们的 Mac 正常工作,这里的每个人也必须登录两次。启动后第一次总是失败,但第二次(使用相同的密码,不更改任何内容,再次按回车键)成功。奇怪的?
有一些变通方法可以解决眼前的问题,但不会阻止它再次发生:
等待(可能一两个小时),问题有时会自行消失。
杀死'opendirectoryd'并让它重新启动。(来自Apple 支持社区:用户 ID(不是数据)突然删除?)
按住电源按钮重置计算机
我们的网络管理员怀疑与 lockd 有牵连。lockd 显然使用 UDP,当网络拥塞时,数据包会丢失,从而导致挂起行为。他们正在研究减少拥堵的措施。如果有问题的文件访问恰好是 Active Directory 身份验证句柄,那么所有这些不同的部分开始组合在一起。
现在,上面的证据指出了 opendirectory 和登录凭据的问题。其他一些人报告有这些登录问题,但很难确定实际问题出在哪里(Mac 或网络环境?)。
我应该补充一点,大多数网络都是 Windows 机器,但我们也有不少 Mac 和 Linux 机器,但我不确定网络身份验证如何从各个域映射到其他域的详细信息......所有我知道我们的网络凭据在 Windows 域以及 mac 和 linux 登录中都有效——所以有些东西正在连接不同的系统,或者使用相同的全局身份验证系统。
不幸的是,我没有设置这台 Mac,我们的 IT 部门做了,所以我不完全确定身份验证是如何工作的。我确实知道这是网络登录(这在我使用 Mac 的经验中是不寻常的,它们通常具有连接到外部资源的本地帐户)但在这里,我们的主文件夹在网络上,而不是本地。在我的 linux 安装下,连接到网络涉及 yp/NIS,(它允许我们从任何机器自动挂载我们的网络文件系统的一部分),并且 opendirectoryd.log 似乎证实了这涉及...
/var/log/opendirectoryd.log* 显示:
2012-04-04 01:29:12.370 EDT …Run Code Online (Sandbox Code Playgroud) 当用户是多个组的成员时,在登录 10.6 计算机时,会显示一个提示,询问要应用设置的组。
我们正在使用这些组根据用户成员资格挂载不同的共享,例如Production和Accounts。通常,一个用户是多个组的成员,并且需要所有可用的驱动器。
Open Directory 服务器也运行 10.6。
有没有办法跳过此提示并为所有组应用设置。我可以预见组设置之间可能存在冲突,但也许也可以设置优先级?或者这完全是错误的方法?
有关 Active 和 Open 目录互操作性的绝大多数问题都涉及让 Mac 客户端查看 AD 并对其进行身份验证。
我们想要做的是让 Windows 7 工作站完全针对 Open Directory 进行身份验证。我们尝试将其设置为 NT4 类型的 PDC,但效果不佳。
我们尝试使用 pGina 和 LDAP 后端,它允许身份验证,但不支持授权,因此,如果我们挂载 NFS 共享,用户有权做任何他们该死的事情。不适合安全(实际上完全不可接受)。
我们尝试使用 Samba 服务器(比 Open Directory Server 更新的版本)作为中间件,以便它知道 OD 服务器上的 LDAP 服务器,但使用 Samba 4 而不是 v3。那也没有用。我们可以登录,但不能挂载,如果登录,我们就拥有与 pGina 相同的权限。如果我们在 Windows 中右键单击已安装的驱动器,并查看 NFS UID,它将返回 -2,而不是正确的(映射的)UID。
所以我的最终计划是在 Windows 2008R2 虚拟机中使用 Active Directory。我想要实现的是让 Active Directory 同步它来自 OpenDirectory 的用户数据(只读就可以)。这样,我们就能够将 Windows 7 客户端连接到一个“虚拟域”,该域实际上只是从 OD 的 LDAP 中获取信息。
我找到的所有信息都是关于如何走另一条路的。
有谁知道我们如何做到这一点?
active-directory ldap authentication opendirectory authorization
是否有任何可能的解决方案可以从 CLI(例如通过 SSH)禁用用户?必须有一个 dscl 命令。或者是否有我可以相应设置的 dsAttrTypeStandard 属性?
任何指针?
我有一个 Open Directory 用户在 Workgroup Manager 中未选中“访问帐户”框,因此他们无法登录。有没有办法使用 LDAP 查询来确定这一点?
能够/bin/false通过 LDAP检查他们的登录外壳设置也很好,因为一些管理员使用它来禁用登录。
我有一个在 OSX Server 机器上运行的 OpenDirectory 服务器,我想通过拥有一个从服务器来提高服务的可靠性。问题是,我只有 1 个 OSX 服务器,但我有很多可用的 Linux 服务器。我对 Apple 与 OpenDirectory 集成的工具感到满意,但鉴于 Apple 最近停止使用 XServe,我对继续使用 Apple 硬件并不特别感兴趣。
我记得听说 OpenDirectory(现在很遥远)基于 OpenLDAP 代码库;有什么方法可以从 OpenDirectory 复制到 OpenLDAP 而不必购买另一台 OSX 服务器?
根据https://help.apple.com/advancedserveradmin/mac/10.7/#apd52648A71-571A-433C-81A8-2A7792333F22可以使用 Windows 机器加入 Lion Open Directory,使其认为它正在加入 Active Directory 域.
然而,我在实际制作这项工作方面没有取得任何成功。
一方面,甚至没有创建 DNS 中的 SRV 记录(在同样运行 OpenDirectory 的同一 Lion 服务器上)。
一旦我手动添加,复制真实 Active Directory 域的真实 SRV 记录,Windows 至少设法找到服务器,但实际连接没有成功:
DNS was successfully queried for the service location (SRV) resource record used to
locate a domain controller for domain "miranda.pilif.home":
The query was for the SRV record for _ldap._tcp.dc._msdcs.miranda.pilif.home
The following domain controllers were identified by the query:
miranda.pilif.home
However no domain controllers could be contacted.
Common causes of this error include: …Run Code Online (Sandbox Code Playgroud) 我正在设置一个应用程序以使用 LDAP 对 Open Directory 进行身份验证。
Open Directory 以 RFC 2307 posixGroups 格式存储组,如下所示:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
Run Code Online (Sandbox Code Playgroud)
但是应用程序希望组采用 LDAP 核心架构 groupOfNames 格式的样式,如下所示:
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Run Code Online (Sandbox Code Playgroud)
换句话说,目录服务器提供了一个不合格的 uid,而应用程序需要一个 DN。
如何将 slapd 配置为:
动态提供一个看起来像的实体groupOfNames(从上面复制):
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Run Code Online (Sandbox Code Playgroud)或者使用组成员的 DN 动态发出额外的属性,如下所示:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
memberDn: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Run Code Online (Sandbox Code Playgroud)似乎 OpenLDAP 覆盖可以做到这一点,但我正在寻找有关详细信息的帮助。
(该应用程序的BusinessObjects的Crystal Reports Server。支持说,他们不支持OpenLDAP的,但研究它们的目录服务器之后做支持,相信这应该与一些翻译的工作有所帮助。我可以配置类和属性的名称,但重申一下,该组必须提供使用 …
我们最近买了一台预装了 Mountain Lion Server 的 Mac Mini 用作 Open Directory 主服务器,我不清楚应该如何备份 Open Directory 的数据。
我们目前正在使用 Time Machine 来备份系统,Apple 文档只是简单地说 ServerBackup 工具将备份服务。
我知道 opendirectorybackup 脚本存在并运行 slapconfig,但目标文件没有被更新。如果我手动运行 slapconfig -backupdb 它会起作用。我已经尝试从命令行手动手动运行 ServerBackup,但它在 /.ServerBackups/ 中创建的 opendirectory/ 文件夹是空的。
这应该如何工作?我是一个 Linux 人,也是 Mac 系统管理的新手,因此非常感谢所有帮助。
在我必须在几个月内进行部署之前,我正在对 OS X Server 进行一些测试。我已经配置了 Open Directory,并创建了一些用户。我已经在 10.5 客户端上配置了目录实用程序,但登录身份验证没有按我预期的方式工作。我希望我可以使用在 Open Directory 中创建的任何用户的用户名/密码,并能够登录到客户端。相反,我似乎需要创建一个本地用户,然后您使用 Directory Utility 将其与目录用户同步。
或者,如果我向客户端添加 Active Directory 配置,我可以使用任何 AD 用户,正如我所期望的。
我希望不可能,还是配置可能有问题?
我理解 Open Directory 是 OpenLDAP + SASL(密码服务器)+ Kerberos。OpenLDAP 似乎遵循 SASL 进行身份验证;我不知道 Kerberos。
我想通过脚本更改用户密码,最好是远程更改,并且我希望正确更改密码。(即,在任何情况下,我都不希望用户根据进入 Open Directory 的三个服务中的哪一个进行身份验证而拥有不同的密码。)
我可以dsimport在未绑定到目录的机器上通过网络执行一个很好的操作,但是,当您尝试导入密码时(尽管将 AuthType 设置为 dsAuthMethodStandard:dsAuthClearText),它仅在未输入密码时才有效之前设置。(我相信可以设置 Crypt 密码,但我担心这意味着只有 OD 的 LDAP 部分会知道当前密码。)
除了启动到服务器的 ssh 会话并更改那里的密码之外,我还能做些什么吗?如果我这样做,是否有任何命令可以让我在一行中指定多个用户及其新密码?
哪些命令可以更改所有打开的目录密码,有没有人更喜欢?
apropos password 给了我这些有趣的结果:
我会查看一些手册页,我认为这pwpolicy是最好的选择,但我很想知道使用这些页面是否有任何微妙之处(例如,不要更改 Kerberos 密码而不更改 LDAP 和 SASL 密码),并且如果其中任何一个在没有 ssh 会话的情况下远程工作。
opendirectory ×13
ldap ×6
mac-osx ×5
backup ×1
g-suite ×1
lion ×1
networking ×1
openldap ×1
password ×1
replication ×1