このドキュメントでは、Cisco Unified Communications Manager(旧称 CallManager)バージョン 5.0 以降と Active Directory の統合のセットアップ、構成、トラブルシューティング方法について説明します。
この設定を行う前に、次の要件が満たされていることを確認します。
Microsoft Windows および Active Directory(AD)の基本的な知識
このドキュメントの情報は、Cisco Unified Communications Manager 6.1(2) に基づくものです。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
デフォルトでは、統合されていない Cisco Unified Communications Manager(CUCM)には 2 つのユーザのタイプ、 エンド ユーザとアプリケーション ユーザがあります。
エンド ユーザ:実在の人間でかつ対話形式のログインに関連付けられているすべてのユーザ。 このカテゴリには、すべての IP テレフォニー ユーザの他、User Groups and Roles 設定(以前のバージョンの Unified CM にある Cisco Multilevel Administration 機能に相当)を使用する場合の Unified CM 管理者も含まれます。
アプリケーション ユーザ:Cisco IP Communications の他の機能またはアプリケーション(Cisco Attendant Console、Cisco IP Contact Center Express、Cisco Unified Communication Manager Assistant など)に関連付けられているすべてのユーザ。 これらのアプリケーションは Unified CM に対して認証する必要がありますが、これらの内部ユーザは対話式ログインができません。 これは、たとえば、CCMAdministrator、AC、JTAPI、RM、CCMQRTSecureSysUser、CCMQRTSysUser、CCMSysUser、IPMASecureSysUser、IPMASysUser、WDSecureSysUser、および WDSysUser などのアプリケーション間の内部通信を処理するだけです。
Cisco Unified Communications Manager を Active Directory と統合する場合、ディレクトリ統合プロセスは Cisco ディレクトリ同期(DirSync)という Unified CM の内部ツールを使用して、社内 LDAP ディレクトリからいくつかのユーザ属性を(手動でまたは定期的に)同期します。 この機能を有効にすると、エンド ユーザは社内ディレクトリから自動的にプロビジョニングされます。
注: アプリケーション ユーザは引き続き分離され、Unified CM Administration インターフェイスを介してプロビジョニングされます。 つまり、アプリケーション ユーザを AD から同期することはできません。
要約すると、エンド ユーザは社内ディレクトリで定義され、Unified CM データベースに同期されますが、アプリケーション ユーザは Unified CM データベースに保存されるだけで、社内ディレクトリで定義する必要はありません。
この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。
注: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
このドキュメントでは、次のネットワーク構成を使用しています。
一般的なディレクトリ統合のシナリオ
Active Directory: 10.48.79.37
Domain name: Eire.com
Cisco Unified Communications Manager: 10.48.79.93
このドキュメントでは、次の設定を使用します。
CM 同期契約によって接続と認証が可能になっている AD でサービス アカウントを作成するには、次の手順を実行します。
このアカウントは必要な検索ベース内のすべてのユーザ オブジェクトを読み取ることができ、パスワードを無期限に設定している必要があります。 この場合、管理者アカウントが使用されますが、必要な検索ベース内のすべてのユーザ オブジェクトへの読み取りアクセス権を持つ他のアカウントがあれば使用できます。
Cisco Unified Communications Manager で [ccmadmin] ページ(http://X.X.X.X/ccmadmin)を開き、[System] > [Ldap] > [Ldap System] に移動します。
[Enable Synchronizing from LDAP Server] チェック ボックスをオンにして、[LDAP Server Type] で [Microsoft Active Directory] を、[LDAP Attribute for User ID] で [sAMAccountName] を選択します。
Unified CM が AD からインポートするエンド ユーザは、標準の AD 属性に基づいています。 この場合、[sAMAccountName] が使用されています。 その他には、[Mail]、[employeeNumber]、[telephoneNumber]、または [userPrinicpalName] が使用される場合があります。
[CCMAdmin] ページから、[System] > [Ldap] > [Ldap Directory] に移動し、[Add New] をクリックして新しいディレクトリ複製契約を追加します。
ディレクトリ統合が行われると CM DB 内の現在のユーザが削除されることを示す、次の 2 つのウィンドウが表示されます。
次のフィールドに値を入力します。
[LDAP Configuration Name]: これは、統合に割り当てられる名前です。
[LDAP Manager Distinguished name]: これは、ステップ 1 で AD で設定されたアカウントです。次のいずれかを使用していることを確認してください。
完全正規名。たとえば cn=Administrator、dc=eire、dc=com
ユーザ プリンシパル名(UPN)。たとえば administrator@eire.com
[LDAP Password]: これは、ステップ 1 で AD で設定されたアカウントのパスワードです。
[LDAP User search base]: このパスは、統合によってユーザを取得するための AD の起点を定義します。
[LDAP Directory Synchronization Schedule]
同期する必要があるユーザのフィールドを定義します。 これは、CM が使用する属性に対する LDAP 属性のマッピングを定義します。 たとえば、属性 samaccountname は、CM Informix データベースの属性 userid に対してマッピングされています。 別の例では、属性 objectguid は CM Informix データベースの属性 uniqueidentifier にマッピングされています。
AD サーバのホスト名または IP を追加します。 ポート番号(この場合 389)を指定し、SSL を使用するかどうかを選択します。
[Serviceability] ページ(http://X.X.X.X/ccmservice)から Cisco DirSync サービスをアクティブ化して開始し、[Tools] > [Service Activation] > [Cisco DirSync Tools] > [Control Center] > [Feature Services] > [Cisco DirSync] に移動して設定を終了します。
サービス パラメータをさらに設定できますが、これらはデフォルトにしておきます。
これで、AD のユーザ(さらに具体的に言うと、ドメイン eire.com のコンテナ cn=Users 内のユーザ )を Cisco Unified Communications Manager と同期するために手動同期を強制できます。 そのためには、Cisco Unified Communications Manager([System] > [Ldap] > [Ldap Directory])のディレクトリ統合のページの下部に移動し、新しく作成されたディレクトリ統合フィールドを開きます。 下の [Perform Full Sync Now] ボタンをクリックします。
同期が完了したら、Cisco Unified Communications Manager の [admin] ページ(http://X.X.X.X/ccmadmin)へ移動し、[User Management] > [Endusers] に移動します。 Cisco Unified Communications Manager DB で AD からユーザが、LDAP ステータスがアクティブな状態で同期されていることを確認できます。
注: この環境では、ユーザはディレクトリ統合を実行する前に Cisco Unified Communications Manager に登録されています。
同期が行われると、このユーザは [Delete Pending ] 状態になります。
毎晩午前 3 時 15 分に、Garbage Collector サービスという内部プロセスが実行されます。 このプロセスは、24 時間以上経過した [Inactive] ~ [Delete Pending] 状態のアカウントがあれば、完全に削除します。 Cisco Unified Communications Manager は Active Directory パスワードの同期を行いません。 Cisco Unified Communications Manager は Microsoft Active Directory の暗号化メカニズムを認識していません。 同期を行う代わりに、Cisco Unified Communications Manager 5.0 ではデフォルト パスワード ciscocisco およびデフォルト PIN 12345 が割り当てられます。
Cisco Unified Communications Manager 6.0 以降では、デフォルトのクレデンシャル ポリシー メカニズムが使用されます。 これは、[CCMAdmin] ページから次のようにアクティブ化できます。 [User Management] > [Credential Policy Default]
クレデンシャル ポリシーによって、他のパスワード ポリシーと同様にデフォルト パスワードを設定できます。 AD から同期されているすべてのユーザは、パスワードのこのテンプレートを読み込みます。
同じことが Cisco Unified Communications Manager 6.0 以降の PIN にも当てはまります。
つまり、Cisco Unified Communications Manager が AD と統合(ディレクトリ統合)されてもディレクトリ認証がイネーブルにされていない(認証メカニズムについては後ほど説明します)場合は、同期されたすべてのエンド ユーザはローカルで、つまり、Cisco Unified Communications Manager の Informix データベースに対して認証されます。
ローカルで認証できるため、Cisco Unified Communications Manager 自体のユーザのパスワードを変更できます。
注: ディレクトリ認証を同様に使用する場合には、これは当てはまりません。
ディレクトリ認証はディレクトリ同期の上位にインストールされているので、ディレクトリ認証を実行するには、ディレクトリ統合が前提条件です。 基本的な概念は同じですが、唯一の違いは、ユーザが外部ディレクトリに対して認証され、Cisco Unified Communications Manager の Informix データベースに対して認証されなくなることです。 つまり、すべてのエンド ユーザの認証の試行(たとえば、[ccmuser] ページなどにアクセスするため)は AD にリダイレクトされます。
注: 認証は、アプリケーション ユーザまたは PIN には適用されません。 たとえば、エクステンション モビリティの PIN 認証要求はローカルで(Cisco Unified Communications Manager データベースに対して)認証され、AD を介して行われません。
ディレクトリ認証を設定するには、[ccmadmin] ページ(http://X.X.X.X/ccmadmin)を開き、[System] > [Ldap] > [Ldap Authentication] に移動します。
次の図に示すように、フィールドに入力してください。
[LDAP Manager Distinguished name]: これは、ステップ 1 で AD で設定されたアカウントです。次のいずれかを使用していることを確認してください。
完全正規名。たとえば cn=Administrator、dc=eire、dc=com
ユーザ プリンシパル名(UPN)。たとえば administrator@eire.com
[LDAP Password]: これは、ステップ 1 で AD で設定されたアカウントのパスワードです。
[LDAP User search base]
注: 認証が有効になっていると、ユーザ パスワードの管理は AD によって行われ、Cisco Unified Communications Manager は行わないため、Cisco Unified Communications Manager の個々のユーザの設定にはパスワードのフィールドがありません。
シナリオ: ユーザ Joe Bloke を AD に追加して、Cisco Unified Communications Manager で手動同期を実行しました。
DirSync トレースを [Detailed] に設定します。 Cisco Unified Communications Manager の [Serviceability] ページに移動し、[Trace] > [Configuration] > [Directory Services] > [DirSync] を選択します。
DirSync トレースでは、DirSync は Cisco Unified Communications Manager から起動されます。
2008-12-15 14:42:13,743 DEBUG [DSLDAPMain] dirsync.DSLDAPMain (DSLDAPMain.java:340) - DSLDAPMain[handleIncomingReq] Now start LDAPSyncImpl for agreement=f74f2069-1160-9d4a-7e8a-db6c476dd9d5 2008-12-15 14:42:13,779 INFO [DSLDAPMain] ldapplugable.DSLDAPSyncImpl (DSLDAPSyncImpl.java:143) - LDAPSync (f74f2069-1160-9d4a-7e8a-db6c476dd9d5) [DSLDAPSyncImpl] Search base=cn=Users, dc=eire, dc=com
ユーザを取得するために Cisco Unified Communications Manager で設定されたアカウントは、管理者アカウントです。
2008-12-15 14:42:13,787 INFO [DSLDAPMain] ldapplugable.DSLDAPSyncImpl (DSLDAPSyncImpl.java:147) - LDAPSync (f74f2069-1160-9d4a-7e8a-db6c476dd9d5) [DSLDAPSyncImpl] Manager DN=administrator@eire.com Password=aa822fb730462e5bee761623f5384aef87bed6fd62280f8ec6ef01a7a4c537 2008-12-15 14:42:13,813 DEBUG [DSLDAPMain] ldapplugable.DSLDAPSyncImpl (DSLDAPSyncImpl.java:224) - LDAPSync (f74f2069-1160-9d4a-7e8a-db6c476dd9d5) [DSLDAPSyncImpl] Attributes to return - objectguid:samaccountname: givenname:middlename:sn:manager:department:telephonenumber:mail:title: homephone:mobile:pager:msrtcsip-primaryuseraddress: LDAPSync(f74f2069-1160-9d4a-7e8a-db6c476dd9d5)[makeConnection] Successful LDAP connection to : ldap://10.48.79.37:389
AD に移動して、指定したユーザ検索ベース内の SamAccountName と objectguid に基づいてすべてのユーザを検索します。 新しいユーザ Joe Bloke を探します。
LDAPSync(f74f2069-1160-9d4a-7e8a-db6c476dd9d5) [sendUserData] Directory entry is CN=Joe Bloke: null:null: {mail=mail: jbloke@eire.com, objectguid=objectGUID: [B@1ce3fc5, givenname=givenName: Joe, samaccountname=sAMAccountName: jbloke, sn=sn: Bloke} 2008-12-15 14:42:15,351 DEBUG [DSLDAPSyncImpl (f74f2069-1160-9d4a-7e8a-db6c476dd9d5)] ldapplugable.DSLDAPSyncImpl (DSLDAPSyncImpl.java:926) - LDAPSync(f74f2069-1160-9d4a-7e8a-db6c476dd9d5)[sendUserData] Getting ObjectGUID
特定の AD 属性を取得することに注意してください(たとえば、samaccountname、objectguid、givenname、department、telephonenumber など)。 これらには、Informix DB の対応する値を指定します。 たとえば、AD の「objectguid」を Cisco Unified Communications Manager の Informix 内の「UniqueIdentifier」にマッピングします。 これは、AD の Informix へのマッピングのちょっとした例です。 このリストは、小さなサブセットにすぎません。 このドキュメントに記載されていない情報がいくつかあります。
この場合、ユーザ jbloke に対して見つかった ObjectGuid をマッピングして、対応する値を Unified Communications Manager の UniqueIdentifier 値に指定します。
LDAPSync(f74f2069-1160-9d4a-7e8a-db6c476dd9d5)[sendUserData] ObjectGUID value=cc15b7817840b947990b83551140cf86 db6c476dd9d5)] ldapplugable.DSLDAPSyncImpl (DSLDAPSyncImpl.java:1560) - LDAPSync(f74f2069-1160-9d4a-7e8a-db6c476dd9d5)[formUserObject] Name=uniqueidentifier Value=cc15b7817840b947990b83551140cf86
次に特定の UniqueIdentifier 属性をもつユーザがすでに存在するかどうか Informix 内を確認します。
2008-12-15 14:42:15,692 DEBUG [DirSync-DBInterface] DSDBInterface.updateUserInfo Check update using uniq id. SQL-SELECT * FROM EndUser WHERE uniqueidentifier ='cc15b7817840b947990b83551140cf86'
そして Cisco Unified Communications Manager の Informix の Enduser テーブルにユーザを追加します。
2008-12-15 14:42:15,724 DEBUG [DirSync-DBInterface] common. DSDBInterface (DSDBInterface.java:377) - DSDBInterface.insert SQL-INSERT INTO EndUser(userid,firstname,mailid,uniqueidentifier, lastname,fkdirectorypluginconfig,status) values ('jbloke','Joe','jbloke@eire.com','cc15b7817840b947990b83551140cf86', 'Bloke','f74f2069-1160-9d4a-7e8a-db6c476dd9d5','1')
シナリオ: ユーザ ID「kurt」で [CCMUser] のページにログインしました。認証は AD にリダイレクトされました。
スニファ トレースを Cisco Unified Communications Manager で使用します。
検索要求が表示されます。
また、該当するユーザについては AD から Cisco Unified Communications Manager への SearchResponse が表示されます。
現在、この設定に使用できる確認手順はありません。
ここでは、設定のトラブルシューティングに役立つ情報について説明します。
Cisco Unified Communications Manager との LDAP 統合を実行中にこのエラー メッセージが表示されます。
Error while Connecting to ldap://10.1.1.2:636, javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
問題を解決するには、関連するセキュリティ証明書が CUCM OS Administration/Security/Certificate Management の下にアップロードされていることを確認します。 また、Windows サービスから DirSyn サービスと Tomcat サービスを再起動します。