Mac OS X Leopard与目录服务(AD/OD)集成宝典(6)
6. AD集成活动目录AD是一种定制的LDAP目录服务, Mac OS X可以使用LDAPv3插件(plugins)或者AD插件来利用AD进行认证.不象主OD, 客户端OS X并不能预先了解每一个AD服务的架构的实施情况, 因此, 使用LDAPv3插件要求更多的设置,而且也需要(管理员)更多了解AD的属性(和LDAPv3属性之间)对应关系. 另一方面, AD插件就如同Windows客户端一样,可以在特定的域森林中自动发现域控制器(Domain Controllers)并对AD和Mac OS X客户端信息匹配.
这一节主要介绍利用配置AD插件来匹配AD服务器. 这一节的最后一页有一个检查列表, 用于检查跟踪AD的设置.
A. 感受AD
在进入AD绑定之前, 最好是检查你可以连接和找到目录服务. 我们使用"LDapper"来浏览可用目录服务.
1. 启动LDapper应用(你可以到versiontracker.com下载)(译者注:为了方便国内用户,我上传了最新版LDapper Ver2.0.4到CSDN的资源里面, http://download.csdn.net/source/1038331)
2. 在LDapper菜单中选择"Preferences",点击"+"按钮添加一个新的目录服务. 按照你的AD环境配置目录.
http://docs.google.com/File?id=dfm3jbw9_41drr449v3_b
3. AD默认不允许匿名绑定,所以点击"Authentication", 输入一个有加入计算机到域("Join a computer to the domain")权限的用户和密码. 你可能需要特殊的AD用户账户, 象:
cn=Bind Account,cn=Users,dc=apple,dc=edu
4. 点击OK, 在"Default Search Options"里,选择获取"All Attributes",取消"Discardresponses without email"和"Search for people only"选项.点击OK,关闭preferences窗口.
5. 从File菜单选择"New Browse Window",在你的AD旁边点击展开三角来浏览用户记录. 点击其中一个记录来查看其中内容.
http://docs.google.com/File?id=dfm3jbw9_42f9fmjpxm_b
用户记录显示,都有那些可用的用户记录存在于AD服务器. 这个工具对于映射LDAPv3插件时非常有用,而且当你希望检查那个特殊的名字可以用来进行计算机账号绑定.
6. 在LDapper的Preferences里面设置你的计算机所属OU作为搜索基础. 打开一个新的浏览窗口,来浏览计算记录.
B. 配置AD插件
因为AD插件利用DNS来定位AD资源, 所以要进行一个小配置. 使用你的AD管理员提供的设置,或者参见本文最后一页的说明。
1. 启动Directory Utility应用.
2. 为了显示更多的AD插件的配置选项,需要使用高级选项. 点击"Show Advanced Settings"按钮, 然后点击"Services"按钮.
3. 如果需要就登录,打开Active Directory服务, 并点击下面的铅笔按钮.
4. 填入域名和计算机ID, 然后点击"Bind"按钮,输入AD账号和密码(由AD管理员提供). 谨慎考虑你的计算机所属OU,默认的OU可能不存在, 或者不合适,或者没有权限. 绑定会失败,如果你的账号在该OU中没有写权限, 所以向AD管理员询问哪个OU合适.而且计算机名不能长于19个字符. 一般来说, 最好取DNS主机名的前面部分. 如果你是用双启动, 那么记住Mac OSX和Windows要使用各自唯一的ID.
http://docs.google.com/File?id=dfm3jbw9_43r8z6jkch_b
5. 点击"Show Advanced Options"按钮. 考虑下面在User Experiences标签的选项:
[*]"Create mobile account": 因为客户机将缓存登录的用户证书在本地,所以这有利于在家中使用的用户.
[*]"Force local home": 如果你的AD没有指定用户的Home目录,或者你不希望用户使用网络Home目录, 那么这项应该选中。
[*]"UseUNC path from Active Directory to derive home location":如果你的AD账号设置了Home目录, 那么这个选项将准许把这个值,转化为一个URL以便在用户登录的时候安装这个共享.如果协议没有被正确设置,那么当用户登录的时候会产生错误.
http://docs.google.com/File?id=dfm3jbw9_44gnfj7xcc_b
6. 考虑在Administrative标签下的选项:
[*]"Prefer this fomain server": 如果有一个优选的服务器,在这里设置。如果这个服务器无法连通,AD插件会自动选找另一个在域森林中的服务器. 默认的,AD插件会自动连接最近的一个AD域服务器.
[*]"Allow administration by": 这个选项准许设定哪个AD组的成员可以获得这个机器本地的管理员权限.
[*]"Allow authentication from any doamin within the forest": 如果域森林包括多个域, 它准许AD插件在域森林中扩展搜索用户记录,以使其它域的用户可以在本机登录.
http://docs.google.com/File?id=dfm3jbw9_45gpm66rvj_b
7. 当绑定结束后, 返回LDapper程序,在计算机容器中找到你的计算机记录.
http://docs.google.com/File?id=dfm3jbw9_46f5hpb5f4_b
8. 返回Directory Utility,点击OK来关闭AD插件窗口.
9. 点击"Directory Servers"按钮, 如果你的机器按照前面的练习配置了,那么在服务器列表中删除它. 应用之后,关闭Directory Utility.
C. 检查目录连接性
1. 在Terminal中, 使用dscl命令来便览AD节点和用户记录。不要键入提示符:
client:~ admin# dscl localhost
/ > cd Active/ Directory/All/ Domains/
/Active Directory/All Domains > cd Users/
/Active Directory/All Domains/Users > ls
administrator
binder
guest
krbtgt
labadmin
student
/Active Directory/All Domains/Users > read student
...
2. 或者,可以输入参数来读取比如student用户信息:
% dscl /Active/ Directory/All/ Domains -read /Users/student
ADDomain: apple.edu
cn: Student Account
displayName: Student Account
distinguishedName: CN=Student Account,CN=Users,DC=apple,DC=ed
u
givenName: Student
homeDirectory:
homeDrive:
name: Student Account
primaryGroupID: 513
sAMAccountName: student
sAMAccountType: 805306368
sn: Account
userPrincipalName: student@apple.edu
AppleMetaNodeLocation: /Active Directory/apple.edu
AuthenticationAuthority: 1.0;Kerberosv5;86C47B88-6506-4F64-
8E1D-73A74071A391;student@APPLE.EDU;APPLE.EDU;
FirstName: Student
GeneratedUID: 86C47B88-6506-4F64-8E1D-73A74071A391
NFSHomeDirectory: /Users/student
LastName: Account
PasswordPlus: ********
PrimaryGroupID: 20
RealName: Student Account
RecordName: student student@apple.edu APPLE/student
SMBAccountFlags: 805306368
SMBGroupRID: 513
SMBHome:
SMBHomeDrive:
SMBLogoffTime: 0
SMBLogonTime: 127515826632546368
SMBPasswordLastSet: 127515390413065200
UniqueID: 113539976
3. 使用上面的dscl命令读AD插件产生的AD用户信息,并用LDapper显示的内容来对比. AD插件根据其它的用户信息产生一些动态属性. 比如: "NFSHomeDirectory", "UniqueID"和"PrimaryGroupID"等.
D. Home目录和AD插件
默认的, Ad插件会在本地的/Users目录里面产生一个用户Home目录并且在Desktop上通过SMB产生Windows网络共享.你可以在AD插件的"Advanced Options->User Expereice"里面配置这个操作,同样可以使用命令行工具dsconfigad. 详细的关于dsconfigad的说明见知识库文章"Using network homes with the Active Directory plug-in for Mac OS X 10.3.3 or later" (http://docs.info.apple.com/article.html?artnum=107943)
到目前为止,我们该思考一下"Using a Network Home Directory"和"Mounting network home atlogin"的区别了. 看上去它们类似,而主要区别在于,是把用户Home目录安装到网络共享,还是用户Home目录在本地然后再在Desktop上安装网络共享. 对于网络Home目录,用户所有的文档和配置信息,都直接存放在服务器上.而对于安装的网络Home,配置信息自动存放本地,用户必须手动把文档保存在网络Home里,否则可能丢失.
网络Home目录对于学生来说很好用,但是管理时可能头痛. 好多程序在启动时生成缓存文件. 如果好多学生同时登录并运行好多程序, 你的服务器(负载)和网络流量会大增.如果使用无线或者低速连接,或者使用如iLife的多媒体程序,那么强烈建议避免使用网络Home目录而是把Home目录安装在Desktop上(译者注:用户手动复制文档到服务器上).
移动的Home(Portable home Directory, PHD)目录是混合上面两者的方案.一个PHD会在本地产生一个网络Home目录的副本,然后在登录和登出时同步改变. 当用户找好由AD管理, 且AD架构是扩展的,那么PHD可以通过用户管理来配置,或者通过组或计算机管理配置.参见第7章的组和计算机管理和第8章的用户管理部分和Apple官方文档:http://www.apple.com/server/macosx/resources/
另外一个可以考虑的方案是考虑AD插件在AD用户记录保存的属性, 一般地不会被各个部门修改的. 在一个大型的大学校园, 对于管理员来说很难为各个部门提供存储空间. 在第9章中的"增长的记录"会考虑这个方案.
E. AD绑定自动化
当把计算机绑定到AD, 随着在AD插件提供的唯一的计算机ID,一个计算机账号会被生成.由于这个计算机和域建立了互信关系,每个绑定到AD域的计算机必须右唯一的账号. 对于一个管理大型实验室或者数百计算机的管理员来说是一个挑战.为了解决它,Mac OS X提供了一个自动绑定的工具. "dsconfigad"可以绑定计算机到AD并配置所有AD插件的行为.
提醒, 自动绑定过程需要你把账户密码保存在shell脚本中, 这明显预示着安全问题. 为了降低危险, 1)使用一个受限的账号仅用来添加计算机,2) 经常改变密码, 3)限制可以解除shell脚本的人, 4)删除shell历史文件.下面的命令假设你使用前置"sudo"引导,或者在一个shell脚本中用root权限.
1. 阅读dsconfigad的man帮助。
2. 使用下面命令查看当前状态:
dsconfigad -show
3. 如果已经绑定了AD, 销毁它.
dsconfigad -r -u binder -p 'password'
4. 使用下面的语法来绑定AD
dsconfigad -f -a "computerid" -domain "apple.edu" -u "binder" -p 'password' -ou "CN=computers, DC=apple,DC=edu"
5. 使用下面语句来配置高级选项:
dsconfigad -alldomain enable -localhome enable /
-protocol afp -mobile disable -mobileconfirm disable /
-useuncpath enable -shell "/bin/bash" -nopreferred /
-groups 'APPLE/Lab Administratores'
6. 添加Ad节点到搜索路径使用dscl命令:
dscl /Search -create / SearchPolicy CSPSearchPath
dscl /Search -append / CSPSearchPath “/Active Directory/All
Domains”
dscl /Search/Contacts -create / SearchPolicy CSPSearchPath
dscl /Search/Contacts -append / CSPSearchPath “/Active
Directory/All Domains”
目录绑定必须在OS启动时产生,也就是说, 目录绑定不能在部署系统镜象的后期动作中完成--绑定过程会变更在启动卷(译者注:原文是,bootdrive.)的/Library/Preferences/DirectoryServices文件. 右两种方式来做到在系统镜象部署后自动绑定.一个是生成一个强迫延迟运行的启动项(startup item)绑定脚本(它将有一段时间来使DirectoryServices建立,而loginwindow不会等待它完成). 另外一个方法是把绑定脚本作为login hook. 两个方法都产生同样效果, 而loginhook方法会更强壮,因为你可以迫使loginwindow直到DirectoryServices准备好后再显示.一个实例脚本在后面的参考一节中列出,它会完成绑定, 配置AD插件, 添加AD节点到搜索路径,禁止自动登录(auto-login)和安全地自我删除(和绑定密码)
要实施login hook:
1. 安装绑定脚本
2. 设置绑定脚本为login hook:
sudo defaults write /var/root/Library/Preferences/com.apple.loginwindow /
LoginHook /path/to/bind_script.sh
3. 在Accounts的配置面板里的Login options,设置自动登录到任意一个用户.
F. AD插件排错
除了所有在前面的OD的排错都可以应用到AD上,另外还有一些其它的事情考虑:
绑定问题:
[*]确定客户机和服务器的时钟误差不超过5分钟. Kerberos认证严格要求时间,建议所有机器都和同一个时间服务器同步时间.
[*]确认使用的网络管理员账户在指定的计算机OU中有写权限.
[*]确认使用的网络管理员账户正确(使用sAMAccountName和密码)
[*]确认客户机使用和AD同样的DNS服务器.AD管理员可以确认这个.
[*]确认你可以和服务器的53,88,137,389和445端口通信.
"You are unable o login to the user account "Student" at this time..."
[*]使用dsconfigad -show命令来看用户的home目录应该被绑定.
[*]然后使用dscl命令读取用户记录:
dscl /Active/ Directory/All/ Doamins -read /Users/student
[*]确认用户的home目录在哪里("HomeDirectory"属性), 并检查你可以使用指定的协议安装这个共享.
[*]如果需要,使用"dsconfigad -mountstyle AFP|SMB"来改变安装协议.
其它的错误:
[*]使用adcheck工具产看是否有其它错误。
页:
[1]