目录

简介

先决条件

要求

使用的组件

背景信息

身份提供程序(IdP)

服务提供商(SP)

SAML

SAML断言

高级流程图

配置SAML SSO与Duo SSO的集成

步骤1:在ISE上配置SAML IdP

将Duo SSO配置为外部SAML身份源

从Duo管理员门户导入SAML元数据XML文件

配置ISE身份验证方法

创建管理员组

为管理员组创建RBAC策略

添加组成员身份

导出SP信息

第二步：配置ISE的双核SSO

第三步：将Cisco ISE与Duo SSO集成为通用SP

验证

测试与Duo SSO的集成

故障排除

简介

本文档介绍如何配置Cisco ISE 3.1 SAML SSO与外部身份提供程序（如Cisco Duo SSO）的集成。

先决条件

要求

Cisco 建议您了解以下主题：

- 思科身份服务引擎(ISE) 3.1

- 有关安全断言标记语言(SAML)单点登录(SSO)部署(SAML 1.1)的基本知识

- Cisco DUO SSO知识

- Windows Active Directory知识

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 思科ISE 3.1

- Cisco Duo SSO

- Windows Active Directory

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

身份提供程序(IdP)

在本例中，Duo SSO用于验证和声明用户身份以及对所请求资源（“服务提供商”）的访问权限。

双点SSO充当IdP，使用SAML 1.1或任何SAML 2.0 IdP（例如Microsoft Azure）的现有本地Active Directory (AD)对用户进行身份验证，并在允许访问服务提供商应用程序之前提示进行双因素身份验证。

配置要使用Duo SSO保护的应用时，必须将属性从Duo SSO发送到应用。Active Directory无需其他设置，但是如果使用SAML(2.0) IdP作为身份验证源，请验证是否已将其配置为发送正确的SAML属性。

服务提供商(SP)

用户想要访问的托管资源或服务；本例中为Cisco ISE应用服务器。

SAML

SAML是允许IdP将授权凭证传递到SP的开放标准。

SAML事务使用可扩展标记语言(XML)实现身份提供者和服务提供商之间的标准化通信。SAML是用户身份的身份验证与使用服务的授权之间的链接。

SAML断言

SAML断言是IdP发送到包含用户授权的服务提供商的XML文档。有三种不同类型的SAML断言-身份验证、属性和授权决策。

- 身份验证断言可证明用户的标识，并提供用户登录的时间以及他们使用的身份验证方法（例如，Kerberos、双因素等）。

- 属性断言将SAML属性（提供有关用户信息的特定数据片段）传递给SP。

- 授权决定断言声明用户是否获得授权以便使用该服务，或者IdP是否由于密码失败或缺少对服务的权限而拒绝其请求。

高级流程图

流程：

1. 用户使用Login Via SAML选项登录到ISE。

2. ISE (SAML SP)使用SAML请求消息将用户的浏览器重定向至Duo SSO。

注意：在分布式环境中，您可能会收到“Invalid Certificate（无效证书）”错误，因此第3步现在可以执行。因此，对于分布式环境，步骤2.与此略有不同：

问题：ISE临时重定向至其中一个PSN节点的门户（在端口8443上）。

解决方案：为了确保ISE提供与管理员GUI证书相同的证书，请确保您信任的系统证书对所有PSN节点上的门户使用也是有效的。

3. 用户使用主AD凭证登录。

4. Duo SSO会将此消息转发到AD，AD会向Duo SSO返回响应。

5. 双点SSO要求用户在移动设备上发送PUSH来完成双因素身份验证。

6. 用户完成双因素身份验证。

7. Duo SSO将用户的浏览器重定向到SAML SP，并显示一条响应消息。

8. 用户现在能够登录到ISE。

配置SAML SSO与Duo SSO的集成

步骤1:在ISE上配置SAML IdP

将Duo SSO配置为外部SAML身份源

在ISE上，导航至Administration > Identity Management > External Identity Sources > SAML Id Providers，然后点击Add按钮。

输入IdP的名称，然后单击Submit以保存它。IdP名称仅对ISE有效，如图所示：

从Duo管理员门户导入SAML元数据XML文件

在ISE上，导航到Administration > Identity Management > External Identity Sources > SAML Id Providers.>选择您创建的SAML IdP，点击 Identity Provider Configuration，然后点击选择文件按钮。

选择从Duo Admin门户导出的SSO IDP元数据XML文件，并单击Open以保存。（本文档的Duo部分也提到了此步骤。）

SSO URL和签名证书是：

配置ISE身份验证方法

导航到Administration > System > Admin Access > Authentication > Authentication Method(或者)并选择Password-Based（基于密码）单选按钮。从身份源(Identity Source)下拉列表中选择之前创建的所需IdP名称，如图所示：

创建管理员组

导航到Administration > System > Admin Access > Authentication > Administrators > Admin Group，点击超级管理员，然后点击复制按钮。输入Admin group Name，然后单击Submit按钮。

这将为管理员组提供超级管理员权限。

为管理员组创建RBAC策略

导航到Administration > System > Admin Access > Authorization > RBAC Policy，然后选择与超级管理员策略对应的操作。单击。Duplicate > Add the Name field > Save

访问的权限与超级管理员策略相同。

添加组成员身份

在ISE上，导航至Administration > Identity Management > External Identity Sources > SAML Id Providers(SSID名称)并选择您创建的SAML IdP。单击Groups，然后单击Add按钮。

在断言中添加名称（ISE管理员组的名称），并从下拉列表中选择所创建的基于角色的访问控制(RBAC)组（第4步），然后单击Open以保存该组。系统将自动填充SSO URL和签名证书：

导出SP信息

导航到Administration > Identity Management > External Identity Sources > SAML Id Providers > (Your SAML Provider)。

将该选项卡切换到“SP信息”。然后单击导出按钮，如图所示：

下载.xml文件并保存。请记录AssertionConsumerServiceLocation URL and entityID值，因为这些详细信息在双核SSO门户中是必需的。

<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://CiscoISE/7fdfc239-631e-439c-a3ab-f5e56429779d"><md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:KeyDescriptor use="signing"><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:X509Data><ds:X509Certificate>MIIFUzCCAzugAwIBAgIMNOUWtIWSUFWaealmMA0GCSqGSIb3DQEBDAUAMCcxJTAjBgNVBAMTHFNB TUxfaXNlMDIueGVyb3RydXN0bGFicy5jb20wHhcNMjExMTE1MjI1OTM0WhcNMjYxMTE0MjI1OTM0 WjAnMSUwIwYDVQQDExxTQU1MX2lzZTAyLnhlcm90cnVzdGxhYnMuY29tMIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAxw7scSLMH1ApI3O/7+vWsGP4schoJJHlVeJKHuJVgm19SXViW8Ab WL9hQEXDr+U/zzp7fAq0YjckeNJg6VMhasao5tY4cutrAZK2F/kYvdVN+0N2cJUSTdJZNdKO+hcj VmUgClUi6Xa4PJNw+1yhj8PwrDlpzfgXZLi3wlo5sMRGrg8NeSbShPJVakIEF2FoI0hXTOOSH4ZN sD4q99dzrAv2m6y74vtU0GqwX4RRMOdvr7DIMNd2U/trh41QT85SY5c70l6fRWtY9omZBdU0S2JC ihWnC9ug7FE0qdPm2h5KiZvxJck9OqVXDHvtRKctW5gwzfX8Hu7DQKqs90h04HRUxg2GEiuiXCQZ 5p63KfoRly5oW50UK0LIMdyhDl+8uP+n+Jo3ufR8lKe42+/rws5Ct1hg4jozddutKkw2vyxMEg5/ ZpAz/goRIOmBN4r3n3FNGZV1uTfbb1Mz8yvY61ccGgTU1/Iynt9maNHxjbFtAP+HaiMPisfTKDRJ OLx91v+xKpb+opcOxqVK1q0Us0yGVvfycaFNZ3jP5wBNBzSAi7cvXk7sIW9WM7DC84OjC/r9EbaX Wll7MLV+16Z+FeDnzhzFVjq/cb61eNvXKKwDFryFqBnDLLJGmJuZQ/EgR0wkvseR8tNE3qIYVhOe qfCKZUpWtZ+lGLDD3r50p9UCAwEAAaN/MH0wIgYDVR0RBBswGYIXaXNlMDIueGVyb3RydXN0bGFi cy5jb20wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAuwwHQYDVR0OBBYEFAoHeqyYR5r0XpOVXODT WdpDycOoMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQwFAAOCAgEA aoIIkyS8slDwjQrRsUVyPi17Lvl0TleCUQBrnr5WNUWlaXIB7Cb9qrG9D2ced72miH6vUcxine78 V4loTsgVu3tVlslQrOLW2eNLSbaN1XqbVUl1sCZkA4wGt8uLPX0t8UYysecEPFXD0NiKGPoIMaFg 3pP5525cJpeLRkgHjw1Z2qT54lsGd8Gdq6V666kliAt73kPwfDiZf/uDsCI+euIHDywLdOad51kJ RWAsZO7tgxK3tJO9z7JU4oY1fI26DUN43++Ap3KSaDiz9gYJ3fFjR9hP/nF/ywyO0HO5MgHqhsMo +zBMADukmprYC8qd+0z76+NQ6TLXgUer7NQMty68tQYP4riupvc26CEmgEZ592jBgDdt2tkY9An4 Fl/rqJPhX2RISLdUt50NcBbIZVOJ/IjkqHj9UG1E/U8qYy3krWvZV+VV5ChVNzwiVTWFCEOHNOTh l/yYdAAsODUBbwTqgJL1G3hNo+dA3LAgg/XKENFr+tt3LQ0kwPAtjKFQsIX/4sgMetV4KSqUI3HZ qw5u0t9WT578SZ5p1u/qj2cfx2wdqRVk5vSij6TxOpXIaCuY2L5YfeIMP/K49K+DecMBxCrKygNT vGX0PkVG/yqgQ9OIfQZ1OD3/NZxGyBJdzSSkjHxiUdWf4lWj1tVU+qav8M3imsCRvcZJppaKJNo=</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos</md:NameIDFormat><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</md:NameIDFormat><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://10.52.14.44:8443/portal/SSOLoginResponse.action" index="0"/><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ise02.xerotrustlabs.com:8443/portal/SSOLoginResponse.action" index="1"/></md:SPSSODescriptor></md:EntityDescriptor>

以下是从Duo Generic SAML Integration中需要配置的元文件中收集的相关详细信息/属性

entityID = http://CiscoISE/7fdfc239-631e-439c-a3ab-f5e56429779d。

AssertionConsumerService Location = https://10.x.x.x:8443/portal/SSOLoginResponse.action，其中10.x.x.x是在XML文件（位置）中找到的ISE IP。

AssertionConsumerService位置= https://isenodename.com:8443/portal/SSOLoginResponse.action，其中isenodename是在XML文件（位置）中找到的实际ISE FQDN名称。

第二步：配置ISE的双核SSO

检查此KB以配置带AD的双核SSO作为身份验证源。

选中此KB以启用自定义域的SSO。

第三步：将Cisco ISE与Duo SSO集成为通用SP

检查此KB的第1步和第2步以将思科ISE与Duo SSO集成为通用SP。

在双管理面板中配置通用SP的Cisco ISE SP详细信息：

名称

描述

实体Id

http://CiscoISE/7fdfc239-631e-439c-a3ab-f5e56429779d

断言消费者服务(ACS) URL

https://10.x.x.x:8443/portal/SSOLoginResponse.action

配置Cisco ISE的SAML响应：

名称

描述

NameID格式

urn：oasis：名称：tc：SAML：1.1：nameid-format：未指定

NameID属性

用户名

在Duo Admin Panel中创建名为Cisco Admin Group的组，并将ISE用户添加到此组，或在Windows AD中创建组，并使用目录同步功能将其同步到Duo Admin面板。

配置思科ISE的角色属性：

名称

描述

属性名称

组

SP角色

ISE管理员组

Duo组

ISE管理员组

在Settings部分的Name选项卡中为此集成提供相应的名称。

单击Save按钮以保存配置，请参阅此KB以获取更多详细信息。

单击Download XML以下载SAML元数据。

通过导航到Administration > Identity Management > External Identity Sources > SAML Id Providers > Duo_SSO将SAML元数据下载从双核Admin面板上传到Cisco ISE。

将选项卡切换到Identity Provider Config.，然后单击Choose file按钮。

选择步骤8中下载的元数据XML文件，然后单击保存。

注意：此步骤在配置SAML SSO与Duo SSO集成部分（第2步）下提到。从Duo Admin门户导入SAML元数据XML文件。

验证

测试与Duo SSO的集成

1. 登录Cisco ISE管理面板并单击Log In With SAML。

2. 已重定向到“SSO”页，输入电子邮件地址并单击下一步。

3. 输入口令，然后单击Log in。

4. 您的移动设备上将显示Duo Push提示。

5. 接受提示后，您会获得一个窗口并自动重定向到ISE Admin页面。

6. ISE管理员GUI访问权限页面。

故障排除

- 下载Mozilla FF的SAML Tracer扩展插件https://addons.mozilla.org/en-US/firefox/addon/saml-tracer/。

- 滚动到SSOLoginResponse.action数据包。在SAML选项卡下，您可以看到多个从双人SAML发送的属性：NameID、Recipient (AssertionConsumerService Location URL)和Audience(EntityID)。

- ISE上的实时日志：

- ISE上的管理登录日志：用户名：samlUser。