使用
当JFrog平台启用OAuth时,用户可以选择通过任何支持的OAuth提供者登录。要通过提供者登录,只需单击登录屏幕上的提供者按钮。
您将被重定向到相应提供者的登录屏幕。
如果您已经登录到任何提供商的应用程序,您将不需要再次登录,但您可能必须授权JFrog平台访问您的帐户信息,具体取决于提供商类型。
配置OAuth
在Artifactory 7.38中实现的web更改。X及以上
安全性现在称为身份验证提供程序。本页上的所有相关文本和图像都已更新以反映这一变化。
要访问OAuth集成设置,请在政府模块,选择身份验证提供者|OAuth SSO.
JFrog云新界面(测试版)
在任务栏上,单击(平台配置),并选择用户认证> OAuth单点登录。到l赚取更多,点击在这里.
支持OAuth |
选中后,启用OAuth提供程序的身份验证,系统将显示已配置的所有OAuth提供程序。如果不勾选,则使用Artifactory用户/密码进行身份验证。 |
自动创建系统用户 |
设置后,系统将自动为使用OAuth登录的用户创建新用户,并将其分配到默认组中。 |
默认提供程序 |
指定提供程序,不同的客户端(例如npm)应该通过该提供程序验证他们的登录,以获得对JFrog平台的访问权。 默认提供程序 目前,只有GitHub企业OAuth提供程序可以被定义为默认提供程序。 |
选中后,使用OAuth进行身份验证后创建的用户将能够访问他们的个人资料.这意味着他们能够产生他们的API密匙和设置他们的密码供以后使用。 |
自定义URL库
要使OAuth设置工作,请确保您有自定义基础URL配置。
添加新的提供者
Artifactory中定义的提供程序列表显示在供应商部分。
如需添加新的提供程序,请单击新.JFrog平台显示一个对话框,允许您输入提供者的详细信息。根据所配置的提供程序的不同,这些参数可能略有不同。
下表描述了每个受支持的提供程序所需的设置,以及您应该使用的相应值(如果可用):
描述 |
GitHub.com |
GitHub企业 |
谷歌 |
Cloud Foundry UAA |
OpenID |
|
启用 |
如果选中,则启用此OAuth提供程序,并将显示在登录对话框中。 | √ |
√ |
√ |
√ |
√ |
PKCE启用 |
如果选中,这个OAuth提供者将使用带有PKCE的授权代码流。 | X | X | √ | √ | √ |
供应商的名字 |
此提供程序的逻辑名称。例如,“谷歌OAuth”,“GitHub OAuth”。 这在JFrog平台中必须是唯一的。 |
√ |
√ |
√ |
√ |
√ |
提供者类型 |
提供者类型。目前GitHub,Git企业版,谷歌,OpenID,云计算都受支持。 |
√ |
√ |
√ |
√ |
√ |
客户机ID |
向提供者标识您的组织的标识。 这是由OAuth提供商在您设置帐户时提供的。 |
√ |
√ |
√ |
√ |
√ |
秘密 |
由提供者分配给组织的秘密。 这是由OAuth提供商在您设置帐户时提供的。 |
√ |
√ |
√ |
√ |
√ |
域 |
指定一个域筛选器,它定义了用户可以从哪些域进行身份验证。 通常,这将是您的域名。例如 |
X | X | √ |
X | X |
码头工人登录 |
支持Docker登录 | X |
√ |
X | X | X |
npm登录 |
支持npm登录 | X |
√ |
X | X | X |
基本URL |
Git服务器的基本URL,用于身份验证。 | https://github.com/ |
|
X | X | X |
身份验证URL |
提供者通过该URL将您重定向到身份验证页面。 |
https://github.com/login/oauth/authorize
|
<服务器基础URL>/登录/ oauth /授权 |
https://accounts.google.com |
<服务器基础URL>oauth /授权 |
√ |
API的URL |
通过该URL, Artifactory可以获得无法通过OAuth直接获得的额外信息。 | https://api.github.com/user |
|
https://www.googleapis.com |
<服务器基础URL>/用户信息 |
√ |
标记的URL |
Artifactory将访问的URL,以获取使用API的令牌。 | https://github.com/login |
|
https://www.googleapis.com |
<服务器基础URL>oauth /令牌 |
√ |
使用查询参数
参数时可以传递查询参数授权URL.
https://github.com/login/oauth/authorize?realm=Employees
多个查询参数应该用&号分隔。
https://github.com/login/oauth/authorize?realm=Employees?client_id=XXXXXXXXXXX&scope=openid%20profile%20email
使用PKCE启用授权代码流
在Artifactory 7.38中实现的web更改。X及以上
安全性现在称为身份验证提供程序。本页上的所有相关文本和图像都已更新以反映这一变化。
从Artifactory版本7.38开始,您可以为您的OAuth提供者授权提供者应用带有PKCE(代码交换证明密钥)流的授权代码流。此流是使用Secrets的替代方案,一旦在OAuth提供程序上启用PKCE, Secrets将被自动禁用。
要在您的OAuth提供程序上启用PKCE:
- 在Administration模块中,导航到政府模块,并选择身份验证提供者|OAuth SSO.
滚动到
供应商
部分并点击新
或者编辑现有的提供程序。- 选择
PKCE启用
复选框。
结果,秘密
字段被禁用。
启用和禁用个人OAuth单点登录
在Artifactory 7.38中实现的web更改。X及以上
身份和访问现在被称为用户管理。本页上的所有相关文本和图像都已更新以反映这一变化。
要启用个人OAuth单点登录,请在政府模块,选择用户管理|安全.
JFrog云新界面(测试版)
在任务栏上,单击(平台配置),并选择平台配置>平台安全>常规。到l赚取更多,点击在这里.
- 向下滚动到个人登录,并选择启用通过外部提供者注册.
- 然后,从Providers下拉列表中,选择您希望在注册屏幕中启用的提供商,例如谷歌,GitHub等。
绑定现有用户帐号
使用您的任何OAuth提供者帐户登录内部(而不是外部领域,如LDAP, SAML…)当系统中存在JFrog平台帐户时,将您的JFrog平台帐户绑定到相应的帐户。
要绑定您的帐户,请转到您的配置文件页面,并输入您的JFrog平台密码解锁。
下OAuth用户绑定中,选择点击绑定在您希望绑定到的OAuth提供程序旁边。
创建OAuth Provider帐户
为了使用OAuth身份验证,您需要为您希望使用的每个OAuth提供者设置一个帐户,以便获得您需要在系统中设置OAuth集成的各种参数(如提供者ID和Secret)。
GitHub OAuth安装
注意:访问GitHub.com帐户
任何GitHub.com拥有JFrog平台URL访问权限的帐户将被允许登录,包括您以外的帐户GitHub.com组织范围。这不适用于GitHub企业。
在GitHub上设置OAuth帐户:
登录你的GitHub账户。在您的个人配置文件设置下,选择应用程序然后点击开发者应用程序选项卡.
点击注册新应用程序。
设置应用程序名称。例如,JFrog平台云OAuth。
设置主页网址.这是您的Artifactory服务器主机URL (
https:// < artifactory-server > /
).
例如,https://mycompany.jfrog.io/mycompany/
设置授权回调URL如下:
就地安装:
http:// < server_host > / artifactory / api / oauth2 / loginResponse
例如,http://mycompany.artifactory.com/artifactory/api/oauth2/loginResponse
- 云:
https:// < server_name >。jfrog.io artifactory / api / oauth2 / loginResponse
例如,https://mycompany.jfrog.io/artifactory/api/oauth2/loginResponse
点击注册应用程序要生成客户机ID和客户的秘密.
把这些都记下来;您将需要它们通过GitHub在JPD上配置OAuth身份验证。
谷歌OAuth Provider设置
在谷歌上设置您的OAuth帐户,执行以下步骤:
- 登录到谷歌开发人员控制台.
创建一个新项目。例如,“Artifactory OAuth”。
一旦创建了项目,在左侧导航栏中,选择api和认证|凭证。
选择OAuth同意屏幕选项卡并配置最终用户在使用谷歌凭据登录时将看到的同意页面。
回到凭证选项卡上,单击添加证书并选择OAuth 2.0客户端ID。
下创建客户端ID,选择Web应用程序.
输入一个名字并设置授权重定向uri
on-prem:https:// < server_host >/ artifactory / api /认证/ oauth2 / loginResponse
云:https:// < server_name >。jfrog.io artifactory / api / oauth2 / loginResponse
- 点击创建要生成客户机ID和客户的秘密.
把这些都记下来;您将需要它们通过JFrog平台上的谷歌配置OAuth身份验证。
Cloud Foundry UAA设置
支持Cloud Foundry UAA的OAuth身份验证。
要使用Cloud Foundry UAA设置OAuth身份验证,请根据需要填写字段。
使用Secure OAuth
要使用来自受Java信任的CA的有效证书使用安全OAuth,您所需要做的就是在设置中使用安全OAuth URL。
如果要对非受信任(自签名)证书使用OAuth,请参见信任一个新的CA或自签名证书.
使用API密钥与OAuth用户
虽然OAuth提供了对UI的访问,但OAuth用户也可以生成一个API密匙它可以用来代替密码进行基本身份验证或在专用的REST API头,这在使用不同的客户端(例如docker, npm, maven等)或使用Artifactory REST API时非常有用。
为了允许OAuth用户访问API密钥,您将需要确保“自动创建系统用户“而且”允许创建的用户访问配置文件页面选中复选框。这意味着OAuth用户也保存在数据库中,并且可以访问他们的个人信息页面以生成、检索和撤销它们的API密钥。
在高可用性设置中使用OAuth
OAuth协议要求客户端为特定的应用程序授予权限。JPD将用户重定向到已配置的应用程序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-JFrog-Override-Base-Url $http_x_forwarded_proto://$host; }