简介
本文档介绍将Microsoft AD配置为外部身份库以管理访问思科ISE管理GUI和CLI。
先决条件
要求
建议掌握下列主题的相关知识:
- 思科ISE版本3.0的配置
- Microsoft广告
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科ISE版本3.0
- Windows Server 2016
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
使用此部分可以配置使用Microsoft AD作为外部身份库对思科ISE管理GUI进行管理访问。
ISE节点和AD之间使用以下端口进行此通信:
注意:确保AD帐户具有所有所需的权限。
将ISE加入AD
- 导航至
Administration > Identity Management > External Identity Sources > Active Directory.
- 输入新的加入点名称和AD域。
- 输入可添加和更改计算机对象的AD帐户的凭证,然后点击确定。
选择目录组
- 导航至
Administration > Identity Management > External Identity Sources > Active Directory > Groups > Add > Select groups form Directory.
- 导入至少一个管理员所属的AD组。
启用AD管理访问
要为AD启用基于密码的身份验证,请完成以下步骤:
- 导航至
Administration > System > Admin Access > Authentication.
- 从选项
Authentication Method 卡中选择选 Password Based 项。
- 从下拉
Identity Source 列表中选择AD。
- 点击
Save Changes.
配置管理员组到AD组的映射
定义思科ISE Admin Group 并将其映射到AD组。这允许授权根据AD Role Based Access Control (RBAC) 中的组成员资格确定管理员的权限。
- 导航至
Administration > System > Admin Access > Administrators > Admin Groups.
- 单
Add 击表标题以查看新的配置 Admin Group 窗格。
- 输入新Admin组的名称。
- 在字
Type 段中,选中 External 复选框。
- 从下
External Groups 拉列表中,选择希望此管理员组映射到的AD组,如一节中所 Select Directory Groups 定义。
- 点击
Save Changes.
设置管理员组的RBAC权限
要将RBAC权限分配到上一节中创建的管理员组,请完成以下步骤:
- 导航至
Administration > System > Admin Access > Authorization > Policy.
- 从右侧
Actions 的下拉列表中,选择添 Insert New Policy 加新策略。
- 使用在for AD部分中定义的
AD_Administrator. 管理组创建一个名为Map it Enable Administrative Access 的新规则,并为其分配权限。 注意:在本示例中,分配了名为Super Admin的管理组,该组相当于标准管理员帐户。
- 单击
Save Changes. Confirmation of the changes saved(确认已保存的更改)将显示在GUI的右下角。
使用AD凭证的ISE GUI访问
完成以下步骤,以使用AD凭证访问ISE GUI:
- 从管理GUI注销。
- 从下拉
Identity Source 列表中选择AD。
- 从AD数据库输入username和password,然后登录。
注:如果AD无法访问,或者使用的帐户凭证在AD中不存在,则ISE默认为内部用户存储。当AD配置为管理访问时,如果您使用内部存储,这有助于快速登录。
使用AD凭证的ISE CLI访问
使用外部身份源进行身份验证比使用内部数据库进行身份验证更安全。的RBAC支 CLI Administrators 持外部身份库。
注意:ISE版本2.6及更高版本仅支持AD作为CLI登录的外部身份源。
管理单个密码源,无需管理多个密码策略并管理ISE中的内部用户,从而减少时间和工作量。
先决条件
您必须已经定义管理员用户,并将他们添加到管理员组。管理员必须是 Super Admin.
定义the User’s Attributes in the AD User Directory.
在运行的Windows服务器上, Active Directory, 修改要配置为CLI管理员的每个用户的属性。
- 打开
Server Manager Window, 并导航至 Server Manager > Roles > Active Directory Domain Services > Active Directory Users and Computers > [ ad.adserver ] <ad_server>.local.
- 在“
Advanced Features 查看”菜单下启用,以便编辑用户的属性。
- 导航到包含管理员用户的AD组并查找该用户。
- 双击用户打开该窗
Properties 口并选择 Attribute Editor 。
- 点击任意属性并输
gid 入以查找属 gidNumber 性。如果没有找到该属性, gidNumber 请单击该按钮 Filter 并取消选中。 仅显示具有值的属性。
- 双击属性名称以编辑每个属性。对于每个用户:
- 分
uidNumber 配大于60000的号码,并确保该号码是唯一的。
- 分
gidNumber 配为110或111。
- GidNumber 110表示管理员用户,111表示只读用户。
- 请勿更改作业后
uidNumber 的设置。
- 如果修改,
gidNumber 请至少等待五分钟,然后建立SSH连接。
将管理员CLI用户加入AD域
连接到思科ISE CLI,运行命 identity-store 令,并将管理员用户分配到ID存储。
例如,要将CLI管理员用户映射到ISE中定义为isha.global的Active Directory,请运行以下命令:
identity-store active-directory domain-name <Domain name> user <AD join username>
当加入完成时,连接到Cisco ISE CLI并以管理CLI用户身份登录以验证配置。
如果在此命令中使用的域之前已加入ISE节点,则重新加入管理员控制台中的域。
- 在Cisco ISE GUI中,点击图标
Menu ,然后导航至 Administration > Identity Management > External Identity Sources.
- 在左侧窗格中,选择并
Active Directory 选择您的AD名称。
- 在右侧窗格中,您的AD连接的状态可能显示为:
Operational. There are errors if you test User with MS-RPC or Kerberos。
- 验证您仍可以作为管理员CLI用户登录思科ISE CLI。
ISE CLI
- 登录到ISE CLI:
ise30-1/admin# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ise30-1/admin(config)#
- 将节点加入域:
ise30-1/admin(config)# identity-store active-directory domain-name isha.global user Administrator
如果域已 isha.global 经通过UI加入,则必须在此配置后 isha.global 从UI重新加入域。在重新加入之前,身份验证将失 isha.global 败。
Do you want to proceed? Y/N:Y
Password for Administrator:
已成功加入域isha.global。
注意:
— 如果域已通过GUI加入,则从GUI重新加入节点,否则,针对AD的身份验证继续失败。
— 所有节点必须通过CLI单独加入。
验证
当前没有可用于此配置的验证过程。
故障排除
加入问题
在/var/log/messages文件中可以看到加入操作期间出现的问题以及与此相关的日志。
命令: show logging system messages
工作场景
2021-07-19T21:15:01.457723+05:30 ise30-1 dbus[9675]: [system] Activating via systemd: service name='org.freedesktop.realmd' unit='realmd.service'
2021-07-19T21:15:01.462981+05:30 ise30-1 systemd: Starting Realm and Domain Configuration...
2021-07-19T21:15:01.500846+05:30 ise30-1 dbus[9675]: [system] Successfully activated service 'org.freedesktop.realmd'
2021-07-19T21:15:01.501045+05:30 ise30-1 systemd: Started Realm and Domain Configuration.
2021-07-19T21:15:01.541478+05:30 ise30-1 realmd: * Resolving: _ldap._tcp.isha.global
2021-07-19T21:15:01.544480+05:30 ise30-1 realmd: * Performing LDAP DSE lookup on: 10.127.197.115
2021-07-19T21:15:01.546254+05:30 ise30-1 realmd: * Performing LDAP DSE lookup on: 10.127.197.236
2021-07-19T21:15:01.546777+05:30 ise30-1 realmd: * Successfully discovered: Isha.global
2021-07-19T21:15:09.282364+05:30 ise30-1 realmd: * Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/bin/
2021-07-19T21:15:09.282708+05:30 ise30-1 realmd: * LANG=C LOGNAME=root /usr/bin/net -s /var/cache/realmd/realmd-smb-conf.MU0M60 -U Administrator ads join Isha.global
2021-07-19T21:15:12.701071+05:30 ise30-1 realmd: Enter Administrator's password:DNS update failed: NT_STATUS_INVALID_PARAMETER
2021-07-19T21:15:12.705753+05:30 ise30-1 realmd:
2021-07-19T21:15:12.706142+05:30 ise30-1 realmd: Use short domain name -- ISHA
2021-07-19T21:15:12.706580+05:30 ise30-1 realmd: Joined 'ISE30-1' to dns domain 'Isha.global'
2021-07-19T21:15:12.708781+05:30 ise30-1 realmd: * LANG=C LOGNAME=root /usr/bin/net -s /var/cache/realmd/realmd-smb-conf.MU0M60 -U Administrator ads keytab create
2021-07-19T21:15:13.786749+05:30 ise30-1 realmd: Enter Administrator's password:
2021-07-19T21:15:13.859916+05:30 ise30-1 realmd: * /usr/bin/systemctl enable sssd.service
2021-07-19T21:15:13.870511+05:30 ise30-1 systemd: Reloading.
2021-07-19T21:15:13.870724+05:30 ise30-1 realmd: Created symlink from /etc/systemd/system/multi-user.target.wants/sssd.service to /usr/lib/systemd/system/sssd.service.
2021-07-19T21:15:13.943407+05:30 ise30-1 realmd: * /usr/bin/systemctl restart sssd.service
2021-07-19T21:15:13.956987+05:30 ise30-1 systemd: Starting System Security Services Daemon...
2021-07-19T21:15:14.240764+05:30 ise30-1 sssd: Starting up
2021-07-19T21:15:14.458345+05:30 ise30-1 sssd[be[Isha.global]]: Starting up
2021-07-19T21:15:15.180211+05:30 ise30-1 sssd[nss]: Starting up
2021-07-19T21:15:15.208949+05:30 ise30-1 sssd[pam]: Starting up
2021-07-19T21:15:15.316360+05:30 ise30-1 systemd: Started System Security Services Daemon.
2021-07-19T21:15:15.317846+05:30 ise30-1 realmd: * /usr/bin/sh -c /usr/sbin/authconfig --update --enablesssd --enablesssdauth --enablemkhomedir --nostart && /usr/bin/systemctl enable oddjobd.service && /usr/bin/systemctl start oddjobd.service
2021-07-19T21:15:15.596220+05:30 ise30-1 systemd: Reloading.
2021-07-19T21:15:15.691786+05:30 ise30-1 systemd: Reloading.
2021-07-19T21:15:15.750889+05:30 ise30-1 realmd: * Successfully enrolled machine in realm
非工作场景
由于密码不正确而导致加入失败:
2021-07-19T21:12:45.487538+05:30 ise30-1 dbus[9675]: [system] Activating via systemd: service name='org.freedesktop.realmd' unit='realmd.service'
2021-07-19T21:12:45.496066+05:30 ise30-1 systemd: Starting Realm and Domain Configuration...
2021-07-19T21:12:45.531667+05:30 ise30-1 dbus[9675]: [system] Successfully activated service 'org.freedesktop.realmd'
2021-07-19T21:12:45.531950+05:30 ise30-1 systemd: Started Realm and Domain Configuration.
2021-07-19T21:12:45.567816+05:30 ise30-1 realmd: * Resolving: _ldap._tcp.isha.global
2021-07-19T21:12:45.571092+05:30 ise30-1 realmd: * Performing LDAP DSE lookup on: 10.127.197.115
2021-07-19T21:12:45.572854+05:30 ise30-1 realmd: * Performing LDAP DSE lookup on: 10.127.197.236
2021-07-19T21:12:45.573376+05:30 ise30-1 realmd: * Successfully discovered: Isha.global
2021-07-19T21:12:52.273667+05:30 ise30-1 realmd: * Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/bin/net
2021-07-19T21:12:52.274730+05:30 ise30-1 realmd: * LANG=C LOGNAME=root /usr/bin/net -s /var/cache/realmd/realmd-smb-conf.R0SM60 -U Administrator ads join Isha.global
2021-07-19T21:12:52.369726+05:30 ise30-1 realmd: Enter Administrator's password:
2021-07-19T21:12:52.370190+05:30 ise30-1 realmd: Failed to join domain: failed to lookup DC info for domain 'Isha.global' over rpc: The attempted logon is invalid. This is either due to a bad username or authentication information.
2021-07-19T21:12:52.372180+05:30 ise30-1 realmd: ! Joining the domain Isha.global failed
登录问题
登录期间出现的问题以及与此相关的日志可在 /var/log/secure.
命令: show logging system secure
成功验证:
2021-07-19T21:25:10.435849+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:auth): unknown option: no_magic_root
2021-07-19T21:25:10.438694+05:30 ise30-1 sshd[119435]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:25:11.365110+05:30 ise30-1 sshd[119435]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:25:11.365156+05:30 ise30-1 sshd[119435]: pam_sss(sshd:auth): received for user ad_admin: 12 (Authentication token is no longer valid; new one required)
2021-07-19T21:25:11.368231+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:account): unknown option: reset
2021-07-19T21:25:11.370223+05:30 ise30-1 sshd[119435]: pam_succeed_if(sshd:account): 'uid' resolves to '60001'
2021-07-19T21:25:11.370337+05:30 ise30-1 sshd[119435]: Accepted password for ad_admin from 10.227.243.67 port 61613 ssh2
2021-07-19T21:25:11.371478+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:setcred): unknown option: no_magic_root
2021-07-19T21:25:11.781374+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): reading settings from '/etc/security/limits.conf'
2021-07-19T21:25:11.781445+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): reading settings from '/etc/security/limits.d/20-nproc.conf'
2021-07-19T21:25:11.781462+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): process_limit: processing soft nproc 4096 for DEFAULT
2021-07-19T21:25:11.781592+05:30 ise30-1 sshd[119435]: pam_unix(sshd:session): session opened for user ad_admin by (uid=0)
2021-07-19T21:25:11.784725+05:30 ise30-1 sshd[121474]: pam_tally2(sshd:setcred): unknown option: no_magic_root
由于密码不正确导致身份验证失败:
2021-07-19T21:25:10.435849+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:auth): unknown option: no_magic_root
2021-07-19T21:25:10.438694+05:30 ise30-1 sshd[119435]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:25:11.365110+05:30 ise30-1 sshd[119435]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:25:11.365156+05:30 ise30-1 sshd[119435]: pam_sss(sshd:auth): received for user ad_admin: 12 (Authentication token is no longer valid; new one required)
2021-07-19T21:25:11.368231+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:account): unknown option: reset
2021-07-19T21:25:11.370223+05:30 ise30-1 sshd[119435]: pam_succeed_if(sshd:account): 'uid' resolves to '60001'
2021-07-19T21:25:11.370337+05:30 ise30-1 sshd[119435]: Accepted password for ad_admin from 10.227.243.67 port 61613 ssh2
2021-07-19T21:25:11.371478+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:setcred): unknown option: no_magic_root
2021-07-19T21:25:11.781374+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): reading settings from '/etc/security/limits.conf'
2021-07-19T21:25:11.781445+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): reading settings from '/etc/security/limits.d/20-nproc.conf'
2021-07-19T21:25:11.781462+05:30 ise30-1 sshd[119435]: pam_limits(sshd:session): process_limit: processing soft nproc 4096 for DEFAULT
2021-07-19T21:25:11.781592+05:30 ise30-1 sshd[119435]: pam_unix(sshd:session): session opened for user ad_admin by (uid=0)
2021-07-19T21:25:11.784725+05:30 ise30-1 sshd[121474]: pam_tally2(sshd:setcred): unknown option: no_magic_root
2021-07-19T21:25:56.737559+05:30 ise30-1 sshd[119435]: pam_unix(sshd:session): session closed for user ad_admin
2021-07-19T21:25:56.738341+05:30 ise30-1 sshd[119435]: pam_tally2(sshd:setcred): unknown option: no_magic_root
2021-07-19T21:26:21.375211+05:30 ise30-1 sshd[122957]: pam_tally2(sshd:auth): unknown option: no_magic_root
2021-07-19T21:26:21.376387+05:30 ise30-1 sshd[122957]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:26:21.434442+05:30 ise30-1 sshd[122957]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=ad_admin
2021-07-19T21:26:21.434461+05:30 ise30-1 sshd[122957]: pam_sss(sshd:auth): received for user ad_admin: 17 (Failure setting user credentials)
2021-07-19T21:26:21.434480+05:30 ise30-1 sshd[122957]: pam_nologin(sshd:auth): unknown option: debug
2021-07-19T21:26:22.742663+05:30 ise30-1 sshd[122957]: Failed password for ad_admin from 10.227.243.67 port 61675 ssh2
由于用户无效而导致身份验证失败:
2021-07-19T21:28:08.756228+05:30 ise30-1 sshd[125725]: Invalid user Masked(xxxxx) from 10.227.243.67 port 61691
2021-07-19T21:28:08.757646+05:30 ise30-1 sshd[125725]: input_userauth_request: invalid user Masked(xxxxx) [preauth]
2021-07-19T21:28:15.628387+05:30 ise30-1 sshd[125725]: pam_tally2(sshd:auth): unknown option: no_magic_root
2021-07-19T21:28:15.628658+05:30 ise30-1 sshd[125725]: pam_tally2(sshd:auth): pam_get_uid; no such user
2021-07-19T21:28:15.628899+05:30 ise30-1 sshd[125725]: pam_unix(sshd:auth): check pass; user unknown
2021-07-19T21:28:15.629142+05:30 ise30-1 sshd[125725]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67
2021-07-19T21:28:15.631975+05:30 ise30-1 sshd[125725]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.227.243.67 user=isha
2021-07-19T21:28:15.631987+05:30 ise30-1 sshd[125725]: pam_sss(sshd:auth): received for user isha: 10 (User not known to the underlying authentication module)
2021-07-19T21:28:15.631993+05:30 ise30-1 sshd[125725]: pam_nologin(sshd:auth): unknown option: debug
2021-07-19T21:28:17.256541+05:30 ise30-1 sshd[125725]: Failed password for invalid user Masked(xxxxx) from 10.227.243.67 port 61691 ssh2