对终端用户进行身份验证对于许多业务目的都很重要。在提供对话支持时,用户可能会尝试在不同的设备和渠道之间进行对话。通过对终端用户进行身份验证,您可以确保所有联系人关联的是正确的终端用户。这样可以提高专员提供的客服质量,并提高专员协助终端用户时可能涉及的敏感信息的安全性。
关于消息传送的终端用户身份验证
- 提高与专员交谈的终端用户身份的可信度。
- 如果您将此小组件嵌入多个域名或链接到外部服务(例如 Shopify),则可以跨渠道识别某个用户。
- 可以在不同设备和浏览器中识别某个用户。
消息传送身份验证的术语
- JWT:Zendesk 使用经过签名的 JSON 网络密钥 (JWT) 对消息传送的终端用户进行身份验证。这些密钥包含用于验证终端用户身份的详细信息。有关 JWT 的更多信息,请访问 jwt.io。
- 签名密钥:签名密钥由 Zendesk 管理员在管理中心创建,然后分享给您团队中的开发者,后者再根据需要使用它对 JWT 进行签名。
- External ID:每个用户的唯一字母数字字符串,例如来自外部系统的用户名或 ID。这是消息传送身份验证的主要标识,即使 JWT 中包含电邮地址时也是如此。
- 用户名:(可选)与外部 ID 或电邮地址关联的终端用户的名称。如果您在 JWT 中包含用户的名称,该名称将显示在专员工作区中。此信息可帮助专员与终端用户进行沟通。
- 电邮:(可选)与终端用户关联的唯一电邮地址。
对消息传送终端用户进行身份验证概述
- 要进行消息传送身份验证,首先要由管理员生成签名密钥,并将其提供给开发者。然后,开发者使用签名密钥来实施后端服务,根据请求为用户创建经过签名的 JWT。
- 后端服务会应要求创建经过签名的 JWT,并将其返回到您的网站或移动应用。此服务创建的 JWT 必须包含唯一的外部 ID,也可以选择包含一个电邮地址,以识别终端用户的身份。
- 每当用户登录时,您的网站或应用都需要调用可用于 Web Widget 和移动 SDK 的等效登录 API,此时 JWT 会传递到 Zendesk,以验证用户声称的身份。
对消息传送终端用户进行身份验证的要求
- Zendesk 专员工作区已激活。
- 您是使用 Web Widget 或移动 SDK 渠道进行消息传送。
- 您可以将电邮身份与终端用户关联。
- 如果您希望通过身份验证的用户具有已验证的电邮身份,则您发布给终端用户的 JWT 必须同时包含
email
和email_verified: true
。
对消息传送终端用户进行身份验证时的专员体验
当终端用户通过身份验证时,专员将在访问者姓名旁边看到一个绿色的勾选图标,而终端用户的外部 ID 会显示在用户个人资料旁边。
此外,终端用户通过身份验证后发布的每个回复都会带有对勾图标。
已通过身份验证的终端用户可跨设备同步参与对话。对于未经身份验证的终端用户,系统会为其使用的每台设备创建单独的用户记录和对话。如果终端用户在对话中进行身份验证,身份验证前后的对话将自动合并,为专员和终端用户提供连贯的对话体验。
如果您使用了电邮身份,终端用户到用户记录的映射会根据您的电邮身份设置而有所不同。在大多数配置中,冒名顶替者显示为单独的用户记录,其名称旁边不会显示绿色勾选标记,因为他们无法成功通过身份验证。如果您允许未经身份验证的用户索要已验证的电邮地址,则电邮身份将与索要该地址的第一个用户关联。如果两个终端用户索要相同的地址,电邮身份将附加到能够验证电邮地址的终端用户的用户记录中。
如果出现冲突,已验证的电邮身份将取代未验证的电邮身份。例如,如果未经身份验证的用户提供的电邮地址已经与已验证身份关联,Zendesk 会为企图冒充已验证用户的未经身份验证的用户创建一个新的未经身份验证的会话和没有电邮身份的用户记录。同样,如果未经身份验证的用户提供了电邮地址,但无法验证它;稍后另一个用户提供了该电邮地址,能够验证它,并使用其 JWT 登录,则该电邮身份将被附加给已通过身份验证的用户,并从未经身份验证的用户记录中移除。
专员可以合并重复的用户记录,并手动将电邮身份添加到用户记录。我们建议您对专员进行培训,了解如何对终端用户进行身份验证,然后再进行相应操作。
消息传送身份验证的终端用户体验
在进行消息传送终端用户身份验证后,终端用户不会注意到有什么太大的区别。当终端用户通过身份验证且 Zendesk 核实其身份后,消息传送智能机器人不会在默认消息传送响应中提醒终端用户提供姓名或电邮地址。
通过身份验证的终端用户的对话会跨设备同步。系统将为未经身份验证的终端用户创建单独的用户记录和对话。此外,如果终端用户在对话期间进行身份验证,则其登录前创建的匿名对话将自动与已通过身份验证的对话合并,以确保对话的连续性。
创建并共享签名密钥
开发者使用签名密钥为终端用户创建 JWT。您必须是管理员才能创建签名密钥。您最多可以创建 10 个密钥。如果您在达到 10 个密钥的上限后尝试创建新密钥,系统会提示您删除未使用的密钥。
- 在管理中心,单击侧栏中的帐户 (),然后选择安全 > 终端用户身份验证。
- 单击消息传送标签,然后单击创建密钥。
如果您是第一次创建密钥,页面底部会显示创建密钥。否则,它会显示在右上角。
- 输入密钥名称,然后单击下一步。
- 出现提示后,单击复制以复制共享密钥,然后单击永久隐藏密钥。
密钥已保存,且系统会自动分配一个 ID。您可以在终端用户身份验证页面的“消息传送”标签的密钥列表中找到密钥 ID。
- 将您复制的密钥 ID 和共享密钥以保密方式发送给开发者。
仅使用外部 ID 对终端用户进行身份验证
-
external_id:(必填)这是可用于识别每个用户的唯一字母数字字符串。一般情况下,这些 ID 是从外部系统获取的。ID 不得超过 255 个字符。
Zendesk 将
external_id
用作消息传送用户进行身份验证的主要标识符。当使用有效的 JWT 对用户进行身份验证时,Zendesk 首先会使用external_id
解析现有用户。如果找不到匹配的external_id
,则系统将使用提供的电邮地址解析用户。请参阅使用电邮地址发布 JWT。 -
范围:(必填)来电人的访问范围。唯一有效的值是
user
。 - 名称:(可选)用户的名称。在 JWT 有效载荷中包含用户姓名可以使 Zendesk 在专员工作区中显示用户姓名,帮助您的专员提供更多自定义支持。
{
"external_id": "12345678",
"scope": "user",
"name": "Jane Soap"
}
将电邮身份整合到终端用户身份验证中
- 通过身份验证的用户通过签名 JWT 进行身份验证。
使用 JWT 提供了一种值得信赖的方法,因为签名 JWT 中的内容无法被终端用户篡改。如果您担心伪装攻击,则应仅限通过身份验证的终端用户使用电邮身份。这是最安全的办法,也是新 Zendesk 帐户的默认办法。
- 未经身份验证的用户是根据 Zendesk 智能机器人的提示提供电邮地址的终端用户。
请记住,允许未经身份验证的用户使用电邮身份会使您容易受到伪装攻击,因为他们可能会提供别人的电邮地址,冒充其他用户。
配置电邮身份
在新的 Zendesk 帐户中,电邮身份已开启并配置为仅使用已验证的电邮地址。这是最安全的选项。较早的帐户配置为使用已验证和未验证的电邮地址。在 JWT 中添加电邮地址之前,您应先了解相关选项,并根据需要更新设置。
- 在管理中心,单击侧栏中的渠道 (),然后选择消息传送和社交媒体 > 消息传送。
- 单击管理设置。
- 单击电邮身份,然后选择以下任一选项:
-
仅使用已验证的电邮:电邮身份只能为通过身份验证且其颁发的 JWT 中包含已验证电邮地址的用户创建。专员仍可以手动在用户记录中添加电邮身份。
选择此选项后,专员会在交谈记录中看到未经身份验证的终端用户提供的电邮地址,但不会在基础信息卡中看到该用户有附加电邮身份。如果专员需要通过电邮跟进未经身份验证的用户,则必须手动在该用户记录中添加电邮身份。如果未经身份验证的用户的电邮地址已存在于其他用户记录中,则专员可以选择合并两条用户记录。
在手动添加电邮身份或合并两条用户记录之前,建议让专员执行身份验证检查,以防止社交工程攻击。
-
使用已验证和未验证的电邮:您可以为通过身份验证并且其 JWT 中有已验证电邮地址的用户创建电邮身份,还可以为未经身份验证但通过智能机器人工作流程提供电邮地址的用户创建电邮身份。选择此选项后,专员可在基础信息卡中找到终端用户的电邮地址,而未验证电邮地址的电邮身份会在专员工作区中明确标记为未验证。如果专员需要向终端用户发送跟进电邮,则专员可以要求终端用户进行身份验证。
如果出现冲突,已验证的电邮身份将取代未验证的电邮身份。
-
仅使用已验证的电邮:电邮身份只能为通过身份验证且其颁发的 JWT 中包含已验证电邮地址的用户创建。专员仍可以手动在用户记录中添加电邮身份。
- (可选,但不推荐)如果您希望任何用户(甚至是未经身份验证的用户)能够认领已验证的电邮地址,请选择未经身份验证的用户可以认领已验证的电邮。
选择此选项后,从消息传送渠道收集的电邮身份验证状态将不再可信,因为用户通过身份验证后可能会出现伪装者,伪装者会在以后的消息传送交互中窃取用户的电邮状态。这意味着伪装攻击更容易得手,而专员也很难确认终端用户所声称的身份是否真实。但是,已验证的电邮身份仍会取代未验证的电邮身份,且该电邮身份将从冒名顶替者的用户记录中移除。
- 单击保存设置。
使用电邮地址发布 JWT
-
external_id:(必填)这是可用于识别每个用户的唯一字母数字字符串。一般情况下,这些 ID 是从外部系统获取的。ID 不得超过 255 个字符。
Zendesk 将
external_id
用作消息传送用户进行身份验证的主要标识符。当使用有效的 JWT 对用户进行身份验证时,Zendesk 首先会使用external_id
解析现有用户。如果找不到匹配的external_id
,则系统将使用提供的电邮地址解析用户。请参阅使用电邮地址发布 JWT。 -
范围:(必填)来电人的访问范围。唯一有效的值是
user
。 - 名称:(可选)用户的名称。在 JWT 有效载荷中包含用户姓名可以使 Zendesk 在专员工作区中显示用户姓名,帮助您的专员提供更多自定义支持。
-
电邮:(必填)登录用户的电邮地址。每个用户的电邮必须是唯一的。
在专员工作区中将电邮地址设置为用户的主要电邮地址。不支持在 JWT 中包含备用电邮地址。
-
email_verified:(可选)相关终端用户是否已证明对电邮地址有的所有权。如果您希望终端用户具有已验证的电邮身份,则您发布的 JWT 必须同时包含
email
和"email_verified": true
。
{
"external_id": "12345678",
"email": "janes@soap.com",
"email_verified": true,
"name": "Jane Soap",
"scope": "user"
}
解决 JWT 中外部 ID 和电邮之间的冲突
Zendesk 使用外部 ID 作为主要标识符,仅在未找到与外部 ID 匹配的情况下使用电邮地址。然而,如果 JWT 中显示的电邮地址已经与不同的外部 ID 关联,Zendesk 将拒绝 JWT,终端用户的登录尝试也会失败。在这种情况下,对话开始时用户处于未经身份验证的状态。
- 更新 JWT 以使用不同的
external_id
值或email
地址。或
- 删除
external_id
冲突的用户,腾出空间供其他终端用户使用。请参阅在 Sunshine Conversations API 中删除用户。