Mac OS X Leopard与目录服务(AD/OD)集成宝典(6)

来源:互联网 发布:穆雅斓淘宝店铺叫什么 编辑:程序博客网 时间:2024/05/01 20:23

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环境配置目录.

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旁边点击展开三角来浏览用户记录. 点击其中一个记录来查看其中内容.

用户记录显示,都有那些可用的用户记录存在于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.

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以便在用户登录的时候安装这个共享.如果协议没有被正确设置,那么当用户登录的时候会产生错误.

6. 考虑在Administrative标签下的选项:

  • "Prefer this fomain server": 如果有一个优选的服务器,在这里设置。如果这个服务器无法连通,AD插件会自动选找另一个在域森林中的服务器. 默认的,AD插件会自动连接最近的一个AD域服务器.
  • "Allow administration by": 这个选项准许设定哪个AD组的成员可以获得这个机器本地的管理员权限.
  • "Allow authentication from any doamin within the forest": 如果域森林包括多个域, 它准许AD插件在域森林中扩展搜索用户记录,以使其它域的用户可以在本机登录.

 

7. 当绑定结束后, 返回LDapper程序,在计算机容器中找到你的计算机记录.

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工具产看是否有其它错误。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝喝奶粉上火便秘怎么办 a2奶粉吃了便秘怎么办 两个月宝宝两天没有大便怎么办 婴儿一直拉肚子吃药也不好怎么办 吃奶粉的婴儿便秘怎么办 一个多月小狗便便不成形怎么办 3个月宝宝不拉屎怎么办 好几天不拉大便怎么办 20个月宝宝大便干燥怎么办 两月宝宝三天没大便怎么办 六个月宝宝大便干燥怎么办 五个月宝宝拉肚子怎么办拉水样 2个月婴儿拉稀水怎么办 两个月的宝宝拉肚子怎么办 两天了不拉大便怎么办 25天的宝宝便秘怎么办 2个月宝宝便秘怎么办 猫拉绿色稀水怎么办 50天的宝宝便秘怎么办 人工喂养大便次数少怎么办 4个月宝宝肠炎怎么办? 三个月的宝宝拉肚子有奶瓣怎么办 吃米粉后不拉屎怎么办 宝宝拉绿色稀水怎么办 3个月宝宝肠胃炎怎么办 两个月婴儿拉水怎么办 3个月宝宝拉绿水怎么办 宝宝拉绿色的水怎么办 宝宝大便绿又水怎么办 8个月婴儿便秘怎么办 2个月婴儿便秘怎么办 四个月宝宝拉稀带有泡沫怎么办 六个月宝宝拉肚子怎么办拉水 婴儿拉的是沫怎么办 婴儿拉泡沫屎是怎么办 宝宝吃奶粉上火大便干燥怎么办 没满月的宝宝拉肚子怎么办 婴儿吃奶粉上火不大便怎么办 四个月宝宝拉沫怎么办 4个月小孩拉肚子怎么办 3个月的宝宝拉稀怎么办