يصف هذا المستند الطريقة التي يعمل بها بروتوكول الوصول إلى الدليل خفيف الوزن (LDAP) بين وحدة تحكم الطلب التلقائي الموحدة (CUAC) من Cisco و Microsoft Active Directory (AD) والإجراءات التي يتم إستخدامها لدمج النظامين.
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
تستند المعلومات الواردة في هذا المستند إلى الإصدار 10.x من CUAC.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
في إصدارات CUAC السابقة، يحصل الخادم على المستخدمين مباشرة من مدير الاتصالات الموحدة (CUCM) من Cisco من خلال الاستعلامات وعوامل التصفية المحددة مسبقا. مع إصدار CUAC Premium (CUACPE)، يسمح للمسؤولين بدمج واستيراد المستخدمين مباشرة من AD. ويمنح هذا الأمر المسؤولين مرونة لتنفيذ السمات والمرشحات التي يختارونها هم ومتطلباتهم الخاصة.
أكمل الخطوات التالية من أجل دمج CUAC مع الإعلان واستيراد مستخدمين من الإعلان:
فيما يلي ملخص لعملية LDAP بين CUAC و AD:
هنا sniffer التقاط أن يوضح هذا steps:
بمجرد اكتمال التكوين على CUAC وإعادة تشغيل مكون LDAP الإضافي، يقوم خادم CUAC بإعداد جلسة TCP باستخدام AD.
يرسل CUAC بعد ذلك طلب BIND للمصادقة مع خادم AD. إذا كانت المصادقة ناجحة، يرسل AD إستجابة نجاح الربط إلى CUAC. وبهذا، يحاول كلا الخادمين إعداد جلسة عمل على المنفذ 389 لمزامنة المستخدمين ومعلوماتهم.
فيما يلي التكوين على الخادم الذي يحدد الاسم المميز، والذي يتم إستخدامه للمصادقة في معاملة BIND:
تظهر هذه الرسائل في الربط يلتقط:
عند نجاح الربط، يرسل الخادم طلب بحث إلى AD لاستيراد المستخدمين. يحتوي طلب البحث هذا على المرشح والسمات المستخدمة من قبل AD. ثم يبحث AD عن المستخدمين ضمن قاعدة البحث المحددة (كما هو مفصل في رسالة طلب البحث)، والتي تستوفي المعايير الموجودة في المرشح والتحقق من الخصائص.
هنا مثال على طلب البحث الذي تم إرساله بواسطة CUCM:
Lightweight Directory Access Protocol
LDAPMessage searchRequest(2) "dc=aloksin,dc=lab" wholeSubtree
messageID: 2
protocolOp: searchRequest (3)
searchRequest
baseObject: dc=aloksin,dc=lab
scope: wholeSubtree (2)
derefAliases: derefAlways (3)
sizeLimit: 0
timeLimit: 0
typesOnly: False
Filter: (&(&(objectclass=user)(!(objectclass=Computer)))
(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))
filter: and (0)
and: (&(&(objectclass=user)(!(objectclass=Computer)))
(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))
and: 3 items
Filter: (objectclass=user)
and item: equalityMatch (3)
equalityMatch
attributeDesc: objectclass
assertionValue: user
Filter: (!(objectclass=Computer))
and item: not (2)
Filter: (objectclass=Computer)
not: equalityMatch (3)
equalityMatch
attributeDesc: objectclass
assertionValue: Computer
Filter: (!(UserAccountControl:1.2.840.113556.1.4.
803:=2))
and item: not (2)
Filter: (UserAccountControl:1.2.840.113556
.1.4.803:=2)
not: extensibleMatch (9)
extensibleMatch UserAccountControl
matchingRule: 1.2.840.113556.
1.4.803
type: UserAccountControl
matchValue: 2
dnAttributes: False
attributes: 15 items
AttributeDescription: objectguid
AttributeDescription: samaccountname
AttributeDescription: givenname
AttributeDescription: middlename
AttributeDescription: sn
AttributeDescription: manager
AttributeDescription: department
AttributeDescription: telephonenumber
AttributeDescription: mail
AttributeDescription: title
AttributeDescription: homephone
AttributeDescription: mobile
AttributeDescription: pager
AttributeDescription: msrtcsip-primaryuseraddress
AttributeDescription: msrtcsip-primaryuseraddress
[Response In: 103]
controls: 1 item
Control
controlType: 1.2.840.113556.1.4.319 (pagedResultsControl)
criticality: True
SearchControlValue
size: 250
cookie: <MISSING>
عندما يستقبل AD هذا الطلب من CUCM، فإنه يبحث عن مستخدمين في baseObject: dc=aloksin،dc=lab، مما يفي بعامل التصفية. يتم تجاهل أي مستخدم لا يفي بالمتطلبات التفصيلية بواسطة عامل التصفية. يستجيب الإعلان إلى CUCM مع جميع المستخدمين الذين تمت تصفيتها ويرسل قيم السمات المطلوبة.
لم يتم تكوين CUAC بشكل افتراضي، لا توجد تفاصيل تعيين تم تكوينها لاستيراد سمات للمستخدمين، لذلك يجب إدخال هذه التفاصيل يدويا. لإنشاء هذه التعيينات، انتقل إلى تكوين النظام > إدارة مصدر الدليل > خدمة Active Directory > تعيين حقل الدليل.
يسمح للمسؤولين بتعيين الحقول حسب متطلباتهم الخاصة. فيما يلي مثال:
يتم إرسال معلومات حقل المصدر إلى AD في رسالة طلب البحث. عندما يرسل الإعلان رسالة إستجابة البحث، فإن تلك القيم يتم تخزينها في الحقول المستهدفة على CUACPE.
لاحظ أن CUAC لديه بشكل افتراضي فئة الكائن معينة إلى جهات الاتصال. في حالة إستخدام هذا الإعداد الافتراضي، يظهر المرشح الذي يتم إرساله إلى AD كما هو موضح هنا:
Filter: (&(&(objectclass=contact)( ............
باستخدام عامل التصفية هذا، لا يقوم AD بإرجاع أي مستخدمين إلى CUACPE، نظرا لأنه يقوم بالبحث عن جهات الاتصال في قاعدة البحث، وليس المستخدمين. لهذا السبب، يجب تغيير فئة الكائن إلى المستخدم:
حتى هذه النقطة، هذا عملية إعداد يتلقى يكون شكلت على ال CUAC:
في هذا المثال، يتم تكوين الخاصية "فريدة" ك sAMAccountName. إذا قمت بإعادة تشغيل ملحق LDAP على CUAC وفحصت رسالة طلب البحث، فإنه لا يحتوي على سمات أو مرشح باستثناء ObjectClass=user:
Lightweight Directory Access Protocol
LDAPMessage searchRequest(224) "dc=aloksin,dc=lab" wholeSubtree
messageID: 224
protocolOp: searchRequest (3)
searchRequest
baseObject: dc=aloksin,dc=lab
scope: wholeSubtree (2)
derefAliases: neverDerefAliases (0)
sizeLimit: 1
timeLimit: 0
typesOnly: True
Filter: (ObjectClass=user)
filter: equalityMatch (3)
equalityMatch
attributeDesc: ObjectClass
assertionValue: user
attributes: 0 items
[Response In: 43]
لاحظ أن قاعدة الدليل مفقودة هنا. لمزامنة جهات الاتصال مع AD، يجب إنشاء قاعدة. بشكل افتراضي، لم يتم تكوين قاعدة الدليل. بمجرد إنشاء أحد المرشحات، يكون عامل التصفية موجودا بالفعل. لا حاجة لتغيير عامل التصفية، حيث يجب إستيراد كافة المستخدمين الذين لديهم رقم هاتف.
قم بإعادة تشغيل الوظيفة الإضافية LDAP من أجل بدء مزامنة مع AD واستيراد المستخدمين. هنا طلب البحث من CUAC:
Lightweight Directory Access Protocol
LDAPMessage searchRequest(4) "dc=aloksin,dc=lab" wholeSubtree
messageID: 4
protocolOp: searchRequest (3)
searchRequest
baseObject: dc=aloksin,dc=lab
scope: wholeSubtree (2)
derefAliases: neverDerefAliases (0)
sizeLimit: 0
timeLimit: 15
typesOnly: False
Filter: (&(&(objectclass=user)(telephoneNumber=*))
(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))
filter: and (0)
and: (&(&(objectclass=user)(telephoneNumber=*))
(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))
and: 3 items
Filter: (objectclass=user)
and item: equalityMatch (3)
equalityMatch
attributeDesc: objectclass
assertionValue: user
Filter: (telephoneNumber=*)
and item: present (7)
present: telephoneNumber
Filter: (!(UserAccountControl:1.2.840.113556.
1.4.803:=2))
and item: not (2)
Filter: (UserAccountControl:1.2.840.113556.
1.4.803:=2)
not: extensibleMatch (9)
extensibleMatch UserAccountControl
matchingRule: 1.2.840.113556.1.
4.803
type: UserAccountControl
matchValue: 2
dnAttributes: False
attributes: 10 items
AttributeDescription: TELEPHONENUMBER
AttributeDescription: MAIL
AttributeDescription: GIVENNAME
AttributeDescription: SN
AttributeDescription: sAMAccountName
AttributeDescription: ObjectClass
AttributeDescription: whenCreated
AttributeDescription: whenChanged
AttributeDescription: uSNCreated
AttributeDescription: uSNChanged
[Response In: 11405]
controls: 1 item
Control
controlType: 1.2.840.113556.1.4.319 (pagedResultsControl)
SearchControlValue
size: 500
cookie: <MISSING>
إذا وجد AD مستخدمين يتطابقون مع المعايير المفصلة في رسالة طلب البحث، يرسل بعد ذلك رسالة SearchResEntry التي تحتوي على معلومات المستخدم.
فيما يلي رسالة SearchResEntry:
Lightweight Directory Access Protocol
LDAPMessage searchResEntry(4) "CN=Suhail Angi,CN=Users,DC=aloksin,DC=lab" [4 results]
messageID: 4
protocolOp: searchResEntry (4)
searchResEntry
objectName: CN=Suhail Angi,CN=Users,DC=aloksin,DC=lab
attributes: 9 items
PartialAttributeList item objectClass
type: objectClass
vals: 4 items
top
person
organizationalPerson
user
PartialAttributeList item sn
type: sn
vals: 1 item
Angi
PartialAttributeList item telephoneNumber
type: telephoneNumber
vals: 1 item
1002
PartialAttributeList item givenName
type: givenName
vals: 1 item
Suhail
PartialAttributeList item whenCreated
type: whenCreated
vals: 1 item
20131222000850.0Z
PartialAttributeList item whenChanged
type: whenChanged
vals: 1 item
20131222023413.0Z
PartialAttributeList item uSNCreated
type: uSNCreated
vals: 1 item
12802
PartialAttributeList item uSNChanged
type: uSNChanged
vals: 1 item
12843
PartialAttributeList item sAMAccountName
type: sAMAccountName
vals: 1 item
sangi
[Response To: 11404]
[Time: 0.001565000 seconds]
Lightweight Directory Access Protocol
LDAPMessage searchResEntry(4) "CN=Pragathi NS,CN=Users,DC=aloksin,DC=lab" [5 results]
messageID: 4
protocolOp: searchResEntry (4)
searchResEntry
objectName: CN=Pragathi NS,CN=Users,DC=aloksin,DC=lab
attributes: 9 items
PartialAttributeList item objectClass
type: objectClass
vals: 4 items
top
person
organizationalPerson
user
PartialAttributeList item sn
type: sn
vals: 1 item
NS
PartialAttributeList item telephoneNumber
type: telephoneNumber
vals: 1 item
1000
.......
....{message truncated}..........
.....
بمجرد إستلام هذه القيم بواسطة CUAC، فإنها تخزنها في جدول لغة الاستعلام المنظمة (SQL). يمكنك بعد ذلك تسجيل الدخول إلى وحدة التحكم، وتحضر وحدة التحكم قائمة المستخدمين من جدول SQL هذا على خادم CUACPE.