ARTIFACTORY:如何将ARTIFACTORY与Azure OpenID集成?

瓦西里•Shkavera
2023-01-22 11:09

OAuth是Artifactory的一部分。它允许您将身份验证请求委托给外部提供者,并允许用户通过使用这些提供者的帐户登录Artifactory。

对于这一步一步的指南设置Azure OpenID OAuth SSO与Artifactory。

在Microsoft Azure Portal中:

  1. 导航到Azure Active Directory→应用程序注册→创建新注册

  2. 选择支持的帐户类型

  3. 重定向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
    *重定向URL可以在创建应用程序注册后编辑,在注册应用程序的身份验证部分

4.在Certificates & secrets下,为选定的App注册生成一个客户端秘密,并保存/复制它的值。
这将在稍后的Artifactory配置中使用

在Artifactory/JFrog平台:

  1. 使用具有管理员权限的用户登录,导航到admin选项卡→Security→OAuth SSO→Create New Provider
  2. 选择提供程序类型:OpenID
  3. 在Azure Portal中输入已注册应用程序的端点提供的ClientID、Auth URL和令牌URL。输入在前一节的步骤4中创建的Secret
用户添加图片
4.API的URL输入如下:
https://graph.microsoft.com/oidc/userinfo
*不要在已注册的应用程序端点(https://graph.microsoft.com)下使用Azure提供的URL
5.保存并启用OAuth SSO

故障排除:

使用新建立的OAuth单点登录时,可能出现以下错误:错误处理OAuth2登录:在OAuth响应中没有找到电子邮件
之所以会抛出上述错误,是因为默认情况下,Artifactory正在返回的JSON响应中查找“preferred_username”或“email”属性,以用作内部用户名。在某些情况下,这些都不返回,这取决于Azure AD/OICD设置。

为了克服这个问题,在7.4.0版本中引入了一个新的Artifactory系统属性,它允许显式指定Artifactory将用作Open ID响应中的用户名标识符的字段。这可以通过将artifactory.oauth.user.info.identifier属性添加到$ARTIFACTORY_HOME/etc/artifactory/artifactory.system来完成。属性文件,其值为所需的字段,例如:artifactory.oauth.user.info.identifier = unique_name
*上述内容需要重新启动Artifactory才能生效

自动化:

从版本5.8开始,Artifactory提供了一种灵活的方式来配置现有的Artifactory实例,使用一个简单的YAML配置文件,该文件允许导入任何外部身份提供程序设置。
请在网站上找到更多信息人工YAML配置融合页面。
下面是一个OpenID配置YAML文件的例子:
安全:
oauthSettings:
enableIntegration:真
persistUsers:假
allowUserToAccessProfile:假
oauthProvidersSettings:
openid-oauth: #提供程序在JDP中的名称
id: # OAuth Provider的唯一id /客户端id /应用程序id
启用:false #设置时,启用OAuth SSO提供程序设置
apiUrl: https://graph.microsoft.com/oidc/userinfo # API访问使用的URL
authUrl: https://login.microsoftonline.co0m/ <承租者id > / oauth2 /版本/授权
#初始认证步骤使用的URL
basicUrl:
providerType: openId
# OAuth2共享密钥,由提供者给出
tokenUrl: https://login.microsoftonline.com/ <承租者id > / oauth2 /版本/令牌
用于从提供程序获取令牌的URL