使用
当在JFrog平台中启用OAuth时,用户可以选择通过任何受支持的OAuth提供程序登录。要通过提供商登录,只需在登录屏幕上单击提供商的按钮。
您将被重定向到相应提供商的登录屏幕。
如果您已经登录到该提供商的任何应用程序,则不需要再次登录,但您可能必须授权JFrog平台访问您的帐户信息,具体取决于提供商的类型。
配置OAuth
在Artifactory 7.38中实现的web更改。X及以上
安全性现在称为身份验证提供程序。本页上的所有相关文本和图像都已更新以反映这一变化。
要访问OAuth集成设置,请在政府模块,选择身份验证提供者|OAuth SSO.
支持OAuth |
选中后,启用OAuth提供程序的身份验证,系统将显示已配置的所有OAuth提供程序。如果未选中,则通过Artifactory用户/密码进行身份验证。 |
自动创建系统用户 |
设置后,系统将自动为使用OAuth登录的用户创建新用户,并将其分配到默认组中。 |
默认提供程序 |
指定提供程序,不同的客户端(例如npm)应该通过该提供程序对其登录进行身份验证以访问JFrog平台。 默认提供程序 目前,只有GitHub企业OAuth提供商可以被定义为默认提供商。 |
选中后,使用OAuth进行身份验证后创建的用户将能够访问他们的个人资料.这意味着他们能够产生他们的API密匙和设置他们的密码供将来使用。 |
自定义URL库
要使您的OAuth设置正常工作,请确保您有自定义基础URL配置。
添加新的提供者
Artifactory中定义的提供程序列表显示在供应商部分。
要添加新的提供程序,请单击新.JFrog平台显示一个对话框,允许您输入提供程序的详细信息。根据您正在配置的提供程序,这些可能略有不同。
下表描述了每个支持的提供程序所需的设置,以及您应该使用的相应值(如果可用):
描述 |
GitHub.com |
GitHub企业 |
谷歌 |
云铸造厂UAA |
OpenID |
|
启用 |
如果选中,则启用此OAuth提供程序,并将出现在登录对话框中。 | √ |
√ |
√ |
√ |
√ |
PKCE启用 |
如果选中,此OAuth提供程序将使用带有PKCE的授权代码流。 | X | X | √ | √ | √ |
供应商的名字 |
此提供程序的逻辑名称。例如,“Google 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 |
Artifactory可以通过该URL获取不能通过OAuth直接获得的额外信息。 | https://api.github.com/user |
|
https://www.googleapis.com |
<服务器基URL>/用户信息 |
√ |
标记的URL |
Artifactory获取令牌以使用API的URL。 | 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 Provider授权提供者应用带有PKCE(代码交换证明密钥)流的授权代码流。此流是secret使用的替代方案,一旦在OAuth提供程序上启用PKCE, secret就会自动禁用。
在您的OAuth提供程序上启用PKCE:
- 在Administration模块中,导航到政府模块,并选择身份验证提供者|OAuth SSO.
滚动到
供应商
部分并点击新
或者编辑现有的提供程序。- 选择
PKCE启用
复选框。
结果,秘密
字段被禁用。
开启和关闭个人OAuth单点登录
在Artifactory 7.38中实现的web更改。X及以上
身份与访问现在被称为用户管理。本页上的所有相关文本和图像都已更新以反映这一变化。
- 要启用个人OAuth单点登录,请在政府模块,选择用户管理|安全.
- 向下滚动到“个人登录”,然后选择启用通过外部提供商注册.
- 然后,从提供商下拉列表中,选择您希望在注册屏幕中启用的提供商,例如Google, GitHub等。
绑定现有用户帐户
使用您的任何OAuth提供程序帐户登录内部(不是外部领域,如LDAP、SAML…)帐户,将您的JFrog平台帐户绑定到相应的帐户。
要绑定您的帐户,请到您的配置文件页面,并输入您的JFrog平台密码解锁。
下OAuth用户绑定中,选择单击以绑定您希望绑定到的OAuth提供程序旁边。
创建OAuth提供程序帐户
为了使用OAuth身份验证,您需要为希望使用的每个OAuth提供者设置一个帐户,以便获得在系统中设置OAuth集成所需的各种参数(如提供者ID和Secret)。
GitHub OAuth设置
注意:访问GitHub.com帐户
任何GitHub.com可以访问JFrog平台URL的帐户将被允许登录,包括您的帐户之外的帐户GitHub.com组织范围。这并不适用于GitHub企业。
在GitHub上设置您的OAuth帐户:
登录你的GitHub账户。在您的个人配置文件设置下,选择应用程序然后点击开发人员应用程序选项卡.
点击注册新的应用程序。
设置应用程序名称。例如,JFrog平台云认证。
设置主页网址.这是您的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和客户的秘密.
把这些都记下来;您将需要它们通过JPD上的GitHub配置OAuth身份验证。
Google OAuth提供程序设置
要在Google上设置您的OAuth帐户,请执行以下步骤:
- 登录到Google开发者控制台.
创建一个新项目。例如,“Artifactory OAuth”。
项目创建完成后,在左侧导航栏中选择api和授权|凭证。
选择OAuth同意屏幕选项卡并配置最终用户在使用Google凭据登录时将看到的同意页面。
回到凭证选项卡上,单击添加证书并选择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平台上通过Google配置OAuth身份验证。
云铸造厂UAA设置
支持使用Cloud Foundry UAA进行OAuth认证。
要使用Cloud Foundry UAA设置OAuth身份验证,请根据需要填写字段。
使用安全认证
要使用安全的OAuth和来自Java信任的CA的有效证书,您所需要做的就是在设置中使用安全的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配置。
位置~ (/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年代;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-JFrog-Override-Base-Url $http_x_forwarded_proto://$host; }