人工:SAML SSO调试指南

帕特里克·罗素
2023-01-22还剩11分08秒

SAML SSO调试指南

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

SAML系统概述

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

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

REST API工具的SAML SSO最佳实践

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

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

用户添加图片

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

排除小问题

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

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

这并不需要重新启动才能生效。

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

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

SAML的自动重定向阻止登录

通常,当你勾选Auto-Redirect登录选项,您将无法通过内部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 web页面作为注销端点:

用户添加图片

SAML登录后,无法返回到Artifactory

这通常是由于SAML提供程序端的一些错误配置造成的,但是在Artifactory中有一个地方您的返回URL可能没有正确设置。Artifactory使用自定义基URL如果网络标头不提供URL,则设置为回退。由于此设置可能与问题有关,请尝试在以下位置更新:Admin > Configuration > General ConfigurationArtifactory 6。XAdmin > >常规设置在人工制品7.X。请确保URL与当前web浏览器的端点匹配:

用户添加图片

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

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

SAML组在注销后消失或不持久

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

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