はじめに
このドキュメントでは、Lightweight Directory Access Protocol(LDAP)をCisco Identity Services Engine(ISE)管理GUIへの管理アクセス用の外部IDストアとして使用するための設定例について説明します。
前提条件
次の項目に関する知識があることが推奨されます。
- Cisco ISEバージョン3.0の設定
- [LDAP]
要件
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco ISE バージョン 3.0
- Windows Server 2016
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
コンフィギュレーション
ISE GUIへの管理ベースまたはカスタムベースのアクセス権を取得するようにLDAPベースのユーザを設定するには、のセクションを使用します。次の設定では、LDAPプロトコルクエリを使用して、Active Directoryからユーザを取得し、認証を実行します。
ISEのLDAPへの参加
- Administration > Identity Management > External Identity Sources > Active Directory > LDAPの順に移動します。
- Generalタブで、LDAPの名前を入力し、Active Directoryスキーマを選択します。
接続タイプとLDAP設定の設定
1. ISE > Administration > Identity Management > External Identity Sources > LDAPの順に移動します。
2. プライマリLDAPサーバのホスト名を、ポート389(LDAP)/636(LDAP-Secure)とともに設定します。
3. 管理者の識別名(DN)のパスと、LDAPサーバの管理者パスワードを入力します。
4. [Test Bind Server]をクリックして、ISEからのLDAPサーバの到達可能性をテストします。
ディレクトリの組織、グループ、および属性の設定
1. LDAPサーバに保存されているユーザの階層に基づいて、ユーザの正しい組織グループを選択します(この例では、LDAPサーバに保存されているユーザの階層に基づいて組織グループを選択します)。
LDAPユーザの管理アクセスの有効化
パスワードベースの認証を有効にするには、次の手順を実行します。
- ISE > Administration > System > Admin Access > Authenticationの順に移動します。
- Authentication MethodタブでPassword-Basedオプションを選択します。
- Identity SourceドロップダウンメニューからLDAPを選択します。
- [Save Changes] をクリックします。
管理グループのLDAPグループへのマッピング
ISEで管理グループを設定し、ADグループにマッピングします。これにより、設定されたユーザは、グループメンバーシップに基づいて管理者に対して設定されたRBAC権限に基づく認可ポリシーに基づいてアクセスできるようになります。
メニューアクセスの権限の設定
1. ISE > Administration > System > Authorization > Permissions > Menu accessの順に移動します。
2. 管理者ユーザがISE GUIにアクセスするためのメニューアクセスを定義します。必要に応じて一連の操作のみを実行するユーザのカスタムアクセスのために、GUIで表示または非表示にするサブエンティティを設定できます。
3. Saveをクリックします。
データアクセスのアクセス許可の設定
1. ISE > Administration > System > Authorization > Permissions > Data accessの順に移動します。
2. ISE GUIでIDグループへのフルアクセスまたは読み取り専用アクセスを持つように、管理者ユーザのデータアクセスを定義します。
3. Saveをクリックします。
管理グループの RBAC アクセス許可の設定
- ISE > Administration > System > Admin Access > Authorization > Policyの順に移動します。
- 右側のActionsドロップダウンメニューから、Insert New Policyを選択して新しいポリシーを追加します。
- LDAP_RBAC_policyという名前の新しいルールを作成し、「ADの管理アクセスを有効にする」セクションで定義した管理グループにマップし、メニューアクセスとデータアクセスの権限を割り当てます。
- Save Changesをクリックすると、GUIの右下隅に変更内容の確認メッセージが表示されます。
注:スーパー管理者ユーザは、システムで生成されたデフォルトのRBACポリシーと権限を変更できません。これを行うには、必要に応じて必要な権限を持つ新しいRBACポリシーを作成し、これらのポリシーを管理グループにマッピングする必要があります。
注:他の管理者ユーザを変更または削除できるのは、デフォルトのスーパー管理者グループの管理者ユーザだけです。スーパー管理者グループのメニューおよびデータ・アクセス権限を使用して複製された管理者グループの一部である外部にマッピングされたユーザーでも、管理者ユーザーを変更または削除することはできません。
確認
ここでは、設定が正常に機能しているかどうかを確認します。
AD クレデンシャルでの ISE へのアクセス
ADクレデンシャルを使用してISEにアクセスするには、次の手順を実行します。
- ISE GUIを開き、LDAPユーザでログインします。
- Identity SourceドロップダウンメニューからLDAP_Serverを選択します。
- LDAPデータベースからUPNとパスワードを入力し、ログインします。
監査レポートで管理者ログインのログインを確認します。ISE > Operations > Reports > Audit > Administrators Loginsの順に移動します。
この設定が正しく機能することを確認するには、ISE GUIの右上隅で認証されたユーザ名を確認します。次に示すように、メニューへのアクセスを制限するカスタムベースのアクセスを定義します。
トラブルシュート
ここでは、設定のトラブルシューティングに使用できる情報を示します。
一般情報
RBACプロセスのトラブルシューティングを行うには、ISE管理ノードでのデバッグで次のISEコンポーネントを有効にする必要があります(ノードのデバッグを参照)。
RBAC:ログインしようとすると、RBAC関連のメッセージ(ise-psc.log)が表示されます。
access-filter:リソースフィルタアクセス(ise-psc.log)が表示されます。
runtime-AAA – ログインメッセージとLDAPインタラクションメッセージのログ(prrt-server.log)を表示します
パケットキャプチャ分析
ログ分析
prrt-server.logの確認
PAPAuthenticator,2020-10-10 08:54:00,621,DEBUG,0x7f852bee3700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,validateEvent: Username is [admin2@anshsinh.local] bIsMachine is [0] isUtf8Valid is [1],PAPAuthenticator.cpp:86
IdentitySequence,2020-10-10 08:54:00,627,DEBUG,0x7f852c4e9700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,******* Authen IDStoreName:LDAP_Server,IdentitySequenceWorkflow.cpp:377
LDAPIDStore,2020-10-10 08:54:00,628,DEBUG,0x7f852c4e9700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,Send event to LDAP_Server_924OqzxSbv_199_Primary server,LDAPIDStore.h:205
Server,2020-10-10 08:54:00,634,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::onAcquireConnectionResponse: succeeded to acquire connection,LdapServer.cpp:724
Connection,2020-10-10 08:54:00,634,DEBUG,0x7f85293b8700,LdapConnectionContext::sendSearchRequest(id = 1221): base = dc=anshsinh,dc=local, filter = (&(objectclass=Person)(userPrincipalName=admin2@anshsinh.local)),LdapConnectionContext.cpp:516
Server,2020-10-10 08:54:00,635,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapSubjectSearchAssistant::processAttributes: found CN=admin2,CN=Users,DC=anshsinh,DC=local entry matching admin2@anshsinh.local subject,LdapSubjectSearchAssistant.cpp:268
Server,2020-10-10 08:54:00,635,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapSubjectSearchAssistant::processGroupAttr: attr = memberOf, value = CN=employee,CN=Users,DC=anshsinh,DC=local,LdapSubjectSearchAssistant.cpp:389
Server,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::onAcquireConnectionResponse: succeeded to acquire connection,LdapServer.cpp:724
Server,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::authenticate: user = admin2@anshsinh.local, dn = CN=admin2,CN=Users,DC=anshsinh,DC=local,LdapServer.cpp:352
Connection,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,LdapConnectionContext::sendBindRequest(id = 1223): dn = CN=admin2,CN=Users,DC=anshsinh,DC=local,LdapConnectionContext.cpp:490
Server,2020-10-10 08:54:00,640,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::handleAuthenticateSuccess: authentication of admin2@anshsinh.local user succeeded,LdapServer.cpp:474
LDAPIDStore,2020-10-10 08:54:00,641,DEBUG,0x7f852c6eb700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LDAPIDStore::onResponse: LdapOperationStatus=AuthenticationSucceeded -> AuthenticationResult=Passed,LDAPIDStore.cpp:336
ise-psc.logの確認
これらのログから、がネットワークデバイスリソースにアクセスしようとしたときにadmin2ユーザに対して使用したRBACポリシーを確認できます。
2020-10-10 08:54:24,474 DEBUG [admin-http-pool51][] com.cisco.cpm.rbacfilter.AccessUtil -:admin2@anshsinh.local:::- For admin2@anshsinh.local on /NetworkDevicesLPInputAction.do -- ACCESS ALLOWED BY MATCHING administration_networkresources_devices
2020-10-10 08:54:24,524 INFO [admin-http-pool51][] cpm.admin.ac.actions.NetworkDevicesLPInputAction -:admin2@anshsinh.local:::- In NetworkDevicesLPInputAction container method
2020-10-10 08:54:24,524 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getDataEntityDecision:::::: userName admin2@anshsinh.local dataType RBAC_NETWORK_DEVICE_GROUP permission ALL
2020-10-10 08:54:24,526 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- In DataPermissionEvaluator:hasPermission
2020-10-10 08:54:24,526 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- Data access being evaluated:LDAP_Data_Access
2020-10-10 08:54:24,528 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getDataEntityDecision:::::: permission retrieved false
2020-10-10 08:54:24,528 INFO [admin-http-pool51][] cpm.admin.ac.actions.NetworkDevicesLPInputAction -:admin2@anshsinh.local:::- Finished with rbac execution
2020-10-10 08:54:24,534 INFO [admin-http-pool51][] cisco.cpm.admin.license.TrustSecLicensingUIFilter -:admin2@anshsinh.local:::- Should TrustSec be visible :true
2020-10-10 08:54:24,593 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getPermittedNDG:::::: userName admin2@anshsinh.local
2020-10-10 08:54:24,595 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- In DataPermissionEvaluator:getPermittedNDGMap
2020-10-10 08:54:24,597 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- processing data Access :LDAP_Data_Access
2020-10-10 08:54:24,604 INFO [admin-http-pool51][] cisco.cpm.admin.license.TrustSecLicensingUIFilter -:admin2@anshsinh.local:::- Should TrustSec be visible :true