OpenID Connect (OIDC) 是一种建立在 OAuth 2.0 框架上的身份验证协议。它使开发者能够以一种安全且标准化的方式,对用户进行身份验证并获取基本的个人资料信息。OIDC 使用 ID 密钥根据授权服务器执行的身份验证来验证用户的身份,从而简化管理用户身份的过程,并提高用户与应用程序之间交互的安全性。
Zendesk 的 OIDC 单点登录 (SSO) 允许用户使用中央身份提供商 (IdP)(如 Google 或 Okta)登录,而无需为 Zendesk 管理单独的登录凭证,从而简化了身份验证流程。
相关文章:
适用于 Zendesk 的 OIDC SSO 的工作方式
OIDC SSO 允许用户使用标准协议向 IdP 进行身份验证。通过身份验证后,IdP 会颁发一个 ID 密钥,用于验证用户的身份和访问权限。
OIDC 的 Zendesk SSO 流程步骤:
- 假设一个未经身份验证的用户导航到您的 Zendesk Support URL,例如:https://yoursubdomain.zendesk.com/。
- 根据您的登录工作流程,用户可以单击 Zendesk 登录页面上的按钮以使用 SSO 登录,引导他们到您的 IdP,或自动重定向到您的 IdP 进行登录。
- 用户成功通过身份验证后,IdP 生成一个包含用户特定信息的 ID 密钥。
- 密钥会发送回 Zendesk,并根据 Zendesk 和 IdP 之间共享的配置详情进行验证。
- 成功验证后,Zendesk 会利用 IdP 建立的信任向用户授予访问权限。
重要注意事项
- 如果您在使用 OIDC SSO 登录 Zendesk 时遇到问题,问题可能出在您的身份提供商 (IdP) 及其配置上。请务必联系您的系统管理员或 IT 团队,检查 IdP 配置及其要求。
- 无法在消息传送中使用 OIDC 对用户进行身份验证。
- Zendesk 要求所有用户提供一个电邮地址与其个人资料关联,但您的用户可能在没有电邮地址的情况下尝试登录。在这种情况下,为了避免由于缺少电邮地址而导致身份验证失败的循环,Zendesk 将显示一条错误消息。
- 如果您想将 OIDC 用于 Entra,需要配置一些特定的要求。
- 身份验证模式必须是 PKCE。
- 在 移动和桌面应用程序 - 重定向 URI下的 Entra OIDC PKCE 配置表格中添加回拨 URL。
创建 OIDC SSO 配置
管理员可以仅对终端用户或团队成员(包括低权限专员和参与者)或这两个组启用 OIDC 单点登录。您可创建多个 OIDC SSO 配置。
此步骤所需的信息必须来自您正在使用的 IdP,因此请确保在开始之前您的 IdP 已设置完毕。您可能需要从您公司的 IT 团队那里获取这些信息。
在 Zendesk 中创建 OIDC SSO 配置
- 在管理中心,单击侧栏中的帐户 (),然后选择安全 > 单点登录。
- 单击 创建 SSO 配置,然后选择 OpenID Connect。
- 输入唯一的配置名称。
- (可选)对于 IP 范围,如果您想将用户重定向到相关登录选项,请输入 IP 范围列表。
从指定 IP 范围发出请求的用户将转接到远程 OIDC 身份验证登录表格。从该范围以外的 IP 地址发出请求的用户将被路由到标准 Zendesk 登录表格。如果您希望将所有用户重定向到远程身份验证登录表格,请勿指定范围。
- 在 Client ID(客户端 ID)字段中,输入您的 IdP 提供的客户端 ID。
- 输入 客户端密钥 (如果您的 IdP 需要)。
由于必须对客户端密钥保密,因此在保存配置后,您将不会再看到完整的密钥。如需轮换密钥,编辑此 SSO 配置,输入并保存新密钥。
- 在 范围 字段中,列出您要从 IdP 请求的所有范围。您必须至少添加
openid
和email
更新。范围用空格隔开,不得用逗号。例如:openid email phone
OIDC 标准中受支持的范围包括
openid
:profile
:email
:address
,和phone
更新。您还可以列出已在 IdP 中配置的任何自定义范围。您的 IdP 拒绝的未接受范围将导致登录失败,并返回错误
Unknown error during sign-in
更新。Zendesk 不会验证此字段中的任何范围。 - 如果您只想提供颁发者 URL,请选择 打开自动发现 。当启用时,Zendesk 将自动从 OIDC 配置文档中提取配置详情。您只需提供颁发者 URL 和身份验证模式。
- 输入所需的 URL。
检查您的 IdP 是否要求您使用的 URL 为特定格式。如果 URL 格式不正确并被您的 IdP 拒绝,您可能会遇到登录失败,并伴有错误消息:
Unknown error during sign-in
更新。Zendesk 不会验证这些字段中的 URL。- 颁发者 URL(也称为颁发者标识符):执行用户身份验证并传递 ID 密钥的 IdP 的唯一标识符。
- UserInfo URL:由 IdP 提供的端点,使用有效的访问密钥进行访问时,将返回关于已通过身份验证的用户的属性。
- JWK URL:一个由 IdP 提供的端点,允许 Zendesk 检索提供商的公共密钥。这些密钥用于验证 IdP 颁发的 JSON 网络密钥 (JWT) 的签名。
- 授权 URL:当用户访问此 URL 时,系统会提示他们登录并同意所请求的范围。
- 访问 URL(也称为密钥端点 URL):用于交换授权代码、客户端 ID 和客户端密钥以换取访问密钥。
- 选择一种 身份验证模式。建议使用PKCE。
- 使用 PKCE 获取访问密钥最适用于公开客户端,例如移动或 Javascript 网络应用,因为它使用动态生成的密钥来防止未经授权的密钥交换,而无需客户端密钥。
- 如果您希望使用授权代码工作流程获取访问密钥,请选择 授权 代码工作流程。这最适合具有安全后端存储的基于服务器的应用,这些应用依靠客户端密钥获取密钥。
- 如果您 让用户选择其登录方式, 并希望此配置成为他们可选择的选项,请选择 在用户登录时显示按钮 。如果您选择此选项,您还需要为将在 Zendesk 登录页面上显示 的按钮命名 。
如果您的用户不使用 Zendesk 登录页面,仅使用身份提供商登录,请清除此复选框。
- 单击保存。
默认情况下,企业 SSO 配置是非活跃的。您必须 将 OIDC SSO 分配给用户 才能将其激活。
将 OIDC SSO 分配给用户
创建 OIDC SSO 配置后,您必须将其分配给终端用户和/或团队成员才能将其激活。
将 SSO 配置分配给团队成员或终端用户
- 打开团队成员或终端用户的安全设置。
- 选择外部身份验证以显示身份验证选项。
- 选择您要使用的 SSO 配置名称。
单点登录可能无法涵盖所有用例,因此 Zendesk 身份验证默认保持活跃状态。
- 选择允许用户登录的方式。
让他们选择允许用户使用任何活跃的身份验证方法登录。请参阅为用户提供登录 Zendesk 的不同方式。
重定向到 SSO 仅允许用户使用主要 SSO 配置进行身份验证。用户不会看到其他登录选项,即使这些身份验证选项是活跃的。如果您选择重定向到 SSO,随即将显示主要 SSO 字段,供您选择主要 SSO 配置。
- 单击保存。
启用 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 进行用户验证。
关闭密码通知电邮
- 在管理中心,单击侧栏中的人员 (),然后选择配置 > 终端用户。
- 在帐户电邮部分,取消选择专员或管理员创建新用户时也发送欢迎电邮。
- 在允许用户更改密码中,取消选择此选项。
切换身份验证方法
如果您使用第三方 SSO 方法在 Zendesk 中创建用户并对用户进行身份验证,然后切换到 Zendesk 身份验证,这些用户将没有密码可用于登录。要获得访问权限,用户可在 Zendesk 登录页面重置密码。
Zendesk 支持的属性
-
标准 属性是 OIDC 协议指定的预定义的、被广泛接受的属性,可确保不同系统对用户身份的理解一致。Zendesk 支持以下标准属性:
sub
:email
:email_verified
,和locale
更新。 - 自定义 属性是对标准集的扩展以满足 Zendesk 特定要求的附加属性。您可以在 ID 密钥或 userinfo 声明中传递自定义属性。
下表是 Zendesk 支持的标准和自定义属性的完整列表。
属性 | 描述 |
---|---|
name | 可显示形式的用户全名,包括所有名称部分,可能包括标题和后缀,根据终端用户的区域设置和首选项排序。 |
用户的主要电邮地址。 | |
email_verified | 如果用户的电邮地址已验证,则为 True;否则为 false。当此属性值为 true 时,表示 OpenID 提供商已采取肯定措施以确保在执行验证时此电邮地址由用户控制。当您在 Zendesk 使用 SSO 时,您有责任验证用户的电邮地址。 |
组织 | 要添加用户的组织名称或 ID。不支持组织的 external_id 属性。如果该组织不存在 Zendesk 中,则不会被创建。用户仍将被创建,但不会被添加到任何组织。 |
organizations | 以逗号分隔的值,例如 org1 : org2 : org3
|
organization_id |
Zendesk API 中组织的外部 ID。如果同时提供了 organization 和 organization_id,则前者将被忽略。 例如: 如果您想同时传递多个组织 ID,请使用 organization_ids 属性。组织 ID 必须以字符串的形式传递,并用逗号分隔。 |
organization_ids |
Zendesk API 中组织的外部 ID。同时传递多个组织 ID 时使用此属性。如果同时提供了 organization 和 organization_ids,则忽略前者。 例如:以逗号分隔的值,例如 |
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 中设置的所有自定义字段值。 |
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。