简介
本文档介绍在vManage上启用和验证单点登录(SSO)的基础知识。
术语
安全断言标记语言(SAML)是用于在各方之间,特别是在身份提供方和服务提供商之间交换身份验证和授权数据的开放标准。顾名思义,SAML是基于XML的安全断言(服务提供商用于制定访问控制决策的语句)标记语言。
身份提供程序(IdP)是“一个受信任的提供程序,可用于使用单点登录(SSO)访问其他网站。” SSO减少了密码疲劳,增强了可用性。它可以减小潜在攻击面,并提供更好的安全性。
服务提供商 — 它是与SAML的SSO配置文件一起接收并接受身份验证断言的系统实体。
什么是功能功能?
- 从18.3.0开始,vManage支持SSO。SSO允许用户通过对外部身份提供程序(IP)进行身份验证来登录vManage。
- 仅支持SAML2.0
- 支持 — 单租户(独立和集群)、多租户(在提供商级别和租户级别),此外,多租户部署默认情况下是集群。Provider-as-tenant不适用。
- 每个租户可以拥有自己的唯一身份提供程序,只要IDP与SAML 2.0规范一致。
- 支持通过文件上传以及纯文本复制和下载vManage元数据来配置IDP元数据。
- 仅支持基于浏览器的SSO。
- 在此版本中,用于vmanage元数据的证书不可配置。
它是自签名证书,首次启用SSO时使用以下参数创建:
字符串CN = <TenantName>、DefaultTenant
字符串OU = <Org Name>
字符串O = <Sp组织名称>
字符串L ="San Jose";
字符串ST ="CA";
字符串C ="USA";
字符串有效性= 5年;
证书签名算法:SHA256WithRSA
密钥对生成算法:RSA
- 单一登录 — SP发起和支持IDP发起
- 单一注销 — 仅SP启动
如何在vManage上启用它?
要为vManage NMS启用单点登录(SSO)以允许使用外部身份提供程序对用户进行身份验证,请执行以下操作:
- 确保您已在vManage NMS上启用NTP。
- 使用在IdP上配置的URL连接到vManage GUI
(例如, vmanage-112233.example.net,请勿使用IP地址,因为此URL信息包含在SAML元数据中)
- 点击Identity Provider Settings栏右侧的Edit按钮。
- 在Enable Identity Provider字段中,点击Enabled,
- 复制身份提供程序元数据并将其粘贴到Upload Identity Provider Metadata框中。或者点击Select a File以上传身份提供程序元数据文件。
- Click Save.
工作流程是什么?
- 用户通过上传身份提供程序元数据通过“管理”(Administration)->“设置”(Settings)页面启用SSO。
- 然后,用户下载相应的vManage租户元数据以上载到身份提供程序(必须至少执行一次以生成vManage元数据)。
- 如果需要,用户可以随时禁用或更新元数据。
vManage Meta示例
vManage是否支持双因素身份验证,它与SSO有何不同?
双因素身份验证(也称为2FA)是多因素身份验证(MFA)的一种类型或子集。它是一种使用两种不同因素的组合来确认用户声称的身份的方法:1)他们知道的某物,2)他们拥有的某物,或3)他们拥有的某物。
示例:Google GMail(带一次性密码(OTP)的密码)
2FA是SSO服务器上提供的内容。它类似于我们登录内部思科网站的方式。
它将您重定向到Cisco SSO,系统会提示您输入PingID/DUO 2FA。
解决方案中有多少个角色?
我们有3个角色:basic、operator和netadmin。
配置用户访问和身份验证
我们支持哪些IdP?
- 奥克塔
- PingID
- ADFS
- Microsoft Azure(20.9及更高版本)
客户可以使用其他IdP并看到其正常工作。这将属于“尽力”范畴
其他包括:Oracle Access Manager、F5网络
注意:请查阅最新的思科文档,了解vManage支持的最新IdP
如何在SAML断言中指示用户组成员身份?
问题:使用SAML IdP前置vManage。当用户成功通过身份验证后,唯一可供用户访问的是控制面板。
当通过SAML对用户进行身份验证时,是否有方法为用户提供更多访问权限(通过用户组RBAC)?
此问题是由于IDP配置不正确造成的。此处的关键是,IDP在身份验证期间发送的信息必须包含“用户名”和“组”作为xml中的属性。如果使用其他字符串代替“Groups”,则用户组默认为“Basic”。“基本”用户只能访问基本的控制面板。
确保IDP向vManage发送“用户名/组”而不是“用户ID/角色”。
以下是/var/log/nms/vmanage-server.log文件中的示例:
非工作示例:
我们看到“用户ID/角色”已由IdP发送,且用户已映射到基本组。
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| AttributeMap: {role=[netadmin], UserId=[Tester@example.com]}
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| AttributeMap: {role=[netadmin], UserId=[Tester@example.com]}
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| Roles: [Basic]
工作示例:
在本示例中,您将看到“Username/Groups”,用户将映射到netadmin组。
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| AttributeMap: {UserName=[Tester@example.com], Groups=[netadmin]}
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| AttributeMap: {UserName=[Tester@example.com], Groups=[netadmin]}
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| Roles: [netadmin]
如何启用/检查SSO是否工作?
可通过以下步骤启用SSO功能调试日志记录:
1.导航到https://<vManage_ip_addr:port>/logsettings.html
2.选择SSO日志记录并启用它,如图所示。
3.启用后,单击Submit按钮。
- 与SSO相关的日志将保存到vManage日志文件/var/log/nms/vmanage-server.log中,该日志文件特别关注IDP授权的“组”设置。如果没有匹配项,则用户默认为“Basic”组,该组具有只读访问权限;
- 要调试访问权限问题,请检查日志文件并查找字符串“SamlUserGroups”。后续输出必须是组名字符串的列表。其中一个必须与vManage上的组设置匹配。如果未找到匹配项,则用户默认为“Basic”组。
SAML跟踪器
用于查看在单一登录和单一注销期间通过浏览器发送的SAML和WS-Federation消息的工具。
FireFox SAML-Tracer插件
Chrome SAML-Tracer扩展
saml消息示例
如何登录启用了SSO的vManage?
SSO仅用于浏览器登录。您可以手动将vManage定向到传统登录页面并绕过SSO,以便仅使用用户名和密码:https://<vmanage>:8443/login.html。
使用什么加密算法?
目前,我们支持SHA1作为加密算法,vManage使用SHA1算法对SAML元数据文件进行签名,IdP需要接受。 未来版本中将提供SHA256支持,而我们目前尚不支持这些版本。
相关信息
配置单点登录:https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/security/ios-xe-16/security-book-xe/configure-sso.html
作为参考,附加到案例的OKTA登录/注销工作日志。