此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档讨论如何在多森林环境中配置Cisco Unified Communication Manager(CUCM)目录集成。
Cisco 建议您:
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
Microsoft AD LDS(以前称为ADAM)可用于为启用目录的应用程序提供目录服务。AD LDS可用于存储数据,而不是使用组织的Active Directory域服务(AD DS)数据库来存储启用目录的应用程序数据。AD LDS可以与AD DS结合使用,这样您就可以拥有一个安全帐户的中心位置(AD DS)和另一个位置,以支持应用配置和目录数据(AD LDS)。 使用AD LDS,您可以减少与AD复制相关的开销,无需扩展AD架构即可支持应用,还可以对目录结构进行分区,以便AD LDS服务仅部署到需要支持启用目录的应用的服务器上。
ADAM和AD之间有许多区别,ADAM只能提供AD提供的部分功能。

本文档的目的是解释允许CUCM或任何其它使用目录集成服务(DirSync)的思科产品从不同林中存在的不同AD域获取用户信息并执行身份验证的机制。为实现此目标,使用ADAM将其用户数据库与不同的AD域控制器或其他LDAP源同步。
ADAM可以创建用户数据库并存储用户的详细信息。单点登录(SSO)功能是必需的,以避免最终用户必须在不同系统中维护不同的凭证集;因此,使用ADAM绑定重定向。ADAM绑定重定向是支持LDAP绑定作为身份验证机制的应用程序的特殊功能。在某些情况下,特殊方案或命名上下文可能会迫使您避免AD,从而使ADAM成为一种必要的选择。这避免了用户由于使用具有其自己的用户ID和密码的附加目录而必须记住多个密码。
ADAM中的特殊用户代理对象映射到常规AD用户帐户。用户代理没有实际密码存储在ADAM对象本身中。当应用程序执行正常的绑定操作时,它在本地检查ID,但按照下面的AD检查密码,如下图所示。应用程序不需要知道此AD交互。

ADAM绑定重定向应仅在应用程序可以执行与ADAM的简单LDAP绑定的特殊情况下使用。但是,应用仍需要将用户与AD中的安全主体相关联。
当使用称为代理对象的特殊对象尝试绑定到ADAM时,就会发生ADAM绑定重定向。代理对象是ADAM中代表AD中安全主体的对象。 ADAM中的每个代理对象都包含AD中用户的SID。当用户尝试绑定到代理对象时,ADAM获取存储在代理对象中的SID以及绑定时提供的密码,并将SID和密码提供给AD以进行身份验证。ADAM中的代理对象不存储密码,用户无法通过ADAM代理对象更改其AD密码。
由于初始绑定请求是一个简单的LDAP绑定请求,因此密码以纯文本形式显示给ADAM。因此,默认情况下,目录客户端和ADAM之间需要SSL连接。ADAM使用Windows安全API向AD提供密码。
您可以在了解ADAM绑定重定向中获得有关绑定重定向的详细信息。
为了解释此方法,请想象思科系统公司(Forest 2)收购了另外两家公司的情景:Tandberg(森林3)和Webex(森林1)。 在迁移阶段,集成每个公司的AD结构,以便部署单个思科统一通信集群。

在本例中,Cisco公司(Forest 2)有两个域:名为CISCO的林根域(dns cisco.com)和名为EMERG的子域(dns emerg.cisco.com)。 这两个域都有一个域控制器,该域控制器也是全局目录,并且每个域都托管在Windows 2008 Server SP2中。
Company Tandberg(Forest 3)有一个域,其域控制器也是全局编录,它在Windows 2008 Server SP2中托管。
Company Webex(Forest 1)有一个域,其域控制器也是全局目录,它托管在Windows 2003 R2 Server SP2中。
AD LDS安装在域CISCO的域控制器中,或者可以是单独的计算机;实际上,它可能位于三个林中的一个林中的任何位置。DNS基础结构必须到位,以便一个林中的域可以与其他林中的域通信,并在林之间建立适当的信任关系和验证。
要使用户身份验证正常工作,您需要在托管ADAM实例的域和托管用户帐户的其他域之间具有信任。如果需要,此信任可以是单向信任(从托管ADAM实例的域到托管用户帐户的域的传出信任)。 这样,ADAM实例就可以将身份验证请求转发到这些帐户域中的DC。
此外,您需要拥有来自两个帐户域的用户帐户,该用户帐户有权访问域中所有用户帐户的所有属性。此帐户由ADAMSync用于将“帐户域”用户同步到ADAM。
最后但同样重要的是,运行ADAM的计算机必须能够找到所有域(DNS),找到两个域中的域控制器(使用DNS),并连接到这些域控制器。
完成以下步骤以设置互信关系:









这是您为Tandberg域和Webex域运行此流程后得到的结果。默认情况下出现域,因为它是子域。Click OK.


选中Active Directory轻型目录服务复选框。单击 Next。


要在2012年设置AD LDS,请完成以下步骤:






AD LDS可以使用不同端口运行不同的服务实例,这允许不同的用户目录“应用”在同一台计算机上运行。默认情况下,AD LDS选择端口389/LDAP和636/LDAPS,但如果系统已有运行它们的任何LDAP服务,它将使用端口50000/LDAP和50001/LDAPS。每个实例将有一对端口,根据之前使用的数字递增。
在某些情况下,由于Microsoft Bug,Microsoft DNS服务器已使用这些端口,实例向导会给出错误(不言自明)。 当您保留TCP/IP协议栈中的端口时,可以修复此错误。如果发现此问题,请参阅AD LDS服务启动失败,并显示错误“安装程序无法启动服务……” +错误代码8007041d。




注意:CUCM仅支持单个应用程序目录分区,当前不支持多分区。
请参阅步骤5:练习使用应用程序目录分区,了解有关如何创建应用程序目录分区的信息。根据LDAP参考(RFC 2251)为要同步的每个域创建目录分区的过程,该过程要求LDAP客户端(CUCM、CUP等)支持推荐。
单击Yes, create an application directory partition单选按钮。在分区名称(Partition name)字段中输入实例的分区名称。请勿在向导的示例中提供cn,因为大多数时候在方案中创建错误。在此场景中,输入与托管AD LDS的AD域控制器(dc=Cisco,dc=com)相同的分区。单击 Next。


单击Current logged on user单选按钮。输入具有管理权限的用户的名称。单击 Next。


注意:如果ADAM安装在Windows 2003服务器上,则上一个屏幕将只有四个选项: MS-AZMan.LDF、MS-InetOrgPerson.LDF、MS-User.LDF和MS-UserProxy.LDF。在这四个选项中,仅选中MS-User.LDF和MS-InetOrgPerson.LDF的复选框。






注意:CUCM仅支持单个应用程序目录分区,当前不支持多分区。
请参阅步骤5:练习使用应用程序目录分区,了解有关如何创建应用程序目录分区的信息。根据LDAP参考(RFC 2251)为要同步的每个域创建目录分区的过程,该过程要求LDAP客户端(CUCM、CUP等)支持推荐。有关详细信息,请参阅Microsoft支持。
单击Yes, create an application directory partition单选按钮。输入分区名称。将LDS的分区创建为cisco.com。可以提供任何合适的值。单击 Next。









如果用户ID(sAMAccountNames)在不同域中是唯一的,并且不同林的不同域中没有多个具有相同ID的用户,则用户可以从AD同步到AD LDS上的相应林,所有这些林都可以存在于多林设置中AD LDS上的单个分区上。例如,请考虑CUCM中的Active Directory多林支持方案部分中的图,如果用户ID“alice”仅存在于三个域中的一个域中,则此方案中的设置如下:
分区林DN
P1 cisco.com DC=cisco,DC=com
webex.com DC=webex, DC=cisco,DC=com
tandberg.com DC=Tandberg, DC=cisco,DC=com
要使用AD LDS配置CUCM,用户ID(sAMAccountName)在所有林中必须是唯一的。CUCM当前仅支持AD LDS中的一个分区。
如果sAMAccountNames不是唯一的,则考虑使用以下任何属性(如果它们唯一标识用户帐户):email、telephoneNumber、employeeNumber、uid或userPrincipalName。






用于帮助组织需要生成的文件的选项是创建单独的目录,以允许这些文件从c:\windows\adam主目录分离。打开命令提示符,并在c:\windows\adam中创建日志目录。
cd \windows\adam
mkdir logs
ldifde -i -s localhost:50000 -c CN=Configuration,DC=X
#ConfigurationNamingContext -f diff-schema.ldf -j c:\windows\adam\logs
有关其他格式选项和命令格式,请参阅使用LDIFDE将目录对象导入和导出到Active Directory。

需要创建代理身份验证的对象,并且不会使用对象类“user”。创建的对象类userProxy是允许绑定重定向的对象。对象类详细信息需要在ldif文件中创建。该文件是新文件的创建,在本例中为MS-UserProxy-Cisco.ldf。 此新文件从原始MS-UserProxy.ldf生成,并使用文本编辑程序进行编辑,以获得以下内容:
#==================================================================
# @@UI-Description: AD LDS simple userProxy class.
#
# This file contains user extensions for default ADAM schema.
# It should be imported with the following command:
# ldifde -i -f MS-UserProxy.ldf -s server:port -b username domain password -k -j . -c
"CN=Schema,CN=Configuration,DC=X" #schemaNamingContext
#
#==================================================================
dn: CN=User-Proxy,CN=Schema,CN=Configuration,DC=X
changetype: ntdsSchemaAdd
objectClass: top
objectClass: classSchema
cn: User-Proxy
subClassOf: top
governsID: 1.2.840.113556.1.5.246
schemaIDGUID:: bxjWYLbzmEiwrWU1r8B2IA==
rDNAttID: cn
showInAdvancedViewOnly: TRUE
adminDisplayName: User-Proxy
adminDescription: Sample class for bind proxy implementation.
objectClassCategory: 1
lDAPDisplayName: userProxy
systemOnly: FALSE
possSuperiors: domainDNS
possSuperiors: organizationalUnit
possSuperiors: container
possSuperiors: organization
defaultSecurityDescriptor:
D:(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)S:
defaultHidingValue: TRUE
defaultObjectCategory: CN=User-Proxy,CN=Schema,CN=Configuration,DC=X
systemAuxiliaryClass: msDS-BindProxy
systemMayContain: userPrincipalName
systemMayContain: givenName
systemMayContain: middleName
systemMayContain: sn
systemMayContain: manager
systemMayContain: department
systemMayContain: telephoneNumber
systemMayContain: mail
systemMayContain: title
systemMayContain: homephone
systemMayContain: mobile
systemMayContain: pager
systemMayContain: msDS-UserAccountDisabled
systemMayContain: samAccountName
systemMayContain: employeeNumber
systemMayContain: initials
systemMayContain: ipPhone
systemMayContain: displayName
systemMayContain: msRTCSIP-primaryuseraddress
systemMayContain: uid
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
将MS-UserProxy-Cisco.ldf文件保存在C:\windows\adam中。
将新对象类导入AD LDS。
ldifde -i -s localhost:50000 -c CN=Configuration,DC=X #ConfigurationNamingContext -f
MS-UserProxy-Cisco.ldf -j c:\windows\adam\logs

现在需要将每个域的用户导入AD LDS。对于需要同步的每个域,都需要重复此步骤。此示例仅显示针对其中一个域的进程。从原始MS-AdamSyncConf.xml开始,为需要同步的每个域创建一个XML文件,并使用特定于每个域的详细信息修改文件,以包含此内容:
<?xml version="1.0"?>
<doc>
<configuration>
<description>Adam-Sync1</description>
<security-mode>object</security-mode>
<source-ad-name>ad2k8-1</source-ad-name>
<source-ad-partition>dc=cisco,dc=com</source-ad-partition>
<source-ad-account></source-ad-account>
<account-domain></account-domain>
<target-dn>dc=cisco,dc=com</target-dn>
<query>
<base-dn>dc=cisco,dc=com</base-dn>
<object-filter>
(|(&(!cn=Administrator)(!cn=Guest) (!cn=ASPNET)
(!cn=krbtgt)(sAMAccountType=805306368))(&(objectClass=user)(isDeleted=TRUE)))
</object-filter>
<attributes>
<include>objectSID</include>
<include>mail</include>
<include>userPrincipalName</include>
<include>middleName</include>
<include>manager</include>
<include>givenName</include>
<include>sn</include>
<include>department</include>
<include>telephoneNumber</include>
<include>title</include>
<include>homephone</include>
<include>mobile</include>
<include>pager</include>
<include>msDS-UserAccountDisabled</include>
<include>samAccountName</include>
<include>employeeNumber</include>
<include>initials</include>
<include>ipPhone</include>
<include> displayName</include>
<include> msRTCSIP-primaryuseraddress</include>
<include>uid</include>
<exclude></exclude>
</attributes>
</query>
<user-proxy>
<source-object-class>user</source-object-class>
<target-object-class>userProxy</target-object-class>
</user-proxy>
<schedule>
<aging>
<frequency>0</frequency>
<num-objects>0</num-objects>
</aging>
<schtasks-cmd></schtasks-cmd>
</schedule>
</configuration>
<synchronizer-state>
<dirsync-cookie></dirsync-cookie>
<status></status>
<authoritative-adam-instance></authoritative-adam-instance>
<configuration-file-guid></configuration-file-guid>
<last-sync-attempt-time></last-sync-attempt-time>
<last-sync-success-time></last-sync-success-time>
<last-sync-error-time></last-sync-error-time>
<last-sync-error-string></last-sync-error-string>
<consecutive-sync-failures></consecutive-sync-failures>
<user-credentials></user-credentials>
<runs-since-last-object-update></runs-since-last-object-update>
<runs-since-last-full-sync></runs-since-last-full-sync>
</synchronizer-state>
</doc>
在此文件中,应替换这些标记以匹配域:
有关如何创建<object-filter>的详细信息,请参阅搜索过滤器语法。
将新创建的XML文件保存在C:\windows\adam中。
打开命令窗口cd \windows\adam。
输入命令ADAMSync /install localhost:50000 c:\windows\ADAM\AdamSyncConf1.xml /log c:\windows\adam\logs\install.log。
验证文件AdamSyncConf1.xml是否是新创建的XML文件。
使用命令ADAMSync /sync localhost:50000 "dc=cisco,dc=com" /log c:\windows\adam\logs\sync.log同步用户。
结果应类似于:

要完成从AD到ADAM的自动同步,请使用Windows中的任务计划程序。
创建包含下列内容的.bat文件:
"C:\Windows\ADAM\ADAMSync" /install localhost:50000 c:\windows\ADAM\AdamSyncConf1.xml /log c:\windows\adam\logs\install.log
"C:\Windows\ADAM\ADAMSync" /sync localhost:50000 "dc=cisco,dc=com" /log c:\windows\adam\logs\syn.log
安排任务根据需要运行.bat文件。这将处理AD中发生的添加、修改和删除,以在ADAM中反映出来。
您可以创建另一个.bat文件,并将其安排为从其他林完成自动同步。














默认情况下,通过绑定重定向绑定到 ADAM 需要一个 SSL 连接。SSL要求在运行ADAM的计算机上和作为客户端连接到ADAM的计算机上安装和使用证书。如果您的 ADAM 测试环境中没有安装证书,您也可以禁用对 SSL 的要求。
默认情况下,SSL处于启用状态。要使LDAPS协议在ADAM/LDS中运行,您需要生成证书。
在本示例中,使用Microsoft证书颁发机构服务器颁发证书。要请求证书,请转到Microsoft CA的网页 — http://<MSFT CA hostname>/certsrv,并完成以下步骤:
返回证书颁发机构界面并单击Pending Certificates文件夹。右键点击ADAM/AD-LDS计算机发出的证书请求并颁发证书。
证书现已创建并位于“已颁发的证书”文件夹中。接下来,您需要下载并安装证书:
为了让ADAM服务使用证书,您需要将证书放在ADAM服务的个人存储中:
要向网络服务帐户授予服务器身份验证证书的读取权限,请完成以下步骤:
有关详细信息,请参阅附录A:为AD LDS配置LDAP over SSL要求。
接下来,将颁发证书的CA的证书作为CUCM目录信任上传到ADAM/AD LDS计算机。
有关其他详细信息,请参阅Cisco Unified Communications Operations System Administration Guide。
选中此复选框以在LDAP目录页面和LDAP身份验证页面中使用SSL。
为LDAP端口输入50001(在本例中),这是安装ADAM/AD LDS实例时给定的SSL端口号。
要禁用绑定重定向的SSL要求,请完成以下步骤:
CUCM 9.1(2)版及更高版本支持ADAM/AD LDS同步和身份验证。
uid仅用于独立的ADAM/AD LDS,不用于AD多林支持。

目前,对于LDAP服务器类型“Microsoft ADAM或轻量级目录服务”模式,samAccountName未包含在LDAP Attribute for Userid下拉列表中。原因是它不是独立ADAM/AD LDS支持的属性。如果需要使用映射到sAMAccountName的CUCM用户ID,则应该将该协议配置为AD。




对象类User不再使用。因此,需要更改LDAP过滤器以使用userProxy而不是User。
默认过滤器为:
(&(objectclass=user)(!(objectclass=Computer))(!(msDS-UserAccountDisabled=TRUE)))
要修改此过滤器,请使用Web浏览器登录到CCMAdmin,然后从LDAP配置菜单中选择LDAP自定义过滤器选项。

如上图所示,配置LDAP同步协议时,在LDAP目录页面中使用此过滤器。

反馈