Page tree
Skip to end of metadata
Go to start of metadata

安全断言标记语言 (SAML) 是一种基于 XML 的数据格式,允许服务提供者与身份提供者(IdP)交换授权数据。最常见的用例就是允许用户使用相同的身份验证详情(通常是用户名和密码)登录多个软件应用。这被称为单点登录 (SSO)。

我们为 JIRA Software Data Center 和 JIRA Service Desk Data Center 应用提供了相关功能,可以连接到您的 IdP,以便您为用户提供 SSO 体验。这个功能只能处理身份验证。应用访问和任何必需的授权(例如确保用户属于相应群组/角色且拥有必要的权限)都应当在用户目录和/或应用本身内进行配置。

设置单点登录

您将需要配置应用和 IdP,以便为用户提供单点登录。

支持的身份提供程序

通过 HTTP POST,任何实现了 SAML 2.0 Web Browser SSO Profile 的身份提供程序都应该可以支持 SAML 单点登录。

我们目前使用以下身份提供程序执行测试:

设置 SSL/TLS

为了确保 SAML 身份验证的安全性和私密性,您需要在应用程序中设置 SSL/TLS。您可以在我们的通过 SSL 或 HTTPS 运行 JIRA 应用程序页面上找到相关步骤。

设置完成后,您需要确保应用程序配置的基础 URL 使用的是 HTTPS 协议。

使用反向代理设置 SSL/TLS

如果要使用反向代理,请参见以下这些产品特定文档,其中介绍了具体的配置步骤:

在使用终止 SSL / TLS 的反向代理时,您需要确保应用程序服务器看到的请求 URL 与反向代理的完全限定域名一致。这一点通常可以通过以下方法实现:使用相应的 proxyNameproxyPort, secure 和 scheme 设置来配置 <Connector> 指令。请查看上述文档以了解具体示例。

设置身份提供程序

如果您希望应用程序提供 SSO,则需要将其添加到您的 IdP。具体过程因 IdP 而异,但通常都需要执行以下操作:

  • 在 IdP 中定义一个“应用程序”
  • 提供一些有关此应用程序的数据,包括您可以在应用程序的 Authentication 屏幕上访问的数据
  • 确保将 IdP 中用户的 NameID 属性设置为 Atlassian 应用程序中的用户名
  • 授予用户相应的权限来使用此应用程序

设置过程结束时,您的 IdP 将为您提供一组配置 Atlassian 应用程序所需的数据。

在 Atlassian 应用程序中配置 SAML 身份验证

  1. 通过选择以下选项导航至“SAML Authentication”屏幕:> System > SAML Authentication
  2. 选择 SAML single sign-on

    配置以下设置:

    设置注意

    Single sign-on issuer

    该值由 IdP 在设置 SAML 时提供。有时也被称为“Entity ID”

    签发者是应用程序将从中接受身份验证请求的 IdP

    Identity provider single sign-on URL

    该值由 IdP 在设置 SAML 时提供。

    它定义了您的用户登录时将重定向到的 URL。

    X.509 Certificate

    该值由 IdP 在设置 SAML 时提供。有时也被称为“Signing certificate”。证书通常以“----- BEGIN CERTIFICATE -----”开头。

    这个证书包含的公钥用来确保所有收到的 SAML 身份验证请求确实都来自于您的 IdP。

    Login mode

    此设置定义了您的用户如何使用单点登录。选项包括:

    • Use SAML as secondary authentication – 默认登录方式将是标准应用程序登录表单。如果您转到 IdP 并选择您的应用程序,则可使用 SAML 登录,或者也可以使用以下 URL 登录:BASE-URL/plugins/servlet/external-login。我们推荐这种方法,这样您可以测试所有设置是否配置正确,以及用户能否使用 SSO 登录。
    • Use SAML as primary authentication – 在此模式下,所有基于浏览器的用户都将从应用程序的登录屏幕重定向到 IdP 以进行登录。您仍然可以通过以下方式进行身份验证:
      • 基础身份验证
      • 通过专用 REST 端点进行的基于表单的身份验证
      • 现有的“Remember Me”令牌

        只有在确认 SAML 身份验证能够按预期运行之后,您才能启用此模式。
    Remember user logins选中此设置后,用户的浏览器将记录成功的用户登录。当浏览用户的应用程序时,他们将自动登录,而不必再次使用 SAML 进行身份验证。
    (JIRA Service Desk only)选中此设置后,Service Desk 客户使用客户门户发出的所有登录请求都将被重定向到已配置的 IdP。如果未选中此设置,客户则必须通过客户门户登录。
  3. “Authentication”屏幕上会提供以下信息,这也是配置 IdP 所需的信息:

    设置名称注意
    Assertion Consumer Service URL

    这是 IdP 将向其返回 SAML 身份验证请求的 URL。

    Audience URL (Entity ID)

    这是 IdP 将为其准备 SAML 身份验证请求的 URL。

  4. 单击 Save configuration

配置好应用程序和 IdP 之后,就可以开始使用 SSO 了。

最佳实践

  • SAML 身份验证请求仅在有限的时间内有效。您应该确保运行应用程序和 IdP 的服务器上的时钟同步。
  • 如果使用用户目录配置应用程序中的用户和组,您通常需要使用相同的 LDAP 目录作为您的 IdP 和 Atlassian 应用程序的用户来源。用户必须存在于用户目录中,才能使用 SSO 登录。

故障排除

  • 如果您配置 SAML 身份验证时出错或无法使用 IdP 登录,可以通过发出 DELETE 请求(使用用户目录中配置的管理员用户名和密码)来恢复登录表单身份验证:

    curl -u admin_user:admin_password -X DELETE http://base-url/product/rest/authconfig/1.0/saml
  • 如果出现身份验证错误,用户将只看到有关错误的基本信息。出于安全考虑,不会显示深层问题的相关详情。您需要查看应用程序日志,以发现问题产生的原因。
  • 有时,您也可能会遇到 IdP 发生错误的情况。在这种情况下,您需要使用 IdP 提供的支持和工具,而不是 Atlassian 支持。
  • 当使用 SAML as primary authentication 并且已经在应用程序中启用了 CAPTCHA 时,对于使用 HTTP 基础身份验证的用户(例如,在 REST 资源调用中),如果输错密码的次数过多,可能会被锁定。在这种情况下,需要由管理员在用户列表屏幕中重置用户的 CAPTCHA。
  • No labels