What's my plan?
Suite Team, Growth, Professional, Enterprise, or Enterprise Plus
Support Team, Professional, or Enterprise
位置:管理中心 > 帐户 > 安全 > 单点登录

OpenID Connect (OIDC) 是一种建立在 OAuth 2.0 框架上的身份验证协议。它使开发者能够以一种安全且标准化的方式,对用户进行身份验证并获取基本的个人资料信息。OIDC 使用 ID 密钥根据授权服务器执行的身份验证来验证用户的身份,从而简化管理用户身份的过程,并提高用户与应用程序之间交互的安全性。

Zendesk 的 OIDC 单点登录 (SSO) 允许用户使用中央身份提供商 (IdP)(如 Google 或 Okta)登录,而无需为 Zendesk 管理单独的登录凭证,从而简化了身份验证流程。

本文章包含以下主题:
  • 适用于 Zendesk 的 OIDC SSO 如何工作
  • 重要注意事项
  • 创建 OIDC SSO 配置
  • 分配 OIDC SSO 给用户
  • 启用 OIDC SSO 后在 Zendesk 中管理用户
  • 切换身份验证方法
  • Zendesk 支持的属性

相关文章:

  • 管理单点登录 (SSO) 配置
  • Zendesk 中的单点登录 (SSO) 选项
  • 为用户提供登录 Zendesk 的不同方式
  • SSO 服务不可用时访问 Zendesk 帐户

适用于 Zendesk 的 OIDC SSO 如何工作

OIDC SSO 允许用户使用标准协议向 IdP 进行身份验证。通过身份验证后,IdP 会颁发一个 ID 密钥,用于验证用户的身份和访问权限。

OIDC 的 Zendesk SSO 流程步骤:

  1. 假设一个未经身份验证的用户导航到您的 Zendesk Support URL,例如:https://yoursubdomain.zendesk.com/。
  2. 根据您的登录工作流程,用户可以单击 Zendesk 登录页面上的按钮以 SSO 登录,引导他们到您的 IdP,或自动重定向到您的 IdP 进行登录。
  3. 用户成功通过身份验证后,IdP 会生成一个包含用户特定信息的 ID 密钥。
  4. Zendesk 通过回调 URL 接收密钥:https://yoursubdomain.zendesk.com/access/oidc/callback。密钥将根据 Zendesk 和 IdP 之间共享的配置详情进行验证。
  5. 成功验证后,Zendesk 会利用 IdP 建立的信任授予用户访问权限。

重要注意事项

  • 无法在消息传送中使用 OIDC 对用户进行身份验证。
  • Zendesk 要求所有用户提供一个与其个人资料关联的电邮地址,但您的用户可能在没有电邮地址的情况下尝试登录。在这种情况下,为了避免由于缺少电邮地址而导致身份验证失败的循环,Zendesk 将显示一条错误消息。
  • 如果您想对 Entra 使用 OIDC,需要配置一些特定的要求。
    • 身份验证模式必须是 PKCE。
    • 在 Entra OIDC PKCE 配置表格的 移动和桌面应用程序 - 重定向 URI下,添加回拨 URL。

创建 OIDC SSO 配置

管理员可以仅对终端用户或团队成员(包括低权限专员和参与者)或这两个组启用 OIDC 单点登录。您可创建多个 OIDC SSO 配置。

此步骤所需的信息必须来自您正在使用的 IdP,因此请确保在开始之前您的 IdP 已设置完毕。您可能需要从您公司的 IT 团队那里获取这些信息。

在 Zendesk 中创建 OIDC SSO 配置

  1. 在管理中心,单击侧栏中的帐户 (),然后选择安全 > 单点登录。
  2. 单击 创建 SSO 配置,然后选择 OpenID Connect。
  3. 输入唯一的配置名称。
  4. (可选)对于 IP 范围,如果您想将用户重定向到相关登录选项,请输入 IP 范围列表。

    从指定 IP 范围发出请求的用户将转接到远程 OIDC 身份验证登录表格。从该范围以外的 IP 地址发出请求的用户将被路由到标准 Zendesk 登录表格。如果您希望将所有用户重定向到远程身份验证登录表格,请勿指定范围。

  5. 在 Client ID(客户端 ID) 字段中,输入您的 IdP 提供的客户端 ID。
  6. 输入 客户端密钥 (如果您的 IdP 需要)。

    由于必须对客户端密钥保密,因此在保存配置后您将不会再看到完整的密钥。如果您需要轮换密钥,编辑此 SSO 配置以输入并保存新的密钥。

  7. 在 作用域 字段中,列出您要从 IdP 请求的所有作用域。您必须至少添加 openid 和 email.范围用空格隔开,不要用逗号。例如:openid email phone

    OIDC 标准中支持的范围包括 openid, profile, email, address,和 phone.您还可以列出已在 IdP 中配置的任何自定义范围。

    您的 IdP 拒绝的未接受范围将导致登录失败,并返回错误 Unknown error during sign-in.Zendesk 不会验证此字段中的任何范围。

  8. 如果您只想提供颁发者 URL,请选择 打开自动发现 。当启用时,Zendesk 将自动从 OIDC 配置文档中提取配置详情。您只需提供颁发者 URL 和身份验证模式。
  9. 输入所需的 URL。

    检查您的 IdP 是否要求您使用的 URL 为特定格式。如果 URL 格式不正确并被您的 IdP 拒绝,您可能会遇到登录失败,并伴有以下错误消息: Unknown error during sign-in.Zendesk 不会验证这些字段中的 URL。

    • 颁发者 URL(也称为颁发者标识符):执行用户身份验证并提供 ID 密钥的 IdP 的唯一标识符。
    • 用户信息 URL:由 IdP 提供的端点,使用有效的访问密钥进行访问时,将返回关于已通过身份验证用户的属性。
    • JWK URL:一个由 IdP 提供的端点,允许 Zendesk 检索提供商的公共密钥。这些密钥用于验证 IdP 颁发的 JSON 网络密钥 (JWT) 签名。
    • 授权 URL:当用户访问此 URL 时,系统会提示他们登录并同意所请求的范围。
    • 访问 URL(也称为密钥端点 URL):用于用授权代码、客户端 ID 和客户端密钥交换访问密钥。
  10. 选择一种 身份验证模式。建议使用PKCE。
    • 使用 PKCE 获取访问密钥最适合公开客户端,例如移动或 Javascript 网络应用,因为它使用动态生成的密钥来防止未经授权的密钥交换,而无需客户端密钥。
    • 如果您希望使用 授权代码工作流程获取访问密钥,请选择授权 代码工作流程。这最适合具有安全后端存储的基于服务器的应用,这些应用依靠客户端密钥获取密钥。
  11. 如果您 让用户选择其登录方式 ,并希望此配置成为他们可选择的选项,请选择 在用户登录时显示按钮。如果您选择此选项,您还需要为将在 Zendesk 登录页面上显示的 按钮命名 。

    如果您的用户因为不使用 Zendesk 登录页面而仅使用身份提供者登录,请清除此复选框。

  12. 单击保存。

    默认情况下,企业 SSO 配置是非活跃的。您必须 将 OIDC SSO 分配给用户 才能将其激活。

分配 OIDC SSO 给用户

创建 OIDC SSO 配置后,必须将其分配给终端用户和/或团队成员才能将其激活。

将 SSO 配置分配给团队成员或终端用户

  1. 打开团队成员或终端用户的安全设置。
    • 在管理中心,单击侧栏中的帐户 (),然后选择安全 > 团队成员身份验证。
    • 在管理中心,单击侧栏中的帐户 (),然后选择安全 > 终端用户身份验证。
  2. 选择外部身份验证以显示身份验证选项。
  3. 选择您要使用的 SSO 配置名称。

    单点登录可能无法涵盖所有用例,因此 Zendesk 身份验证默认保持活跃状态。

  4. 选择允许用户登录的方式。

    让他们选择允许用户使用任何活跃的身份验证方法登录。请参阅为用户提供登录 Zendesk 的不同方式。

    重定向到 SSO 仅允许用户使用主要 SSO 配置进行身份验证。用户不会看到其他登录选项,即使这些身份验证选项是活跃的。如果您选择重定向到 SSO,随即将显示主要 SSO 字段,供您选择主要 SSO 配置。

  5. 单击保存。

启用 OIDC SSO 后在 Zendesk 中管理用户

在 Zendesk 中启用 OIDC 单点登录后,对 Zendesk 外部用户所做的更改不会自动同步到您的 Zendesk 帐户。用户在进行身份验证时,其信息会在 Zendesk 中更新。例如,如果将用户添加到您的内部系统,则该用户在登录 Zendesk 时将添加到您的 Zendesk 帐户。如果将用户从内部系统中删除,该用户将无法再登录 Zendesk。但其帐户仍将保存在 Zendesk 中。

默认情况下,启用单点登录时,Zendesk 中存储的唯一用户数据是用户的名称和电邮地址。Zendesk 不存储密码。因此,您应关闭来自 Zendesk 的所有关于密码的自动电邮通知。

关闭来自 Zendesk 的密码通知电邮

对于任何通过 SAML、JWT 或 OpenID Connect (OIDC) 单点登录访问您 Zendesk 帐户的新用户,都会创建 Zendesk 用户个人资料。用户是使用非 Zendesk 密码通过 IdP 进行身份验证,不需要直接登录 Zendesk,因此创建个人资料时没有密码。

新用户通过 SSO 登录 Zendesk 并通过 IdP 进行身份验证,因此他们不会收到验证帐户的电邮通知。但是,仍建议关闭这些自动电邮通知,以防其在 IdP 未成功验证用户时发送。使用 SSO 时,务必通过 IdP 进行用户验证。

关闭密码通知电邮

  1. 在管理中心,单击侧栏中的人员 (),然后选择配置 > 终端用户。
  2. 在帐户电邮部分,取消选择专员或管理员创建新用户时也发送欢迎电邮。
  3. 在允许用户更改密码中,取消选择此选项。

切换身份验证方法

如果您使用第三方 SSO 方法在 Zendesk 中创建用户并对用户进行身份验证,然后切换到 Zendesk 身份验证,这些用户将没有密码可用于登录。要获得访问权限,用户可在 Zendesk 登录页面重置密码。

Zendesk 支持的属性

Zendesk 支持标准和自定义 OIDC 属性。
  • 标准 属性是 OIDC 协议规定的预定义的、被广泛接受的属性,可确保不同系统对用户身份的理解一致。Zendesk 支持以下标准属性:
    • sub
    • email
    • email_verified
    • locale
    • phone number (映射到 Zendesk 用户属性 phone)
    • photo (映射到 Zendesk 用户属性 remote_photo_url)
    • preferred_username (映射到 Zendesk 用户属性 alias)
    • zoneinfo (映射到 Zendesk 用户属性 time_zone)
  • 自定义 属性是对标准集的扩展以满足 Zendesk 特定要求的额外属性。您可以在 ID 密钥或 userinfo 声明中传递自定义属性。

下表是 Zendesk 支持的标准和自定义属性的完整列表。属性名称区分大小写,因此必须精确匹配下表中的大小写。

属性名称 描述
name 可显示形式的用户全名,包括所有名称部分,可能包括标题和后缀,根据终端用户的区域设置和偏好排序。如果没有名称,则默认为用户的主要电邮地址。
email 用户的主要电邮地址。
email_verified 如果用户的电邮地址已验证,则为 True;否则为 False。如果此属性值为 true,则表示OpenID提供商已采取肯定措施以确保在执行验证时此电邮地址由用户控制。在 Zendesk 使用 SSO 时,您有责任验证用户的电邮地址。
organization 要添加用户的组织的名称或 ID。不支持组织的 external_id 属性。如果该组织不存在 Zendesk 中,则不会被创建。用户仍将被创建,但不会被添加到任何组织。

如已启用允许用户属于多个组织选项,其他组织将附加在原始组织后面,并视为辅助组织。这不会删除现有成员资格。

如果您想同时传递多个组织,请使用 organizations 属性。使用组织属性将覆盖现有组织列表。组织名称必须以字符串的形式传递,并用逗号分隔。

organization_id

Zendesk API 中组织的外部 ID。如果同时提供了 organization 和 organization_id,则前者将被忽略。如果该组织不存在 Zendesk 中,则不会被创建。用户仍将被创建,但不会被添加到任何组织。

如果 允许用户属于多个组织 已启用,其他组织将附加在原始组织后面,并视为辅助组织。这不会删除现有成员资格。

如果您想同时传递多个组织 ID,请使用 organization_ids 属性。使用 organization_ids 属性将覆盖现有组织列表。组织 ID 必须以字符串的形式传递,并用逗号分隔。

phone 电话号码,指定为字符串。
tags 要在用户上设置的标签。这些标签将替换用户个人资料中可能存在的任何其他标签。
remote_photo_url 要在用户个人资料上设置的照片 URL。
locale(适用于专员)

locale_id(适用于终端用户)

Zendesk 中的区域设置,指定为数字。要获取有效数字的列表,请参阅 API 文档中的区域设置。
zendesk_role 用户角色,可设置为终端用户、专员或管理员。如果您不传递 zendesk_role,Zendesk 会将该用户创建为终端用户,除非他们已经具有另一个用户角色。
custom_role_id 仅当上述角色属性的值为专员时适用。您可以使用 自定义用户角色 API获取自定义用户角色的 ID。
external_id 用户不是通过电邮地址识别或其电邮地址可能会更改时,系统提供的用户 ID。指定为字符串。
user_field_<key> Zendesk Support 中自定义用户字段的值。请参阅为用户添加自定义字段。<key> 是分配给 Zendesk Support 中自定义用户字段的字段密钥。例如:user_field_employee_number,其中 employee_number 是 Zendesk 中的字段密钥。在属性值中发送空值或空字符串将移除在 Zendesk Support 中设置的所有自定义字段值。

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

由 Zendesk 提供技术支持