跳到元数据的末尾
转到元数据的开始

如果启用了“Artifactory是由一个安全的HTTP服务器代理的”,Artifactory应该显式地、排他地绑定到localhost和位于同一台机器上的反向代理。

概述

单点登录(SSO)附加组件允许您使用Artifactory重用现有的基于http的SSO基础结构,例如Apache HTTPd提供的SSO模块。

您可以让Artifactory的身份验证与常用的SSO解决方案一起工作,比如本地NTLM、Kerberos等。

SSO的工作原理是让Artifactory知道它应该在HTTP请求中查找哪些可信信息,假设该请求已经通过位于Artifactory前面的SSO基础设施的身份验证。

页面内容



使用

要访问单点登录(SSO)附加组件,请在管理模块,选择安全| HTTP单点登录

要启用SSO,必须提醒Artifactory它运行在一个安全的HTTP服务器后面,该服务器将可信请求转发给Artifactory。

然后必须告诉Artifactory在哪个变量中查找可信身份验证信息。

默认是查找REMOTE_USER头或请求变量,这是由Apache的AJP和JK连接器设置的。

您可以通过提供不同的变量名来选择使用任何请求属性(由Servlet规范定义)。

添加您自己的SSO集成

您可以编写一个简单的servlet筛选器来与自定义安全系统集成,并在要由SSO附加组件信任的请求上设置请求属性。

最后,您可以指示Artifactory将外部身份验证的用户视为临时用户,这样Artifactory就不会在其安全数据库中创建这些用户。

在这种情况下,此类用户的权限基于授予自动连接组的权限。

HTTP单点登录配置


字段名 描述
工件由安全HTTP服务器代理
选中后,Artifactory信任传入请求,并重用HTTP服务器的SSO最初在请求上设置的远程用户。

如果您想要使用现有的企业SSO集成,例如Apache提供的强大的身份验证方案(mod_auth_ldap、mod_auth_ntlm、mod_auth_kerb等),这是非常有用的。

当Artifactory作为webapp部署在Apache后面的Tomcat上时:
  • 如果使用mod_proxy_ajp,请确保在AJP连接器上设置tomcatAuthentication="false"。
  • 如果使用mod_jk,请确保在Apache的配置中使用“JkEnvVar REMOTE_USER”指令。
远程用户请求变量
用于提取用户标识的HTTP请求变量的名称。默认值为:REMOTE_USER。
自动创建人工用户

如果不选中,则不会在Artifactory中自动创建经过身份验证的用户。相反,对于来自SSO用户的每个请求,该用户将临时与默认组(如果定义了这些组)关联,并应用这些组的权限。

如果没有自动创建用户,则必须在Artifactory中手动创建用户,以管理未附加到其默认组的用户权限。

选中后,使用HTTP SSO进行身份验证后创建的用户将能够访问他们的个人资料。这意味着他们能够产生他们的API密匙设置他们的密码供将来使用。

自定义URL库

要使HTTP SSO设置正常工作,请确保拥有自定义URL库配置。


集成Apache和Tomcat

当Artifactory作为webapp部署在Apache后面的Tomcat上时:

  • 如果使用mod_proxy_ajp-一定要设置tomcatAuthentication = " false "在AJP连接器上。
  • 如果使用mod_jk-确保使用JkEnvVar REMOTE_USER指令。
  • 如果使用mod_proxy(需要mod_proxy_httpmod_headersmod_rewrite-有两种已知的转发报头的工作方法:
REMOTE_USER %{REMOTE_USER}e

RewriteEngine On RewriteCond %{REMOTE_USER} (.+) RewriteRule。- [E=RU:%1] requesttheader set REMOTE_USER %{RU} E

配置反向SSL代理单点登录

您可以在web服务器上设置反向SSL代理,以便运行支持SSO的Artifactory。

要做到这一点,你需要有权利组件安装,修改web服务器配置文件,然后配置Artifactory为SSO。

正确设置后,您应该能够使用Windows凭证登录到Artifactory,并在会话之间保持登录状态。

为了获得最佳安全性,Artifactory和反向代理web服务器必须位于同一台机器上。Artifactory应该被明确地和排他性地绑定到本地主机


组件和版本

下面的说明已经经过测试,可以使用以下组件与使用Artifactory的Kerberos/NTLM SSO一起工作。

修改web服务器配置文件

安装了正确的组件和版本后,需要将以下行添加到[HTTP_SERVER_HOME] / conf / httpd . conf文件:

httpd . conf文件
 ServerName yourhostname DocumentRoot "C:/IBM/Installation Manager/eclipse/plugins/org.apache.ant_1.8.3. "v20120321-1730" ProxyPreserveHost on ProxyPass /artifactory http://yourhostname:9080/artifactory ProxyPassReverse /artifactory http://yourhostname:9080/artifactory   AuthName " artifactory Realm" AuthType SSPI SSPIAuth on sspiauthorizationon require - valid-user RewriteEngine on RewriteCond %{REMOTE_USER} (.+) rewriterrule . v20120321-1730"- [E=RU:%1] RequestHeader set REMOTE_USER %{RU} E 


然后,您需要在您的httpd . conf文件:


要启用的模块
LoadModule sspi_auth_module modules/mod_auth_sspi。所以LoadModule headers_module modules/mod_headers。所以LoadModule proxy_module modules/mod_proxy。所以LoadModule proxy_connect_module modules/mod_proxy_connect。所以LoadModule proxy_http_module modules/mod_proxy_http。LoadModule rewrite_module modules/mod_rewrite.so

HTTP-SSO用户使用API密钥

虽然HTTP-SSO提供对Artifactory UI的访问,但是HTTP-SSO用户也可以生成一个API密匙它可以代替密码用于基本身份验证或专用的REST API头这在使用不同的客户端(如docker、npm、maven等)或使用Artifactory REST API时非常有用。

为了允许HTTP-SSO用户访问API密钥,您需要确保自动创建人工用户"和"允许创建的用户访问配置文件页面复选框被选中。这意味着SSO用户也保存在Artifactory数据库中,并且可以访问他们的个人信息页面以便生成、检索和撤销它们的API密钥。


  • 没有标签