如何使用ADFS 2022配置ARTIFACTORY SAML SSO ?

罗兰杨
2023-01-22 11:09

请使用我们的SAML单点登录集成配置您的Artifactory以使用ADFS单点登录(SSO)..此外,您可以参考我们创建的使用Artifactory配置ADFS Management 10.0的示例演练。

Artifactory 5.3.0及以上版本支持在Artifactory的组和源自ADFS转发断言的组之间进行组同步。一个常见的用例也是同步您的LDAP组和Artifactory中的权限,所需的先决条件是导入LDAP组。

请注意:LDAP组只能以小写形式导入Artifactory。作为一种解决方法,您应该将组的排序规则调整为较小的名称,以便SAML和Artifactory(内部或导入)组同步到功能。这个需求是存在的,因为SAML断言可以包含混合排序规则,Artifactory将遵循它。

示例演练

  1. 打开ADFS管理控制台。
  2. 在左侧的树状浏览器中,导航到“依赖方信托”。
  3. 点击“添加依赖方信任”(在控制台右侧的“操作”窗口下)。
  4. 在“添加依赖方信任向导”对话框中,选择“声明感知”,然后单击“开始”。
  5. 选择“手动输入依赖方数据”,单击“下一步”。
  6. 选择任意“显示名称”,然后点击“下一步”。
  7. 您可以跳过证书并单击“Next”。
  8. 选择“启用对SAML 2.0 WebSSO协议的支持”,在URL文本框中填写:“https://{PLATFORM_URL}/artifactory/webapp/saml/loginResponse”,然后单击“下一步”。

(例如{PLATFORM_URL}: https://yourcompany.jfrog.io/yourcompany或https://yourcompany.local:8443/artifactory)

用户添加图片

9.在“依赖方信任标识符”文本框中填写:“https://{PLATFORM_URL}”并点击“添加”,点击“下一步”。

用户添加图片

10.选择“允许所有人”,然后按“下一步”。
11.单击“下一步”。
12.选择“关闭”。
13.在“编辑索赔发放策略”对话框中,单击“添加规则…”
14.在“声明规则模板”框中,选择“将LDAP属性作为声明发送”,然后单击“下一步”。
15.填写任意“声明规则名称”,并在“属性存储”中选择“活动目录”。
16.在“映射LDAP属性…”部分,在“LDAP属性”中选择“SAM-Account-Name”或“Email Address”。在“传出索赔类型”中选择“名称ID”并单击“完成”。

用户添加图片

17.添加另一条规则,这次选择“转换传入索赔”,然后单击下一步。

用户添加图片

18.填写一个名称,并将“传入索赔类型”字段设置为“电子邮件地址”,并将“传出索赔类型”设置为“名称ID”。单击Finish。

  • 如果您希望相应地显示Artifactory用户(而不是您的电子邮件地址),可以将“Incoming claim type”属性更改为“Windows Account Name”。
用户添加图片

Artifactory Side和证书分配:

在您的Artifactory UI中,以“admin”用户登录,并在“admin”选项卡导航到“SAML Integration”部分,并执行以下步骤:

  1. 选中“启用SAML集成”复选框。
  2. 在“SAML登录URL”文本框中填写:“https://{ADFS_SERVER_URL}/adfs/ls/IdpInitiatedSignOn.aspx”
  3. 在“SAML注销URL”文本框中填写:“https://{ADFS_SERVER_URL}/adfs/ls?”注销”
  4. 在“SAML服务提供者名称”文本框中填写:“https://{PLATFORM_URL}”
  5. 在“SAML证书”文本框中,粘贴ADFS服务器生成的x509 SAML证书(参见下面的截图)
AD FS -> Service - Certificates ->选择令牌签名证书->查看证书-> Details -> Copy to file ->导出文件格式为base64 encoded cer。

用户添加图片

用户添加图片

用户添加图片

6.点击“保存”(如果使用Artifactory >5.3.0可以设置组属性,详见下文)。

7.导航到“常规”部分(左侧树浏览器),在“自定义URL Base”文本框中填写:“https://{PLATFORM_URL}”,然后单击“保存”。

8.注销Artifactory用户界面,然后尝试使用“SSO登录”登录。

组同步(Artifactory 5.3.0及以上)

注意:仅配置SAML时,此组同步不持久://www.si-fil.com/confluence/display/JFROG/SAML+SSO

1.在ADFS管理控制台中,使用左侧的树状浏览器,导航到“Claims Provider Trusts”→“Active Directory”。

2.选择“编辑索赔规则”:

用户添加图片

3.选择“出站LDAP规则”并单击下面的编辑。为您的Active Directory属性添加以下映射:
"令牌组-非限定名称"→"组"
单击OK保存。

用户添加图片

4.在左侧的树浏览器中,导航到“依赖方信托”,并选择您的Artifactory依赖方定义(如上面的配置)。我们将为组声明创建另一个转换规则。

5.再次单击“Add rule…”对话框添加另一条规则,选择“Transform an Incoming claim”,然后单击下一步。

用户添加图片

6.为转换规则选择一个名称。将“传入索赔类型”字段设置为“Group”,并将“传出索赔类型”设置为您选择的属性,我们将使用“Group”属性(属性的名称在Artifactory中可配置)。点击Finish:

用户添加图片

7.转到您的Artifactory UI,以“admin”用户登录,导航到“SAML Integration”,并调整组属性的名称设置。它需要设置为“http://schemas.xmlsoap.org/claims/Group”(见上面的截图)
*内部Artifactory组是区分大小写的,与SAML断言一起到达的组也是如此,因此请确保您的组具有精确的匹配。同样,导入到Artifactory的LDAP组只能以小写形式存在。
例如,我在Artifactory中创建了一个名为“adfs-artifactory”的组,具有管理权限:

用户添加图片

然后在Active Directory中,我创建了一个同名的组,并将自己添加为成员。

用户添加图片

然后,当我通过SAML的UI登录到Artifactory时,我现在有管理权限:

用户添加图片