使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获取最新版本,请访问JFrog统一平台
配置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企业 |
谷歌 |
云铸造厂UAA |
OpenID |
描述 |
|
启用 |
|
|
|
|
|
如果选中,此OAuth提供程序将被启用,并将出现在登录对话框中。 |
供应商的名字 |
|
|
|
|
|
此提供程序的逻辑名称。例如,"谷歌OAuth", "GitHub OAuth"。 这在Artifactory中必须是唯一的。 |
提供者类型 |
|
|
|
|
|
提供者类型。目前GitHub,Git Enterprise, b谷歌,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 |
|
|
Artifactory可以通过该URL获取不能通过OAuth直接获得的额外信息。 |
标记的URL |
https://github.com/login/oauth/access_token |
|
https://www.googleapis.com/oauth2/v3/token |
|
|
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提供者设置一个帐户,以便获得您需要在Artifactory中设置OAuth集成的各种参数(例如provider ID和Secret)。
GitHub OAuth设置
注意:访问GitHub.com帐户
任何GitHub.com可以访问Artifactory URL的帐户将被允许登录,包括您的网站之外的帐户GitHub.com组织范围。这并不适用于GitHub企业。
要在GitHub上设置OAuth帐户,请执行以下步骤:
登录到您的GitHub帐户。在您的个人配置文件设置下,选择应用程序然后点击开发人员应用程序选项卡.
点击注册新的应用程序。
设置应用程序名称。例如,人工SaaS 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
- 对于人工SaaS:
https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse
例如,https://mycompany.jfrog.io/mycompany/api/oauth2/loginResponse
点击注册应用程序生成你的客户机ID和客户的秘密.
把这些都记下来;您将需要它们通过GitHub在Artifactory上配置OAuth身份验证。
谷歌OAuth提供程序设置
要在谷歌上设置OAuth帐户,请执行以下步骤:
- 登录到谷歌开发者控制台.
创建一个新项目。例如,“Artifactory OAuth”。
项目创建完成后,在左侧导航栏中选择api和授权|凭证。
选择OAuth同意屏幕选项卡并配置最终用户在使用谷歌凭据登录时将看到的同意屏幕。
回到凭证选项卡上,单击添加证书并选择OAuth 2.0客户端ID
下创建客户端ID,选择Web应用程序.
输入一个名字然后设置授权重定向uri
Artifactory on-prem:https:// < server_host > / artifactory / api / oauth2 / loginResponse
对于人工SaaS:https:// < server_name > .jfrog.io / < server_name > / api / oauth2 / loginResponse
- 点击创建生成你的客户机ID和客户的秘密.
把这些都记下来;您将需要它们在Artifactory上通过谷歌配置OAuth身份验证。
云铸造厂UAA设置
使用Cloud Foundry UAA的OAuth认证从Artifactory版本4.2.1开始支持。
要使用Cloud Foundry UAA设置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配置。
位置~ (/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; }