此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 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绑定重定向中,可以获取有关绑定重定向的详细信息。
为了解释此方法,请想象Cisco Systems(Forest 2)收购了另外两家公司的场景:Tandberg(林3)和Webex(林1)。 在迁移阶段,集成每家公司的AD结构,以便部署单个思科统一通信集群。
在本例中,思科公司(林2)有两个域,一个是名为CISCO的林根域(dns cisco.com),另一个是名为EMERG的子域(dns emerg.cisco.com)。 这两个域都有一个域控制器,也是全局目录,每个域都托管在Windows 2008 Server SP2中。
Company Tandberg(林3)有一个域,其域控制器也是全局目录,并托管在Windows 2008 Server SP2中。
Company Webex(林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服务启动失败,错误为“setup could not start the service...” +错误代码8007041d。
注意:CUCM仅支持单个应用程序目录分区,当前不支持多分区。
请参阅步骤5:练习使用应用程序目录分区,了解有关如何创建应用程序目录分区的信息。为要与基于LDAP推荐(RFC 2251)的工作同步的每个域创建目录分区的过程,并要求LDAP客户端(CUCM、CUP等)支持推荐。
单击“是,创建应用程序目录分区”单选按钮。在实例的分区名称字段中输入分区名称。请勿提供与向导示例中类似的cn,因为大多数时候在架构中创建错误。在此方案中,输入了与托管AD LDS的AD域控制器(dc=Cisco,dc=com)的分区。单击 Next。
单击“Currently 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支持。
单击“是,创建应用程序目录分区”单选按钮。输入分区名称。为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 directory目录分开。打开命令提示符,在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选项和命令格式,请参阅使用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主机名>/certsrv并完成以下步骤:
返回证书颁发机构界面,然后单击“待处理证书”(Pending Certificates)文件夹。右键单击ADAM/AD-LDS计算机发出的证书请求并颁发证书。
证书现已创建并驻留在“已颁发的证书”文件夹中。接下来,您需要下载并安装证书:
要让ADAM服务使用证书,您需要将证书放在ADAM服务的个人存储中:
要将服务器身份验证证书的读取权限授予网络服务帐户,请完成以下步骤:
有关详细信息,请参阅附录A:为AD LDS配置LDAP over SSL要求。
然后,将颁发证书的CA的证书作为CUCM目录信任上传到ADAM/AD LDS计算机。
有关其他详细信息,请参阅《思科统一通信操作系统管理指南》。
选中该复选框以在LDAP Directory页面和LDAP Authentication页面中使用SSL。
为LDAP端口输入50001(在本示例中),该端口是安装ADAM/AD LDS实例时提供的SSL端口号。
要禁用绑定重定向的SSL要求,请完成以下步骤:
CUCM 9.1(2)版及更高版本支持ADAM/AD LDS同步和身份验证。
uid仅用于独立ADAM/AD LDS,而不用于AD多林支持。
目前,对于LDAP服务器类型“Microsoft ADAM或轻量目录服务”模式,samAccountName不包括在“用户ID的LDAP属性”下拉列表中。原因是它不是独立ADAM/AD LDS支持的属性。如果需要使用映射到sAMAccountName的CUCM用户ID,则应将该协议配置为AD。
不再使用对象类User。因此,需要更改LDAP过滤器以使用userProxy而不是User。
默认过滤器为:
(&(objectclass=user)(!(objectclass=computer))(!(msDS-UserAccountDisabled=TRUE))
要修改此过滤器,请使用Web浏览器登录CCMAdmin,然后从LDAP配置菜单中选择LDAP自定义过滤器选项。
如上图所示,在配置LDAP同步协议时,此过滤器在LDAP目录页中使用。