웹 채팅에서 사용자 인증하기

참고 : 이 섹션의 내용은 AI 어시스턴트에 적용됩니다. AI 채팅을 외부 페이지에 포함시키려면 [웹 채팅 보안 개요](.. /chat/web_chat_security_overview.html ) 페이지를 참조하십시오.

웹 채팅 보안을 사용 설정하면 사용자 ID로 고객을 안전하게 인증할 수 있습니다.

웹 채팅 연동 서비스의 기본 동작은 각 메시지의 일부로 AI 어시스턴트에게 전송되는 ' user_id ' 속성의 값을 설정하여 고유한 사용자를 식별하는 것입니다. 자세한 내용은 웹 채팅에서 사용자 ID 정보 관리하기를 참조하세요.

이 방법은 청구 목적으로 고유 사용자를 추적하는 데는 충분하지만 안전하지 않으므로 액세스 제어용으로 사용해서는 안 됩니다. 웹 채팅 보안을 사용 설정하는 경우 JSON 웹 토큰(JWT)을 사용하여 사용자를 안전하게 인증하고 인증이 필요한 AI 어시스턴트의 기능에 대한 액세스를 제어하세요.

' sub 클레임으로 인증하기

이 방법을 사용하여 사용자를 인증하려면 먼저 웹 채팅 보안 기능을 사용 설정해야 합니다. 자세한 내용은 웹 채팅 보안 사용 설정하기를 참조하세요.

웹 채팅용 JWT를 만들 때 사용자를 식별하는 ' sub '(주제) 클레임의 값을 지정해야 합니다. 익명 사용자의 경우 생성된 고유 ID를 사용할 수 있습니다.

익명 사용자의 사용자 ID를 생성할 때는 생성된 ID를 쿠키에 저장하여 동일한 고객에게 여러 번 요금이 청구되지 않도록 하세요.

웹 채팅 연동 서비스가 이 JWT로 서명된 메시지를 수신하면 ' sub 클레임의 사용자 ID를 작업에서 ' system_integrations.channel.private.user.id '로 저장합니다.

고객이 웹 채팅 세션을 시작하기 전에 로그인을 해야 하는 경우에는 JWT를 만들 때 인증된 사용자 ID를 ' sub 클레임의 값으로 사용할 수 있습니다. 웹 채팅 통합은 JWT의 유효성을 검사하고 ' sub 클레임을 사용하여 사용자 ID를 설정하므로 이제 AI 어시스턴트가 ' system_integrations.channel.private.user.id '를 사용하여 인증이 필요한 기능에 대한 안전한 액세스 제어를 수행할 수 있습니다.

웹 채팅용 JWT를 지정한 후에는 세션 중에 다른 ' sub ' 클레임이 있는 JWT로 변경할 수 없습니다. 세션 중간에 인증된 로그인 정보를 추가해야 하는 경우, 대신 사용자 페이로드의 일부로 저장할 수 있습니다. 이를 수행하는 방법에 대한 예는 ' 튜토리얼: 세션 도중에 사용자 인증하기 을 참조하세요.

청구 및 개인정보 보호

사용자 기반 요금제의 경우 사용자 ID는 청구 목적으로 사용됩니다. (웹 채팅 보안이 활성화된 경우 ' updateUserID() 인스턴스 메서드를 사용하여 사용자 ID를 설정할 수 없습니다.) 사용자 데이터 삭제 요청을 할 때 사용할 수 있는 고객 ID와 동일한 사용자 ID도 사용됩니다. 고객 ID는 헤더 필드에 전송되므로 지정하는 ID는 RFC 7230에 정의된 헤더 필드에 대한 요구 사항을 충족해야 합니다.

GDPR 요건을 준수해야 하는 경우, 특히 나중에 사용자 자격 증명으로 로그인하는 익명 사용자의 경우 생성된 익명 사용자 ID를 영구적으로 저장해야 할 수 있습니다. 이러한 사용자 ID를 저장하면 나중에 요청이 있을 경우 개별 고객과 관련된 모든 데이터를 삭제할 수 있습니다.

사용자 데이터 삭제에 대한 자세한 내용은 데이터 라벨 지정 및 삭제하기를 참조하세요.

로그아웃

고객을 로그아웃하려면 웹 대화를 삭제해야 합니다.

고객이 로그아웃할 때 페이지를 다시 로드하는 경우 ' destroySession() 인스턴스 메서드를 호출하여 브라우저의 쿠키 및 저장소에서 현재 세션에 대한 참조를 제거합니다. 이 메서드를 호출하지 않으면 JWT로 보호되는 정보는 위험하지 않지만 웹 채팅이 이전 세션에 연결을 시도하다가 실패합니다.

고객이 로그아웃할 때 전체 페이지 새로고침을 수행하지 않는 경우 ' destroy() 인스턴스 메서드를 호출하세요. ' destroy ' 메서드는 현재 userID 대해 구성된 웹 채팅의 현재 인스턴스를 DOM 및 브라우저 메모리에서 제거합니다. 다음으로 ' destroySession() 인스턴스 메서드를 호출합니다.