跳到元数据的末尾
进入元数据的开始

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

概述

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

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

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

页面内容



使用

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

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

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

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

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

添加您自己的SSO集成

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

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

在这种情况下,此类用户的权限基于给予自动加入组的权限。

HTTP单点登录配置


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

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

当Artifactory作为web应用程序部署在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作为web应用程序部署在Apache后面的Tomcat上时:

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

RewriteEngine On RewriteCond %{REMOTE_USER} (.+) RewriteRule。- [E=RU:%1] RequestHeader设置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 sspiauthorized on require valid-user RewriteEngine on RewriteCond %{REMOTE_USER} (.+) RewriteRule . rwriterule . ProxyPreserveHost on ProxyPreserveHost on ProxyPreserveHost on ProxyPassReverse /artifactory http://yourhostname:9080/artifactory   AuthName " artifactory Realm" AuthType SSPI SSPIAuth on sspi权威- [E=RU:%1] RequestHeader set REMOTE_USER %{RU} E  . [E=RU:%1


然后,您需要在您的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

使用API密钥与HTTP-SSO用户

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

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


  • 没有标签