用于单点登录的 OAuth 身份验证
OAuth 是一种标准授权协议,它使用 Web 令牌而不是密码来访问受保护资源。借助 OAuth,资源所有者可以为每个请求访问同一资源的客户端配置单独的权限,并可在任何时间修改/撤销访问权限。
术语
要访问受保护资源,客户端应先从资源所有者处获取授权许可,并将其传递给授权服务器。授权服务器会验证该授权许可并生成访问令牌。客户端可以使用此令牌访问由资源服务器托管的受保护资源。
ServiceDesk Plus 充当请求访问的客户端,并通过使用用户在授权服务器中的凭据从用户处获取授权许可(例如,用于 Azure AD 的 Microsoft Azure)。
该授权许可通过授权服务器进行处理以生成访问令牌。借助此访问令牌,ServiceDesk Plus 可以访问 Azure AD(资源服务器)以检索用户数据,并对用户进行身份验证以登录应用程序。
部分 | 字段 | 说明 |
OAuth 提供程序详细信息
| 提供程序名称 | 在下拉列表中单击 添加新项 以注册授权服务器。 如果已在 管理 > 用户和权限 > OAuth 提供程序 下注册,请从下拉列表中选择所需的授权。
|
| 客户端 ID | 如果选择了 添加新项,请指定在授权服务器中注册应用程序时生成的客户端 ID、授权 URL 和令牌 URL。 否则,这些字段将自动填充。 | |
| 授权 URL | ||
| 令牌 URL | ||
OAuth 功能详细信息
| 作用域 | 指定从资源 URL 获取用户数据所需的作用域。常用的作用域包括 openid、profile 和 email。
|
| 客户端密钥 | 指定在授权服务器中注册应用程序时生成的客户端密钥。 | |
| 用户属性 | 指定从资源 URL 接收到的 JSON 响应中的所需键。身份验证期间将使用此键来识别用户。 | |
| 映射属性 | 选择用户属性要映射到的 ServiceDesk Plus 用户字段。对于通过 AD 导入的用户,请使用 User Principal Name 映射字段。 | |
| 资源 URL | 指定客户端在获取访问令牌后调用以获取用户数据的 API 端点。您可以从授权服务器的 REST API 文档中获取相关信息。 | |
| 重定向 URL | 此字段会自动填充为用户登录后将被重定向到的 URL。此 URL 不可编辑。 | |
附加字段
| 默认字段 | 配置字段映射,以便为通过 OAuth SSO 登录应用程序的动态用户创建用户资料。 • 使用复选框,在 默认字段 和 用户定义字段 下启用所需的 ServiceDesk Plus 用户字段。 • 对于每个已启用的字段,指定相应的响应 JSON 属性。 注意: • 此配置不会用于更新现有用户资料。 • 日期/时间 和 多行 字段在动态添加用户时不受支持。不过,它们可以通过现有的 AD/LDAP 同步进行同步。 |
| 用户定义字段 |
.png)
来编辑或删除它。 启用 OAuth 单点登录后的登录页面将如下所示:

用户可以使用本地身份验证(默认启用)登录,或者通过单击默认登录表单上方所需授权服务器的链接使用 OAuth 登录。
错误代码 | 说明 | 解决方案 |
6 | 授权代码为空 | 请确保 ClientID、scope 和授权 URL 正确。 |
| 46 | OAuth 页面中配置的 URL 无法访问。 | 这可能由以下原因导致:
请验证所配置的 URL 是否正确,并且服务器可以访问。确保 DNS 解析正常工作,且防火墙/代理允许访问这些主机。 |
| 50 | SAML 响应中缺少 InResponseTo 属性 | 了解更多 |
60 | 未找到用户(基于电子邮件的 OAuth 登录期间) |
|
61 | 该用户的登录已被禁用。 | 为该用户启用登录。 |
62 | 有多个用户配置了该登录电子邮件 ID。 | 确保该登录电子邮件地址只配置给一个用户。如果该登录电子邮件 ID 被配置为其他用户的主/辅助电子邮件地址,则会引发此错误。 |
52(在 ServiceDesk Plus 中) | 动态用户添加已禁用。 |
|
52(在 Asset Explorer 中) | 应用程序中不存在此用户,或者该用户不是技术人员。 | 使用接收到的属性手动创建新技术人员,或将请求者更改为技术人员。 |
3 | 无效的客户端密钥 | 确保从提供程序处正确复制的是密钥值(而不是 Secret ID) |