安全断言标记语言(SAML) 为在线服务中现有的传统登录方法提供了一种更简便的替代方案。用户将不再需要为其访问的每项服务提供特定密码。ServiceDesk Plus application支持 SAML 2.0,可通过 管理 > 用户和权限 > SAML 单点登录进行配置。
所需角色:SDAdmin
SAML 在两个实体之间交换身份验证和授权数据,即 身份提供商(IdP)和 服务提供商(SP)。此处 ServiceDesk Plus 作为 SP,在集成后,用户可直接从 IdP 登录到 application,而无需提供任何登录凭据。
例如,您可以将 Active Directory Federation Service (ADFS) 设置为 IdP,以允许用户使用其 Active Directory 凭据登录 ServiceDesk Plus。
以下屏幕截图显示了用户如何登录到已配置 SAML 的 application。

转到 管理 > 用户和权限 > 单点登录 > SAML SSO。
在 配置 选项卡下,启用 SAML 单点登录。
SAML 配置页面包含三个部分:服务提供商详细信息、身份提供商详细信息以及附加声明。
.png)
您可以使用服务提供商详细信息,将 ServiceDesk Plus 配置为与您的 IdP 配合使用的 SP。
服务提供商详细信息
字段名称 | 说明 |
实体 ID |
使用这些详细信息在您的 IdP 中将 ServiceDesk Plus 配置为服务提供商。 |
断言使用者 URL | |
单点注销服务 URL | |
单击该文件即可下载。请在 IdP 门户中上传此文件。 | |
SP 元数据文件 | 在某些 IdP 中,仅上传元数据文件就足以将 ServiceDesk Plus 配置为 SP。 |
在您的 IdP 中将 ServiceDesk Plus 配置为 SP 后,请返回 ServiceDesk Plus 中的 SAML 配置页面,并按如下所述配置身份提供商详细信息和其他声明。
身份提供商详细信息
字段名称 | 说明 |
登录 URL* | 输入 IdP 的登录 URL。 |
注销 URL | 输入 IdP 的注销 URL。如果不需要单点注销(SLO),则可跳过此字段。 |
Name ID 格式* | 根据您的登录偏好选择 Name ID 格式。
|
算法* | 从下拉列表中选择算法。该算法应与 IdP 中配置的算法相同。 |
证书 | 单击“选择文件”以上传 IdP 证书。 |
* 必填字段
附加声明
附加属性可让您为通过 SAML 登录的动态用户创建详细的用户配置文件。如果启用了动态添加用户,您可以从 IdP 导入附加属性。
导入附加属性,
通过启用字段旁边的复选框,选择这些字段(默认字段和用户定义字段)。
在所选字段中指定 IdP 中配置的属性名称。 这些详细信息不会用于更新现有用户配置文件。
最后,单击保存。

历史记录选项卡列出了在配置选项卡下执行的所有活动。您可以使用预定义筛选器查看与特定属性相关的活动。

启用 SAML 单点登录后的登录页面将如下所示。

用户可以使用本地身份验证(默认启用)登录,也可以单击“登录”按钮下方的链接使用 SAML 登录。
如果禁用了本地身份验证,系统将显示 IdP 登录页面。
当 IdP 生成的登录名与 ServiceDesk Plus 中某位用户的登录名不匹配时,
如果启用了动态用户添加,则系统会使用 IdP 生成的登录名重新添加该用户,并将密码设置为 Active Directory/LDAP 设置中配置的密码。
如果禁用了动态用户添加,则该用户将无法登录 ServiceDesk Plus。
ServiceDesk Plus 支持 SAML 单点注销服务。借助此功能,您可以选择仅从 ServiceDesk Plus 注销,或从与 IdP 集成的所有服务中注销。
单击
。
如果您已在 IdP 域中配置 SAML 注销,您将看到列出的两个选项。
单击 注销可仅注销 ServiceDesk Plus application。
如果您单击 退出 SAML, 您将退出与该 IdP 集成的所有服务。

错误代码 | 原因 | 解决方案 |
4 | IdP 证书文件上传不正确。 | 重新配置 IdP 详细信息。 |
| 8 | 未收到来自 IdP 的 SAML 响应。 | ServiceDesk Plus 仅支持 POST 绑定方法。请确保 IdP 使用 POST 绑定方法。 |
10 | 验证 IdP 的注销响应时出错。 | 请参阅错误 42、44、50、4 和 36。 联系 servicedeskplus-support@manageengine.com。 |
21、22、23 | IdP 响应状态为失败。 | 按照此处提供的说明重新配置 IdP 详细信息。 |
35 | IdP 响应未签名。ServiceDesk Plus 仅接受已签名的响应。 | 为 ServiceDesk Plus 配置 IdP 设置,以对断言和响应进行签名。 |
36 | 无法验证 SAML 响应中的 IdP 签名。 | 在 ServiceDesk Plus 的 SAML 配置页面中上传正确的 IdP 证书文件。 |
| 38 | SAML 响应不包含有效的 NameID格式,或者该响应已加密。 不支持加密的 SAML 响应。 | 请确保 SAMLResponse 包含以下受支持的 NameID 格式之一:
|
40 | SAML 响应中的实体 ID 与 ServiceDesk Plus 中的实体 ID 不一致。 | 在您的 IdP 门户中重新配置 SP 详细信息。 |
SAML 响应中的目标 URL 与实际调用该响应的 URL 不匹配。 | 请在您的 IdP 门户中重新配置 SP 详细信息。
如果您已配置代理服务器(例如 Azure App Proxy)来将 application 对外发布,请在 server.xml 文件中的 connector 标签中添加 proxyName="<external_url>" 和 proxyPort="<external_port>" 属性。
proxyName 不应包含协议(http:// 或 https://)或末尾的斜杠(/)。 例如:如果外部 URL 为 https://zylker.com,则 proxyName 应为 zylker.com。 | |
44 | SAML 响应中的 Issuer 字段为空。 | |
46, 47, 51 | 由于系统时间戳与标准时间不匹配,SAML 响应将无法通过验证。 | 请在 application 服务器上设置正确的时间和时区。 |
48 | 用户已配置 Assertion Encryption,但 ServiceDesk Plus 不支持此功能。 | 请在 IdP 中将 Assertion Encryption 更改为 Assertion Sign,这样会对断言进行签名,但不会加密。 |
49 | SAML 断言中缺少 Issuer 名称。 | 请重新配置 SP 和 IdP。
如果问题仍然存在,请将日志文件通过电子邮件发送至 servicedeskplus-support@manageengine.com。 |
50 | 来自 IdP 的 SAML 断言不适用于目标用户/请求者。 | 使用 SAML 身份验证重新登录。 |
52 (在 ServiceDesk Plus 中) | SAML 响应未映射到正确的用户,且在自助服务门户设置中已禁用动态添加用户。
| 如果该用户在 ServiceDesk Plus 中不存在,请使用 IdP 生成的登录名手动创建新用户。 如果该用户已存在于application中,请在 IdP 门户中更改 Name ID 属性,使其与 ServiceDesk Plus 中的登录名匹配。
|
52(在 Asset Explorer 中) | application中不存在该用户,或者该用户不是技术人员。 | 使用 IdP 生成的登录名手动创建新的技术人员,或将请求者更改为技术人员。 |
| 53 | 创建用户账户时发生异常。 | 携带日志文件联系 servicedeskplus-support@manageengine.com。 |
| 54 | 超过最大长度 | 删除未使用的附加属性,将字符数减少到 50000 以下。 |
| 60 | 未找到用户(在基于电子邮件的 SAML 登录期间)。 | 如果该用户在 ServiceDesk Plus 中不存在且已禁用动态添加用户,请手动创建新用户并配置电子邮件地址。如果启用了动态添加用户,则会自动添加新用户。 如果该用户已存在于application中,请将其电子邮件地址配置为与 ServiceDesk Plus 中的登录电子邮件 ID 匹配。 |
| 61 | 已为该用户禁用登录。 | 为该用户启用登录。 |
| 62 | 配置了多个用户使用该登录邮箱 ID。 | 请确保该登录邮箱地址只配置给一个用户。如果该登录邮箱 ID 被配置为其他用户的主/辅助邮箱地址,则会抛出此错误。 |
常见问题:
1. 尽管我拥有有效的登录凭据,为什么在使用 SAML 登录时,我仍会在 ServiceDesk Plus 中被添加为新用户?
当您使用 SAML 登录时,IdP 会在 SAML 响应中提供一个登录名。该登录名是根据 IdP 中配置的 NameID 属性生成的。application不会将其与您的凭据进行匹配,因为您在 ServiceDesk Plus 中的登录名与 SAML 响应中的登录名并不相同。现在有两种可能:
如果启用了动态添加用户,您将以 IdP 生成的登录名被添加为新用户,密码则为 Active Directory/LDAP 设置中配置的密码。
如果禁用了动态添加用户,则会显示错误消息,并且您将无法登录到 ServiceDesk Plus。
要解决此问题,请通过选择正确的 NameID 属性重新配置您的 IdP 设置。
2. 为什么在将我的 IdP 配置为返回正确的登录名后,我仍然会被添加为单独的用户?
如果该用户属于某个域,则 IdP 应在返回登录名的同时返回该用户的域名。
例如,如果 Peter 是 Zylker 域中的技术人员,登录名为 peter,那么 IdP 应返回 Zylker\peter 作为登录名。
如果上述情况失败,则会创建一个新用户。
请选择合适的 NameID 属性并重新配置 IdP 以解决此问题。
3. 启用 SAML 后,如何修复如下图所示登录页面中的对齐问题?

转到 管理 >> 自助服务门户设置。
单击“登录页面自定义”下方的“立即自定义”。
在 HTML 编辑器中,添加截图中所示的类。这些类也可在 <server_home>\custom\login\default.html 中找到
.sign-line{
text-align: center;
display: block;
border-bottom: 1px solid #ccc;
margin:10px 0;
}
.or-ctr{
background: #fff;
position: relative;
top: 8px;
padding: 0 4px;
font-size: 12px;
color: #727272;
}
.sign-saml{
color: #009adb;
text-decoration: none;
}

单击“保存”,并检查链接现在是否已对齐显示。