使用Artifactoryx ?
JFrog Artifactoryx用户指南
有问题吗?想要报告问题?联系JFrog支持
安全断言标记语言
SAML是一种XML标准,允许您在web域之间交换用户身份验证和授权信息。
Artifactory提供了允许联合的基于saml的单点登录服务Artifactory合作伙伴(身份提供者)对授权过程的完全控制。
使用SAML, Artifactory充当服务提供者哪个系统从外部接收用户的认证信息l身份提供者。
在这种情况下,Artifactory不再负责用户的身份验证,尽管它仍然必须将登录请求重定向到标识提供程序并验证的完整性身份提供者的响应。
Artifactory的SAML配置
配置SAML单点登录集成管理模块下安全| SAML单点登录。
启用SAML集成 |
选中时,SAML集成被启用,用户可以通过SAML服务器进行身份验证。 |
登录URL |
SAML登录URL。 |
SAML注销URL |
SAML注销URL。 |
SAML服务提供者名称 |
SAML服务提供者名称。这应该是一个URI,也称为entityID、providerID或实体标识。详细信息请参见SAML v2规范. |
自动关联组 |
设置后,除了用户已经关联的组之外,他还将与SAML登录响应中返回的组关联。 注意,用户与返回的组的关联不是持久的。它仅对浏览器中的当前登录会话有效(即,对于使用SAML用户id和API密钥的登录无效)。 此外,关联也不会反映在ui Groups设置页面中。相反,您可以通过在您的 <记录器name = " org.artifactory.addon.sso.saml " > |
组属性 |
SAML登录XML响应中的组属性。注意,Artifactory将搜索现有组的区分大小写的匹配。 |
电子邮件属性 |
如果自动创建人工用户启用或内部用户存在时,Artifactory将用户的电子邮件设置为SAML登录XML响应返回的该属性中的值。 |
SAML证书 |
包含公钥的X.509证书。 |
自动创建人工用户 |
当勾选时,对于第一次通过SAML访问Artifactory in的新用户,Artifactory将创建一个将持久化在数据库中的用户。 |
选中后,使用SAML进行身份验证后创建的用户将能够访问他们的个人资料.这意味着他们能够产生他们的API密匙而且设置他们的密码供以后使用。 | |
自动重定向登录链接到SAML登录 |
选中后,单击登录链接将用户引导到已配置的SAML登录URL。 |
在Artifactory中使用基于saml的SSO:
- 以管理员权限登录Artifactory。
- 在管理模块,转到安全| SAML单点登录。
- 属性启用SAML集成启用SAML集成复选框。
- 启用或禁用“自动创建Artifactory用户”(使用SAML登录)。如果启用,新用户将持久化在数据库中。
- 启用或禁用“允许用户访问个人资料页面”。如果启用,用户将能够访问他们的个人资料而无需提供密码。
提供登录URL而且SAML Logut URL
SAML注销URL
为了同时从SAML提供者和Artifactory注销,您需要正确地设置提供者的注销URLSAML注销URL字段。不正确的设置将使用户在从Artifactory注销后仍然登录SAML提供程序。
提供服务提供者名称(SAML联合中的Artifactory名称)
提供包含公钥的X.509证书。公钥可以使用DSA算法或RSA算法。Artifactory使用这个密钥来验证SAML响应的来源和完整性。确保X.509证书中嵌入的公钥与用于签署SAML响应的私钥相匹配。
自定义URL库
要使SAML SSO设置正常工作,请确保您有自定义URL库配置。
签名和加密的断言
1.请确保您的SAML IdP(身份提供者)提供了已签名的登录断言-这是Artifactory断言验证的必填项。
2.目前Artifactory不支持加密断言。
3.Artifactory目前也不支持签名注销。
了解Artifactory基于saml的SSO登录过程
用户试图访问托管的Artifactory主页。
Artifactory生成SAML身份验证请求。
SAML请求被编码并嵌入到标识提供程序URL中。
Artifactory向用户的浏览器发送重定向。重定向URL包括应提交给标识提供程序的编码SAML身份验证请求。
标识提供程序解码SAML消息并对用户进行身份验证。身份验证过程可以通过请求有效的登录凭据或检查有效的会话cookie来进行。
标识提供程序生成一个SAML响应,其中包含经过身份验证的用户的用户名。根据SAML 2.0规范,此响应使用身份提供程序的私有DSA/RSA密钥进行数字签名。
标识提供程序对SAML响应进行编码,并将该信息返回给用户的浏览器。标识提供程序使用已签名的响应重定向回Artifactory。
Artifactory的ACS使用合作伙伴的公钥验证SAML响应。如果响应验证成功,ACS将用户重定向到目的URL。
用户已被重定向到目标URL,并登录到Artifactory。
图(2)Artifactory基于saml的SSO登录流程。
了解Artifactory基于saml的SSO注销过程
- 用户试图到达托管的Artifactory注销链接。
- Artifactory将客户端注销,并生成SAML注销请求。
- 对象重定向到标识提供程序编码SAML注销请求。
- 标识提供程序解码SAML消息并将用户注销。
- 用户被重定向到标识提供程序中已配置的URL。
图(3)Artifactory基于saml的SSO注销过程。
Artifactory配置文件和绑定
Artifactory目前支持Web浏览器SSO和单次注销配置文件。
Web浏览器SSO配置文件使用HTTP重定向绑定将AuthnRequest从服务提供者发送到标识提供者,并使用HTTP POST将身份验证响应从标识提供者发送到服务提供者。
与前面的概要文件类似,单个注销概要文件使用HTTP重定向绑定将LogoutRequest从服务提供者发送到标识提供者,并使用HTTP POST将注销响应从标识提供者发送到服务提供者。
如果您的IDP支持上传服务提供商元数据,您可以使用以下元数据XML:
图(4)Artifactory的服务提供者元数据XML。
< ns2: EntityDescriptor xmlns = " http://www.w3.org/2000/09/xmldsig " xmlns: ns2 = " urn: oasis: names: tc: SAML: 2.0:元数据”entityID = " < SP_NAME_IN_FEDERATION > " > < ns2: SPSSODescriptor WantAssertionsSigned = " true " AuthnRequestsSigned =“false”protocolSupportEnumeration = " urn: oasis: names: tc: SAML: 2.0:协议”> < ns2: NameIDFormat > urn: oasis: names: tc: SAML: 1.1: nameid-format:未指明的< / ns2: NameIDFormat > < ns2: AssertionConsumerService指数= =“1”位置”< ARTIFACTORY_URL > / webapp / SAML / loginResponse”Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/> .
注意!tO使用服务提供者元数据:
不要忘记在服务提供者元数据XML中更新以下字段:
- entityID -Artifactory在联盟中的ID。必须匹配SAML服务提供者名称在Artifactory的SAML配置页面。
- Location - Artifactory的主URL
SAML设置后
使用SAML, Artifactory自动将请求重定向到对用户进行身份验证的IDP,并在成功登录后重定向回Artifactory。
如果启用了“匿名用户”,Artifactory不必对用户进行身份验证,因此它不会重定向到IDP。如果用户仍然想通过SAML登录,他们可以通过单击登录页面中的“SSO登录”链接来实现。
登录失败
在IDP故障转移或配置错误的情况下,Artifactory允许您通过使用Artifactory登录页面绕过SAML登录:
http:// < ARTIFACTORY_URL > / webapp / # /登录
需要直接登录到Artifactory的内部用户可以使用这个URL。
与SAML用户一起使用API密钥
当SAML提供对Artifactory UI的访问时,SAML用户也可以生成一个API密匙它可以用来代替密码进行基本身份验证或在专用的REST API头,这在使用不同的客户端(例如docker, npm, maven等)或使用Artifactory REST API时非常有用。
为了允许SAML用户访问API密钥,您需要确保“自动创建人工用户“而且”允许创建的用户访问配置文件页面选中复选框。这意味着SAML用户也保存在Artifactory数据库中,并且可以访问他们的个人信息页面以生成、检索和撤销它们的API密钥。