简介
本文档介绍如何配置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是否由于密码失败或缺少对服务的权限而拒绝其请求。
高级流程图
流程:
- 用户使用Login Via SAML选项登录到ISE。
- ISE (SAML SP)使用SAML请求消息将用户的浏览器重定向至Duo SSO。
注意:在分布式环境中,您可能会收到“Invalid Certificate(无效证书)”错误,因此第3步现在可以执行。因此,对于分布式环境,步骤2.与此略有不同:
问题:ISE临时重定向至其中一个PSN节点的门户(在端口8443上)。
解决方案:为了确保ISE提供与管理员GUI证书相同的证书,请确保您信任的系统证书对所有PSN节点上的门户使用也是有效的。
- 用户使用主AD凭证登录。
- Duo SSO会将此消息转发到AD,AD会向Duo SSO返回响应。
- 双点SSO要求用户在移动设备上发送PUSH来完成双因素身份验证。
- 用户完成双因素身份验证。
- Duo SSO将用户的浏览器重定向到SAML SP,并显示一条响应消息。
- 用户现在能够登录到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详细信息:
配置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访问权限页面。
故障排除
- ISE上的管理登录日志:用户名:samlUser。