7. 使用OD+AD管理用户组和计算机
对于AD管理员不愿意把现有的AD架构扩展到支持Mac OS X的特定属性的情况很普遍. 在Windows 2000服务器上,这个很容易理解, 因为AD架构的变更是不可逆的, 这样一旦犯错,除非你重建全部AD架构,否则前功尽弃. 在Windows 2003服务器上, 你可以撤消变更. 所以,这一点明显改变了,AD架构的改变不再复杂和重负的。
因此, Mac管理员更愿意把基本的认证和AD集成, 但是AD并不能提供最大控制, 比如控制FInder的属性和/或应用程序的存取控制等. 有一个幸运的妥协方式. 这一节我们就探讨如何建立AD和OD的交叉认证平台从而利用用户组和计算机表来提供(最大)管理.
为了理解双目录管理如何工作,理解使用LDAP容器是关键. 简便起见, 我将限制在对三个容器的讨论:用户,组,和计算机。
当用户登录时,将发生下面的事情:
- 认证(用户名+密码检查)
- 授权使用该计算机
- 这个用户是否属于一个准许使用该计算机的组?
- 对这个计算机用户和组有没有特殊限制?
- 授权访问网络资源(例如存取网络Home目录)
操 作系统使用Kerberos来处理认证, 但是认证过程复杂. 认证可能授权给用户,组,或者计算机。当OS检查权限的时候,它也遵从同样的过程: 本地目录库然后是网络目录. 比如, 用户登录, 系统先搜索本地看是否有相同用户名账户;如果没有发现, 它查找下一个在搜索路径中可用的目录服务,如果都没有找到,那么登录失败. 如果找到了,它继续查找你的账户的参考(信息), 比如组. 另外, Mac OS X还会查找匹配你计算机MAC地址的信息.
这一点很重要,一个目录服务客户(也就是Mac OS X)无法从多个目录中提取同一个目标(用户)的信息(注*). 例如,如果一个用户使用AD认证登录, 这个用户的所有信息都来自该AD-无法从另外一个AD分配给该用户的管理信息或者Home目录位置。当系统查找包含该用户的组时,它会继续查找所有的目录 (因为,组是用户之外的一个对象). 如果你的OD是除AD之外的另一个搜索路径, 登录的AD用户又属于OD的一个组, 系统会强制实施OD组的规则. 计算机记录可以提供另外一层的管理.
关于用户组和计算机的详细管理细则将在下节讨论, 本节将解释如何配置Mac OS X服务器的主OD服从AD,和配置客户端来使用双目录架构.
注*: Leopard服务器引入了可扩展的记录,也就是允许Mac OS X管理员从AD引入用户账号到OD中, 并且扩展它们包含非AD本身的属性, 比如MCX设置. 如果Mac OS X仅仅绑定到有扩展记录的Mac OS X服务器,这样,用户就是一个从两个不同目录服务管理的属性的单一对象. 在第8节中讲述使用扩展记录信息来覆盖AD的Home目录信息. 参考本文最后的部分有关扩展记录信息的文档.
A. Mac OS X服务器设置
为 了获得AD用户,你的主OD服务器必须绑定到AD服务器. 另外, 如果希望在另外一个Mac OS X服务器上提供Kerberos化的服务,如AFP, FTP或Mail, 你必须在这些服务和Kerberos realm间建立信任关系, 从而实现SSO(Single-Sing-on).
下面的顺序特别重要, 要想成为从属的目录系统,必须首先绑定到AD, 然后, 使用Server Admin升级你的OD服务器为一个主OD. 从属服务器会自动判定和配置来遵从AD. 请参考OD管理员手册中的"混合AD和主OD以及复制服务"一节.
1. 应用第6节的讲述来绑定Mac OS X服务器到AD. 绑定过程中,会有一个对话框出现,如下:
2. 忽略对话框中的指导, 因为在Server Admin中"Join Kerberos"和上面的不一样. 在Terminal中运行下面的命令来配置在Mac OS X服务器中的Kerberos服务服从AD:
sudo dsconfigad -enableSSO |
sudo klist -ke |
4. 并检查你的服务程序已经配置为使用AD Kerberos realm, 而不是自己的. AFP服务很容易检查:
defaults read /Library/Preferences/com.apple.AppleFileServer kerberosPrincipal |
应该可以看见你的AD服务器的realm在列表中. 如果没有,解除绑定后重新绑定.
5. 使用2节中的方法, 提升Mac OS X服务器为主OD
6. 如果Home目录在另外一个Mac OS X服务器上, 现在就把那个服务器绑定到AD, 并加入到AD Kerberos realm. 在AD插件的高级选项中, 检查这个服务器没有强迫使用本地Home目录, 而是使用UNC路径到网络Home目录.
7. 预先生成网络Home目录:
sudo createhomedir -s |
B. 配置客户端Directory Utility
客户端的配置就是混合绑定到OD和AD. 注意顺序很重要, 先绑定OD并检查OD在搜索策略栏的第一个, 如果它不是第一个, 设置可能没配置对, 那么扩展的记录将被忽略.
1. 绑定客户端到主OD(第3节)
2. 使用AD插件绑定客户端到AD
C. 配置OD组
如 果AD管理员没有扩展AD架构来支持扩展的用户属性来支持Mac OS X的用户管理, 那么你无法管理用户. 同样, 你也无法管理Mac OS X组,如果仅使用AD管理而扩展组属性没有得到AD的支持. 如果你建立了双目录服务, 那么你可以基于OD的组来管理用户和组.
Mac OS X支持嵌套的组, 也就是可以识别组中组. 如果你希望用AD组管理用户, 你可以在OD中建立组,然后把AD用户和组添加到里面. AD的用户和组实际上还是存在AD中, 而OD组只是包括了它们的一个参考. OD组可以提供附加的AD不支持的管理信息.
1. 运行Workgroup Manager并用diradmin用户连接到主OD. 确认工作在LDAPv3节点.
2. 点击组并创建一个新组.
3. 点击"Members"标签, 然后是"+"按钮以打开用户和组抽屉. 在上面选择AD节点, AD的用户和组将显示在列表中. 选择一些用户账号(包括你自己), 并拖动它们到组成员表中, 然后点击组标签来添加一些组. 现在有了一个以AD用户和组为成员的OD组, 同样, 并没有复制这些AD用户和组, 而只是它们的参考, 所以没有必要做同步工作. 保存.
4. 可以写另外一本书来介绍管理这些配置, 这里不详述,但是你应该至少变更一个,来检查这个组的管理工作. 确认选定那个组, 然后点击在工具栏中的Preferences按钮. 点击"Dock"按钮, 在"Dock Display"标签中, 设置"Manage these settings"为“Always”和"Position on screen"为"Right".
D. 配置OD计算机列表
这一步是可选的--可以仅仅使用组来管理用户. 计算机表管理方式比较方便,尤其是当你管理数千用户或者依据计算机的位置来管理的方式.
1. 在WGM(译者注:Workgroup Manager)里, 点击工具栏中的账号按钮, 然后点击计算机组标签(那个两个方框的标签).
2. 创建一个新计算机表, 叫它"Test Lab", 点击"Members"标签, 然后点击省略符. 在网络浏览窗口里可以添加你的子网中的计算机到列表中.
3. 点击工具栏中的Preferences按钮. 最一般的管理任务是限制哪一个用户和用户组可以使用哪一个组的计算机. 可以使用计算机组来实现. 点击"Login"按钮, 然后是"Access"标签.
4. 点击"Always"选项, 然后是"+"来添加用户/用户组到"Access Control List". 添加完毕之后, 点击"Apply Now"来保存.
E. 在客户端登录来测试双目录设置
1. 使用AD账户登录, 注意你的Dock应该在屏幕右边.
2. 登出再用另外一个管理员组用户登录(参考Directory Utility的AD插件), 因为它是一个管理员组成员,所以登录时系统提示可以不使用组管理(WGM)
3. 登出,使用另外一个不属于OD组的用户, 这个用户将被禁止登录.
4. 复习第4节的B,并检查当前登录用户获得的Kerberos证书
5. 在主OD上打开AFP和SMB. 在客户端, 使用AFP和SMB安装一个共享(对于SMB, 必须明示"http://your.server.edu"), 再检查Kerberos证书, 这个功能会在第10节中详细涉及.