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

概述

从4.2版本开始,Artifactory与OAuth集成,允许您将身份验证请求委托给外部提供商,并允许用户使用这些提供商的帐户登录Artifactory。

目前,支持的提供程序类型有谷歌OpenID连接GitHub企业,云铸造UAA。您可以根据需要定义任意数量的每种类型的提供者。

使用

当在Artifactory中启用OAuth时,用户可以选择通过任何受支持的OAuth提供程序登录。要通过提供商登录,只需在登录屏幕上单击提供商的按钮。

OAuth登录界面

您将被重定向到相应提供商的登录屏幕。

如果您已经登录到该提供商的任何应用程序,则不需要再次登录,但您可能必须授权Artifactory访问您的帐户信息,具体取决于提供商的类型。

页面内容



配置OAuth

要访问OAuth集成设置,请在管理模块,选择安全|OAuth SSO。

OAuth单点登录配置

支持OAuth
如果选中,则启用OAuth提供程序的身份验证,Artifactory将显示已配置的所有OAuth提供程序。如果未选中,则通过Artifactory用户/密码进行身份验证。
自动创建人工用户
如果选中,Artifactory将为任何第一次登录Artifactory的新用户创建一个Artifactory用户帐户。
默认提供程序

指定提供程序,不同的客户端(例如NPM)应该通过该提供程序验证其登录以获得对Artifactory的访问权限。

默认提供程序

目前,只有GitHub企业OAuth提供商可以被定义为默认提供商。

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

自定义URL库

要使您的OAuth设置正常工作,请确保您有自定义URL库配置。

添加新的提供者

Artifactory中定义的提供程序列表显示在供应商部分。

OAuth提供商列表

要添加新的提供者,请单击“new”。Artifactory显示一个对话框,让您输入提供程序的详细信息。根据您正在配置的提供程序,这些可能略有不同。

新的OAuth提供程序

下表描述了每个支持的提供程序所需的设置,以及您应该使用的相应值(如果可用):


GitHub.com
GitHub企业
谷歌
云铸造厂UAA
OpenID
描述
启用
(勾选)
(勾选)
(勾选)
(勾选)
(勾选)
如果选中,此OAuth提供程序将被启用,并将出现在登录对话框中。
供应商的名字
(勾选)
(勾选)
(勾选)
(勾选)
(勾选)

此提供程序的逻辑名称。例如,"谷歌OAuth", "GitHub OAuth"。

这在Artifactory中必须是唯一的。

提供者类型
(勾选)
(勾选)
(勾选)
(勾选)
(勾选)
提供者类型。目前GitHubGit Enterprise, b谷歌OpenID,云计算都受支持。
提供者ID
(勾选)
(勾选)
(勾选)
(勾选)
(勾选)

用于向提供者标识您的组织的标识。

这是由OAuth提供程序在您使用它们设置帐户时提供的。

秘密
(勾选)
(勾选)
(勾选)
(勾选)
(勾选)

由提供者分配给您的组织的秘密。

这是由OAuth提供程序在您使用它们设置帐户时提供的。

(错误) (错误)
(勾选)
(错误) (错误)

指定一个域过滤器,该过滤器定义可以从哪些域对用户进行身份验证。

通常,这将是您的域名。例如m.si-fil.com

码头工人登录
(错误)
(勾选)
(错误) (错误) (错误) 支持Docker登录
Npm登录
(错误)
(勾选)
(错误) (错误) (错误) 支持Npm登录
基本URL
https://github.com/

<服务器基础URL>

(错误) (错误) (错误) 应该用于身份验证的Git服务器的基本URL。
身份验证URL

https://github.com/login/oauth/authorize

GitHub.com账户

任何可以访问Artifactory URL的GitHub.com帐户都可以登录,包括不在GitHub.com组织范围内的帐户。
<服务器基础URL>/登录/ oauth /授权 https://accounts.google.com/o/oauth2/auth <服务器基础URL>oauth /授权
(勾选)
提供程序通过该URL将您重定向到身份验证页面。
API的URL
https://api.github.com/user /api/v3/user https://www.googleapis.com/oauth2/v1/userinfo <服务器基础URL>/用户信息
(勾选)
Artifactory可以通过该URL获取不能通过OAuth直接获得的额外信息。
标记的URL
https://github.com/login/oauth/access_token /login/oauth/access_token https://www.googleapis.com/oauth2/v3/token <服务器基础URL>oauth /令牌
(勾选)
Artifactory获取令牌以使用API的URL。

使用查询参数

的同时传递查询参数授权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提供商


创建OAuth提供程序帐户

为了使用OAuth身份验证,您需要为您希望使用的每个OAuth提供者设置一个帐户,以便获得您需要在Artifactory中设置OAuth集成的各种参数(例如provider ID和Secret)。

GitHub OAuth设置

注意:访问GitHub.com帐户

任何GitHub.com可以访问Artifactory URL的帐户将被允许登录,包括您的网站之外的帐户GitHub.com组织范围。这并不适用于GitHub企业。


要在GitHub上设置OAuth帐户,请执行以下步骤:

  1. 登录到您的GitHub帐户。在您的个人配置文件设置下,选择应用程序然后点击开发人员应用程序选项卡

  2. 点击注册新的应用程序。

  3. 设置应用程序名称。例如,人工SaaS OAuth。

  4. 设置主页网址.这是您的Artifactory服务器主机URL (https:// < artifactory-server > /).
    例如,https://mycompany.jfrog.io/mycompany/

  5. 设置授权回调Url如下:

    1. 对于人工现场安装:http:// < server_host > / artifactory / api / oauth2 / loginResponse
      例如,http://mycompany.artifactory.com/artifactory/api/oauth2/loginResponse

    2. 对于人工SaaS:https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse
      例如,https://mycompany.jfrog.io/mycompany/api/oauth2/loginResponse

  6. 点击注册应用程序生成你的客户机ID客户的秘密
    把这些都记下来;您将需要它们通过GitHub在Artifactory上配置OAuth身份验证。

在GitHub上配置OAuth

谷歌OAuth提供程序设置

要在谷歌上设置OAuth帐户,请执行以下步骤:

  1. 登录到谷歌开发者控制台
  2. 创建一个新项目。例如,“Artifactory OAuth”。

  3. 项目创建完成后,在左侧导航栏中选择api和授权|凭证。

  4. 选择OAuth同意屏幕选项卡并配置最终用户在使用谷歌凭据登录时将看到的同意屏幕。
    b谷歌上配置OAuth

  5. 回到凭证选项卡上,单击添加证书并选择OAuth 2.0客户端ID
    在谷歌上添加OAuth凭据

  6. 创建客户端ID,选择Web应用程序

  7. 输入一个名字然后设置授权重定向uri
    Artifactory on-prem:https:// < server_host > / artifactory / api / oauth2 / loginResponse
    对于人工SaaS:https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse

    在谷歌上创建客户端ID

  8. 点击创建生成你的客户机ID客户的秘密
    谷歌上的客户端凭据
    把这些都记下来;您将需要它们在Artifactory上通过谷歌配置OAuth身份验证。

云铸造厂UAA设置

使用Cloud Foundry UAA的OAuth认证从Artifactory版本4.2.1开始支持。

要使用Cloud Foundry UAA设置OAuth身份验证,请根据需要填写字段。

在Cloud Foundry上设置OAuth


使用安全认证

要使用安全的OAuth和来自Java信任的CA的有效证书,您所需要做的就是在设置中使用安全的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配置。

NGINX反向代理配置
位置~ (/artifactory/webapp/ b| /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年代;proxy_set_header $ Host;$proxy_add_x_forwarded_for;$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; }




  • 没有标签