使用Artifactoryx ?
JFrog Artifactoryx用户指南
有问题吗?想要报告问题?联系JFrog支持
概述
从4.2版开始,Artifactory与OAuth集成,允许您将身份验证请求委托给外部提供者,并允许用户使用他们在这些提供者中的帐户登录到Artifactory。
目前,支持的提供者类型为谷歌,OpenID连接,GitHub企业,而且云铸造UAA。您可以根据需要定义任意数量的每种类型的提供者。
使用
当Artifactory启用OAuth时,用户可以选择通过任何受支持的OAuth提供者进行登录。要通过提供者登录,只需单击登录屏幕上的提供者按钮。
您将被重定向到相应提供者的登录屏幕。
如果您已经登录到任何提供商的应用程序,您将不需要再次登录,但您可能必须授权Artifactory访问您的帐户信息,这取决于提供商类型。
配置OAuth
要访问OAuth集成设置,请在管理模块,选择安全|OAuth SSO。
支持OAuth |
如果选中,则启用OAuth提供程序的身份验证,Artifactory将显示配置的所有OAuth提供程序。如果不勾选,则使用Artifactory用户/密码进行身份验证。 |
自动创建人工用户 |
如果选中,Artifactory将为任何第一次登录Artifactory的新用户创建一个Artifactory用户帐户。 |
默认提供程序 |
指定提供程序,不同的客户机(例如NPM)应该通过该提供程序验证其登录以获得对Artifactory的访问权。 默认提供程序 目前,只有GitHub企业OAuth提供程序可以被定义为默认提供程序。 |
选中后,使用OAuth进行身份验证后创建的用户将能够访问他们的个人资料.这意味着他们能够产生他们的API密匙而且设置他们的密码供以后使用。 |
自定义URL库
要使OAuth设置工作,请确保您有自定义URL库配置。
添加新的提供者
Artifactory中定义的提供程序列表显示在供应商部分。
要添加新的提供者,请单击“new”。Artifactory显示一个对话框,让您输入提供程序的详细信息。根据所配置的提供程序的不同,这些参数可能略有不同。
下表描述了每个受支持的提供程序所需的设置,以及您应该使用的相应值(如果可用):
GitHub.com |
GitHub企业 |
谷歌 |
Cloud Foundry UAA |
OpenID |
描述 |
|
启用 |
|
|
|
|
|
如果选中,则启用此OAuth提供程序,并将显示在登录对话框中。 |
供应商的名字 |
|
|
|
|
|
此提供程序的逻辑名称。例如,“谷歌OAuth”,“GitHub OAuth”。 这在Artifactory中必须是唯一的。 |
提供者类型 |
|
|
|
|
|
提供者类型。目前GitHub,Git企业版,谷歌,OpenID,云计算都受支持。 |
提供者ID |
|
|
|
|
|
向提供者标识您的组织的标识。 这是由OAuth提供商在您设置帐户时提供的。 |
秘密 |
|
|
|
|
|
由提供者分配给组织的秘密。 这是由OAuth提供商在您设置帐户时提供的。 |
域 |
|
指定一个域筛选器,它定义了用户可以从哪些域进行身份验证。 通常,这将是您的域名。例如 |
||||
码头工人登录 |
|
支持Docker登录 | ||||
Npm登录 |
|
支持Npm登录 | ||||
基本URL |
https://github.com/ |
|
Git服务器的基本URL,用于身份验证。 | |||
身份验证URL |
https://github.com/login/oauth/authorize GitHub.com账户
任何可以访问Artifactory URL的GitHub.com帐户都将被允许登录,包括超出您的GitHub.com组织范围的帐户。
|
|
https://accounts.google.com/o/oauth2/auth |
|
|
提供者通过该URL将您重定向到身份验证页面。 |
API的URL |
https://api.github.com/user |
|
https://www.googleapis.com/oauth2/v1/userinfo |
|
|
通过该URL, Artifactory可以获得无法通过OAuth直接获得的额外信息。 |
标记的URL |
https://github.com/login/oauth/access_token |
|
https://www.googleapis.com/oauth2/v3/token |
|
|
Artifactory将访问的URL,以获取使用API的令牌。 |
使用查询参数
参数时可以传递查询参数授权URL.例如,
https://github.com/login/oauth/authorize?realm=Employees
多个查询参数应该用&号分隔。例如,
https://github.com/login/oauth/authorize?realm=Employees?client_id=XXXXXXXXXXX&scope=openid%20profile%20email
绑定现有用户帐号
如果你已经有了内部(而不是外部领域,如LDAP, SAML…)为了能够使用您的任何OAuth提供者帐户登录,您需要将您的Artifactory帐户绑定到相应的帐户。
要绑定您的帐户,请转到您的配置文件页面,输入Artifactory密码即可解锁。
下OAuth用户绑定中,选择点击绑定在您希望绑定到的OAuth提供程序旁边。
创建OAuth Provider帐户
为了使用OAuth身份验证,您需要为您希望使用的每个OAuth提供者设置一个帐户,以便获得各种参数(如提供者ID和Secret),您需要在Artifactory中设置OAuth集成。
GitHub OAuth安装
注意:访问GitHub.com帐户
任何GitHub.com可以访问Artifactory URL的帐户将被允许登录,包括您以外的帐户GitHub.com组织范围。这不适用于GitHub企业。
要在GitHub上设置您的OAuth帐户,请执行以下步骤:
登录到你的GitHub账户。在您的个人配置文件设置下,选择应用程序然后点击开发者应用程序选项卡.
点击注册新应用程序。
设置应用程序名称。例如,Artifactory SaaS OAuth。
设置主页网址.这是您的Artifactory服务器主机URL (
https:// < artifactory-server > /
).
例如,https://mycompany.jfrog.io/mycompany/
设置授权回调Url如下:
对于Artifactory现场安装:
http:// < server_host > / artifactory / api / oauth2 / loginResponse
例如,http://mycompany.artifactory.com/artifactory/api/oauth2/loginResponse
- 对于Artifactory SaaS:
https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse
例如,https://mycompany.jfrog.io/mycompany/api/oauth2/loginResponse
点击注册应用程序要生成客户机ID而且客户的秘密.
把这些都记下来;你将需要他们通过Artifactory上的GitHub配置OAuth身份验证。
谷歌OAuth Provider设置
在谷歌上设置您的OAuth帐户,执行以下步骤:
- 登录到谷歌开发人员控制台.
创建一个新项目。例如,“Artifactory OAuth”。
一旦创建了项目,在左侧导航栏中,选择api和认证|凭证。
选择OAuth同意屏幕选项卡并配置最终用户在使用谷歌凭据登录时将看到的同意屏幕。
回到凭证选项卡上,单击添加证书并选择OAuth 2.0客户端ID
下创建客户端ID,选择Web应用程序.
输入一个的名字并设置授权重定向uri
对于Artifactory on-prem:https:// < server_host > / artifactory / api / oauth2 / loginResponse
对于Artifactory SaaS:https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse
- 点击创建要生成客户机ID而且客户的秘密.
把这些都记下来;您将需要它们通过Artifactory上的谷歌配置OAuth身份验证。
Cloud Foundry UAA设置
Artifactory 4.2.1版本支持使用Cloud Foundry UAA的OAuth身份验证。
要使用Cloud Foundry UAA设置OAuth身份验证,请根据需要填写字段。
使用Secure OAuth
要使用来自Java信任的CA的有效证书使用安全OAuth,您所需要做的就是在您的设置中使用安全OAuth URL。
如果您希望将OAuth与非受信任的(自签名的)证书一起使用,请按照中描述的步骤操作使用自签名证书.
使用API密钥与OAuth用户
虽然OAuth提供了对Artifactory UI的访问,但OAuth用户也可以生成一个API密匙它可以用来代替密码进行基本身份验证或在专用的REST API头,这在使用不同的客户端(例如docker, npm, maven等)或使用Artifactory REST API时非常有用。
为了允许OAuth用户访问API密钥,您将需要确保“自动创建人工用户“而且”允许创建的用户访问配置文件页面选中复选框。这意味着OAuth用户也保存在Artifactory数据库中,并且可以访问他们的个人信息页面以生成、检索和撤销它们的API密钥。
在高可用性设置中使用OAuth
OAuth协议要求客户端为特定的应用程序授予权限。Artifactory会将用户重定向到已配置的应用程序URL,一个被授予权限的用户将被导航回来。
在高可用性设置中工作时,此进程的限制是用户必须返回到相同的节点,否则身份验证过程将失败,为了实现这一点,会话保持配置应该包括/ artifactory / api / oauth2 /
.
下面的例子展示了NGINX的配置。
Location ~ (/artifactory/webapp/|/artifactory/ui/|/artifactory/api/oauth2/) {proxy_http_version 1.1;proxy_pass http:// < UPSTREAM_NAME >;proxy_intercept_errors;proxy_pass_header服务器;proxy_connect_timeout 75年代;proxy_send_timeout 2400年代;proxy_read_timeout 2400年代;主机$ Host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host/artifactory; }