최종 사용자 인증은 많은 비즈니스 목적에서 중요합니다. 대화형 지원 제공 시 사용자는 여러 기기와 채널 간의 대화를 계속하려고 할 수 있습니다. 최종 사용자를 인증하면 모든 연락 포인트가 올바른 최종 사용자에게 연결되도록 보장할 수 있습니다. 이를 통해 상담사가 제공하는 지원의 품질을 향상하고 상담사가 최종 사용자를 지원하는 동안 나타날 수 있는 민감한 정보의 보안을 강화할 수 있습니다.
메시징을 위한 최종 사용자 인증에 대한 정보
- 상담사가 대화 중인 최종 사용자가 자신이 주장하는 최종 사용자라는 확신이 높아집니다.
- 여러 도메인에 위젯을 임베드하거나 Shopify와 같은 외부 서비스에 연결하는 경우 채널 전체에서 단일 사용자를 식별할 수 있습니다.
- 다양한 기기와 브라우저에서 단일 사용자를 식별할 수 있습니다.
메시징 인증 용어
- JWT: Zendesk는 서명된 JSON 웹 토큰(JWT)을 사용하여 메시징을 위한 최종 사용자를 인증합니다. 이러한 토큰에는 최종 사용자의 신원을 확인하는 세부 정보가 포함되어 있습니다. JWT에 대한 자세한 내용은 jwt.io를 참조하세요.
- 서명 키: 서명 키는 관리 센터의 Zendesk 관리자가 만들고 팀의 개발자와 공유하면 개발자가 이를 사용하여 필요에 따라 JWT에 서명합니다.
- 외부 ID: 외부 시스템의 사용자 이름이나 ID와 같은 영숫자 문자열로 각 사용자에게 고유합니다. JWT에 이메일 주소가 포함되어 있을 때에도 메시징 인증을 위한 기본 ID입니다.
- 사용자 이름: (선택 사항) 외부 ID나 이메일 주소와 연결된 최종 사용자의 이름입니다. JWT에 사용자의 이름을 포함하면 상담사 워크스페이스에 나타납니다. 이 정보는 상담사가 최종 사용자와 소통하는 데 도움이 될 수 있습니다.
- 이메일: (선택 사항) 최종 사용자와 연결된 고유한 이메일 주소입니다.
최종 사용자를 위한 메시징 인증 구현의 개요
- 메시징 인증 프로세스는 관리자가 서명 키를 생성하여 개발자에게 제공하는 것부터 시작합니다. 그런 후 개발자는 서명 키를 사용하여 요청에 따라 사용자를 위한 서명된 JWT를 만들 수 있는 백엔드 서비스를 구현합니다.
- 요청 시 백엔드 서비스는 서명된 JWT를 만들어 웹사이트나 모바일 앱에 반환합니다. 이 서비스로 만든 JWT에는 고유한 외부 ID가 포함되어야 하며 선택 사항으로 최종 사용자를 식별하는 이메일 주소도 포함되어야 합니다.
- 사용자가 로그인할 때 웹사이트나 앱은 웹 위젯이나 모바일 SDK에 사용할 수 있는 동등한 로그인 API를 호출해야 하며, 이때 JWT가 Zendesk에 전달되어 사용자가 주장하는 신원을 확인합니다.
메시징을 위한 최종 사용자 인증 요구 사항
- Zendesk 상담사 워크스페이스가 활성화되어 있습니다.
- 메시징을 위해 웹 위젯이나 모바일 SDK를 사용 중입니다.
- 이메일 ID를 최종 사용자와 연결합니다.
- 인증된 사용자가 확인된 이메일 ID를 가지도록 하려면 최종 사용자에게 발급하는 JWT가
email
및email_verified: true
클레임을 모두 포함해야 합니다.
메시징 최종 사용자 인증 시 상담사 경험
상담사에게는 방문자 이름 옆에 녹색 체크 표시 아이콘이 표시되고, 최종 사용자가 인증되면 최종 사용자의 외부 ID가 사용자 프로필 옆에 표시됩니다.
최종 사용자가 인증된 후 게시한 각 응답에도 체크 표시 아이콘이 있습니다.
인증된 최종 사용자는 여러 기기에 걸친 대화에 동기식으로 참여할 수 있습니다. 인증되지 않은 최종 사용자의 경우에는 이들이 사용하는 각 기기에 대해 별도의 사용자 레코드와 대화가 만들어집니다. 최종 사용자가 대화 중에 인증하면 인증 전과 후의 대화가 자동으로 병합되어 상담사와 최종 사용자에게 연속성을 제공합니다.
이메일 ID를 사용하는 경우 최종 사용자와 사용자 레코드의 맵핑은 이메일 ID 설정에 따라 다릅니다. 대부분의 구성에서 사칭자는 별도의 사용자 레코드로 나타나며 성공적으로 인증될 수 없기 때문에 이름 옆에 녹색 체크 표시가 없습니다. 인증되지 않은 사용자가 확인된 이메일 주소를 클레임하도록 허용하면 이메일 ID는 해당 주소를 클레임한 첫 번째 사용자와 연결됩니다. 두 명의 최종 사용자가 동일한 주소를 클레임하면 이메일 주소를 인증하고 확인할 수 있는 최종 사용자에 대한 사용자 레코드에 이메일 ID가 연결됩니다.
충돌 시 확인된 이메일 ID가 확인되지 않은 이메일 ID보다 우선합니다. 예를 들어 인증되지 않은 사용자가 인증된 ID와 이미 연결되어 있는 이메일 주소를 제공하는 경우에는 Zendesk에서 인증된 사용자를 사칭하려고 시도하는 인증되지 않은 사용자에 대한 이메일 ID 없이 새 인증되지 않은 세션 및 사용자 레코드를 만듭니다. 마찬가지로 인증되지 않은 사용자가 이메일 주소를 제공하지만 이를 인증할 수 없고, 나중에 다른 사용자가 이메일 주소를 제공하고 이를 인증할 수 있으며 JWT로 로그인할 수 있는 경우에는 이메일 ID가 인증된 사용자에게 연결되며 인증되지 않은 사용자의 레코드에서 제거됩니다.
상담사는 중복 사용자 레코드를 병합하고 수동으로 이메일 ID를 사용자 레코드에 추가할 수 있습니다. 이러한 조치를 취하기 전에 최종 사용자에 대한 ID 확인 검사를 수행하도록 상담사를 교육시키는 것이 좋습니다.
메시징을 위한 인증의 최종 사용자 경험
메시징을 위한 최종 사용자 인증을 구현한 후에는 최종 사용자는 큰 차이를 느끼지 못할 것입니다. Zendesk를 통해 최종 사용자가 인증되고 신원이 확인된 후에는 최종 사용자에게 기본 메시징 응답의 일부로 메시징 봇에서 이름 또는 이메일 주소를 입력하라는 메시지가 표시되지 않습니다.
최종 사용자가 인증되면 인증된 최종 사용자의 대화가 모든 기기에서 동기화됩니다. 인증되지 않은 최종 사용자에 대해 별도의 사용자 레코드와 대화가 만들어집니다. 대화 중에 최종 사용자가 인증되는 경우에는 로그인하기 전에 작성된 익명 대화가 자동으로 인증된 대화와 병합되어 대화가 계속 이어집니다.
서명 키 만들기 및 공유하기
개발자는 서명 키를 사용하여 최종 사용자를 위한 JWT를 만듭니다. 관리자만 서명 키를 만들 수 있습니다. 최대 10개의 키를 만들 수 있습니다. 10개 한도에 도달한 후 새 키를 만들려고 시도하면 미사용 키를 삭제하라는 메시지가 표시됩니다.
- 관리 센터의 사이드바에서 계정을 클릭한 다음 보안 > 최종 사용자 인증을 선택합니다.
-
메시징 탭을 클릭한 다음 키 만들기를 클릭합니다.
첫 번째 키를 만드는 경우에는 페이지 아래쪽에 키 만들기가 나타납니다. 그렇지 않은 경우에는 오른쪽 위에 나타납니다.
- 키의 이름을 입력하고 다음을 클릭합니다.
- 메시지가 표시되면 복사를 클릭하여 공유 비밀키를 복사한 후 키 영구 숨기기를 클릭합니다.
키가 저장되고 자동으로 ID가 배정됩니다. 최종 사용자 인증 페이지의 메시징 탭에 있는 키 목록에서 키의 ID를 찾을 수 있습니다.
- 복사한 키의 ID와 공유 비밀키를 비공개로 개발자에게 보냅니다.
외부 ID로만 최종 사용자 인증하기
-
external_id: (필수) 각 사용자를 식별하는 데 사용될 수 있는 고유한 영숫자 문자열입니다. 보통 이러한 ID는 외부 시스템에서 가져옵니다. ID는 255자를 초과할 수 없습니다.
Zendesk는 메시징을 통해 인증하는 사용자들의 기본 식별자로
external_id
를 사용합니다. Zendesk는 유효한 JWT로 사용자를 인증할 때 먼저external_id
로 기존 사용자를 처리합니다.external_id
일치 항목을 찾지 못하면 제공된 이메일 주소를 사용하여 사용자를 해결합니다. 이메일 주소로 JWT 발급하기를 참조하세요. -
scope: (필수) 통화 상대의 액세스 범위입니다. 유일하게 올바른 값은
user
입니다. - name: (선택 사항) 사용자의 이름입니다. JWT 페이로드에 이름을 포함하면 Zendesk가 상담사 워크스페이스에 사용자의 이름을 표시하여 상담사가 더욱 맞춤화된 지원을 제공하는 데 도움이 됩니다.
{
"external_id": "12345678",
"scope": "user",
"name": "Jane Soap"
}
최종 사용자 인증에 이메일 ID 통합하기
- 인증된 사용자는 서명된 JWT를 통해 인증됩니다.
서명된 JWT의 콘텐츠는 최종 사용자에 의해 훼손될 수 없으므로 JWT의 사용은 신뢰할 수 있는 접근 방식을 제공합니다. 사칭 공격이 우려된다면 이메일 ID를 인증된 최종 사용자로 제한해야 합니다. 이는 가장 안전한 옵션으로 새 Zendesk 계정에 대한 기본 접근 방식입니다.
- 인증되지 않은 사용자는 Zendesk 봇의 메시지에 응답하여 이메일 주소를 제공하는 최종 사용자입니다.
인증되지 않은 사용자에게 이메일 ID 사용을 허용하면 자신이 소유하지 않은 이메일 주소를 제공하여 다른 사용자를 사칭하는 사람들에게 취약해질 수 있다는 점을 염두에 두세요.
이메일 ID 구성하기
새 Zendesk 계정에서는 이메일 ID가 확인된 이메일 주소만 사용하도록 설정 및 구성되어 있습니다. 이는 가장 안전한 옵션입니다. 이전 계정은 확인된 이메일 주소와 확인되지 않은 이메일 주소 둘 다 사용하도록 구성되어 있습니다. 이메일 주소를 JWT에 추가하기 전에 옵션을 검토하고 필요에 따라 설정을 업데이트해야 합니다.
- 관리 센터의 사이드바에서 채널을 클릭한 다음 메시징 및 소셜 > 메시징을 선택합니다.
- 설정 관리를 클릭합니다.
-
이메일 ID를 클릭한 후 다음 옵션 중 하나를 선택합니다.
-
확인된 이메일만 사용: 인증된 상태이며 발급된 JWT에 포함된 확인된 이메일 주소가 있는 사용자에 대해서만 이메일 ID가 만들어집니다. 상담사는 수동으로 사용자 레코드에 이메일 ID를 추가할 수 있습니다.
이 옵션을 사용하면 상담사가 채팅 기록에서 인증되지 않은 사용자가 제공한 이메일 주소를 볼 수 있지만 필수 정보 카드에서 사용자에게 연결된 이메일 ID는 볼 수 없습니다. 상담사가 이메일을 통해 인증되지 않은 사용자에게 후속 조치를 취해야 하는 경우에는 해당 사용자 레코드에 수동으로 이메일 ID를 추가해야 합니다. 인증되지 않은 사용자의 이메일 주소가 이미 다른 사용자 레코드에 존재하는 경우에는 상담사가 두 사용자 레코드를 병합할 수 있습니다.
이메일 ID를 수동으로 추가하거나 두 개의 사용자 레코드를 병합하기 전에 소셜 엔지니어링 공격을 방지하기 위해 상담사가 ID 확인 검사를 수행하도록 하는 것이 좋습니다.
-
확인된 이메일과 확인되지 않은 이메일을 모두 사용: 인증되었으며 JWT에 확인된 이메일 주소를 가지고 있는 사용자는 물론 봇 플로우를 통해 이메일 주소를 제공하는 인증되지 않은 사용자 둘 다에 대해 이메일 ID가 만들어집니다. 이 옵션을 사용하면 상담사가 필수 정보 카드에서 최종 사용자의 이메일 주소를 찾을 가능성이 더 높아지고, 확인되지 않은 이메일 주소에 대한 이메일 ID가 상담사 워크스페이스에 확인되지 않음으로 확실하게 표시됩니다. 상담사가 이메일 후속 작업을 보내야 하는 경우에는 최종 사용자에게 인증할 것을 요구할 수 있습니다.
충돌 시 확인된 이메일 ID가 확인되지 않은 이메일 ID보다 우선합니다.
-
확인된 이메일만 사용: 인증된 상태이며 발급된 JWT에 포함된 확인된 이메일 주소가 있는 사용자에 대해서만 이메일 ID가 만들어집니다. 상담사는 수동으로 사용자 레코드에 이메일 ID를 추가할 수 있습니다.
- (선택 사항이지만 권장되지 않음) 인증되지 않은 사용자라도 모든 사용자가 확인된 이메일 주소를 주장할 수 있도록 하려면 인증되지 않은 사용자가 확인된 이메일에 대한 소유권을 주장할 수 있음을 선택합니다.
이 옵션을 선택하면 사용자가 인증되고 나중에 메시징 상호작용에서 자신의 이메일 상태를 차지한 후 사칭자가 나타날 수 있으므로 메시징 채널에서 수집한 이메일 ID의 확인 상태는 더 이상 신뢰할 수 없습니다. 즉, 사칭 공격이 성공할 가능성이 더 높으며 최종 사용자가 자신이 주장하는 사람인지 알 수 있는 상담사의 수단이 제한적입니다. 하지만 확인된 이메일 ID가 여전히 확인되지 않은 이메일 ID를 대신하며 사칭자의 사용자 레코드에서 이메일 ID가 제거됩니다.
- 설정 저장을 클릭합니다.
이메일 주소로 JWT 발급하기
-
external_id: (필수) 각 사용자를 식별하는 데 사용될 수 있는 고유한 영숫자 문자열입니다. 보통 이러한 ID는 외부 시스템에서 가져옵니다. ID는 255자를 초과할 수 없습니다.
Zendesk는 메시징을 통해 인증하는 사용자들의 기본 식별자로
external_id
를 사용합니다. Zendesk는 유효한 JWT로 사용자를 인증할 때 먼저external_id
로 기존 사용자를 처리합니다.external_id
일치 항목을 찾지 못하면 제공된 이메일 주소를 사용하여 사용자를 해결합니다. 이메일 주소로 JWT 발급하기를 참조하세요. -
scope: (필수) 통화 상대의 액세스 범위입니다. 유일하게 올바른 값은
user
입니다. - name: (선택 사항) 사용자의 이름입니다. JWT 페이로드에 이름을 포함하면 Zendesk가 상담사 워크스페이스에 사용자의 이름을 표시하여 상담사가 더욱 맞춤화된 지원을 제공하는 데 도움이 됩니다.
-
email: (필수) 로그인하는 사용자의 이메일 주소입니다. 사용자마다 고유해야 합니다.
이메일 주소를 상담사 워크스페이스에 있는 사용자의 기본 이메일 주소로 설정하세요. JWT에 보조 이메일 주소를 포함하는 것은 지원되지 않습니다.
-
email_verified: (선택 사항) 해당 최종 사용자가 이메일 주소의 소유권을 증명했는지 여부입니다. 최종 사용자가 확인된 이메일 ID를 가지도록 하려면 발급하는 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를 거부하고 최종 사용자의 로그인 시도가 실패합니다. 이런 일이 발생하면 인증되지 않은 상태의 사용자와 대화가 시작됩니다.
- 서로 다른
external_id
값 또는email
주소를 사용하도록 JWT를 업데이트합니다.또는
- 충돌하는
external_id
를 가진 사용자를 삭제하여 다른 최종 사용자가 사용할 수 있도록 합니다. Sunshine Conversations API에서 사용자 삭제를 참조하세요.