ARTIFACTORY: SAML SSO调试指南

帕特里克·罗素
2022-12-25 36

SAML单点登录调试指南

安全断言标记语言(SAML)是否有一个标准允许单点登录(SSO)系统。这种形式的身份验证通常以web浏览器为中心。Artifactory支持大多数SAML SSO系统,提供了用于设置多种基于SAML提供程序的连接的指南。系统设置好之后,SAML提供程序将运行登录系统。

SAML系统概述

通过SAML SSO登录Artifactory可以总结为三个步骤:
用户添加图片

  1. 你的浏览器到Artifactory。Artifactory将重定向您的浏览器SAML单点登录页面.Artifactory重定向将附加一个XML登录请求到浏览器会话,这个XML包含一个返回URL。
  2. 在这一步,用户登录到SAML提供程序。如果登录涉及2因素身份验证和/或其他安全机制,这些将完全由SAML提供者处理。
  3. 成功登录后,SAML提供程序将会重定向你回到Artifactory.的URL接下来的重定向将取决于SAML提供程序。它可以是Artifactory在步骤#1中作为XML登录请求的一部分发送的URL,也可以是SAML提供程序已配置为使用的URL。在后端,SAML提供程序将附加一个加密XML文档包含您的用户信息。这个XML在“NameID”字段中包含Artifactory用户名。它还可能包括用户的电子邮件地址和组断言。

REST API工具的SAML SSO最佳实践

Artifactory用户经常询问如何使用REST API工具,因为所有包管理器(比如Maven)都不能通过SAML SSO登录。有两种方法可以解决这个问题:

  • 允许用户生成API密钥通过允许创建的用户访问配置文件页面

用户添加图片

可以使用API密钥或访问令牌作为密码。只要用户知道他们的SAML用户名,他们就可以通过CLI工具通过传递API密钥或访问令牌。

排除SAML问题

来协助你故障排除,使用Artifactory的调试日志记录器来解密和显示步骤#1和#3中的XML断言。可以通过添加以下内容打开调试记录器XML片段到你的美元ARTIFACTORY_HOME / etc / logback.xml文件,这将导致SAML XML数据被发送到您的美元ARTIFACTORY_HOME /日志/ artifactory.log文件:

[警告:此记录器将SAML XML断言打印到日志文件!]   .

不需要重新启动即可生效。

请记住,这将显示加密的SAML信息明文.此信息中不包含密码,但电子邮件地址和群组关联将存储在日志文件中。调试完成后,您应该这样做删除调试记录器。

由于需要指定SAML SSO端点或Artifactory URL的位置有很多,因此大多数SAML问题都是由使用不正确的URL.虽然每个SAML提供者都是不同的,但是有几个解决方案有助于解决常见问题。

SAML的自动重定向阻止登录

通常,当你勾选Auto-Redirect登录选项在Artifactory的SAML设置中,您将无法通过Artifactory内部提示登录。如果您的SAML设置不正确,您甚至可能发现自己被完全锁在Artifactory之外。你可以绕过通过直接进入Artifactory登录菜单:

(6。X] https://example.com/artifactory/webapp/#/login [7.X] https://example.com/ui/login/

通过SAML注销失败

当Artifactory将您注销时,应该将您送回SAML提供程序,以便您从外部系统注销。如果您的SAML提供者期望出现错误,则可能发生注销失败签署LogoutRequest,这是Artifactory不能自动执行的操作(尽管这是已知的,产品改进请求问题,有关更多信息可用在这里,目前正在处理中)。如果您的SAML提供者面临这种错误,您可以使用您的Artifactory网页作为注销端点:

用户添加图片

SAML登录后,返回Artifactory失败

这通常是由于SAML提供程序端的一些错误配置,但是在Artifactory中有一个地方您的返回URL可能没有正确设置。Artifactory使用自定义基础URL如果网络头文件不提供URL,则设置为备用选项。由于此设置可能涉及到问题,请尝试在以下位置更新它:Admin > Configuration >常规配置Artifactory 6。X而且Admin > >常规设置在Artifactory 7.X。请确保URL与当前web浏览器的端点匹配:

用户添加图片

否则,仔细检查SAML提供程序的设置,特别是如果浏览器发送到的URL与SAML提供程序的配置匹配。例如,在OneLogin中,重定向URL是在SAML提供程序端指定的,如下所示:

用户添加图片
如果saml端URL错误,用户的web浏览器将在登录后被发送到错误的目的地。

注销后SAML组消失或不存在

SAML SSO完全基于使用web浏览器。虽然SAML组信息可以发送给Artifactory并由Artifactory使用,但作为安全预防措施,应用程序不会持久化SAML组的成员。

考虑这样一种情况,从基于saml的管理员组中删除了一个特定用户。在此之前,他们记录了他们的Artifactory API密钥或访问令牌。只要用户没有通过SAML SSO机制登录,他们就能够使用CLI工具(如Maven),并使用与删除它们之前相同的访问级别。对于Artifactory来说,没有一种通用的方法可以在不使用SSO进程的情况下更新SAML用户的组。