에이전트 인증
에이전트 인증
대화형 에이전트에 대한 액세스를 보호하는 방법을 알아보세요.
개요
대화형 에이전트를 구축할 때 특정 에이전트나 대화에 대한 접근을 제한해야 할 수 있습니다. ElevenLabs는 승인된 사용자만 에이전트와 상호작용할 수 있도록 여러 인증 메커니즘을 제공합니다.
인증 방법
ElevenLabs는 대화형 에이전트를 보호하기 위한 두 가지 주요 방법을 제공합니다.
서명된 URL 사용
서명된 URL은 클라이언트 측 애플리케이션에 권장되는 방식입니다. 이 방법을 사용하면 API 키를 노출하지 않고 사용자를 인증할 수 있습니다.
아래 가이드에서는 JS 클라이언트와 Python SDK를 사용합니다.
서명된 URL의 작동 방식
- 서버가 API 키를 사용해 ElevenLabs에 서명된 URL을 요청합니다.
- ElevenLabs가 임시 토큰을 생성하고 서명된 WebSocket URL을 반환합니다.
- 클라이언트 애플리케이션이 이 서명된 URL을 사용해 WebSocket 연결을 설정합니다.
- 서명된 URL은 15분 후 만료됩니다.
API를 통해 서명된 URL 생성
서명된 URL을 가져오려면 에이전트 ID와 함께 get_signed_url 엔드포인트에 요청을 보냅니다.
curl 응답 형식은 다음과 같습니다.
서명된 URL을 사용해 에이전트에 연결
클라이언트에서 서버가 생성한 서명된 URL을 가져오고, 이 URL을 사용해 WebSocket에 연결합니다.
서명된 URL 만료
서명된 URL은 15분 동안 유효합니다. 대화 세션은 더 오래 지속될 수 있지만, 대화는 15분 이내에 시작해야 합니다.
허용 목록 사용
허용 목록을 사용하면 출처 도메인을 기준으로 대화형 에이전트에 대한 접근을 제한할 수 있습니다. 이를 통해 승인된 도메인의 요청만 에이전트에 연결할 수 있습니다.
허용 목록의 작동 방식
- 에이전트에 승인된 호스트 이름 목록을 구성합니다.
- 클라이언트가 연결을 시도하면 ElevenLabs가 요청의 출처가 허용된 호스트 이름과 일치하는지 확인합니다.
- 출처가 허용 목록에 있으면 연결이 허용되고, 그렇지 않으면 거부됩니다.
허용 목록 구성
허용 목록은 에이전트의 인증 설정 일부로 구성합니다. 에이전트에 연결할 수 있도록 최대 10개의 고유한 호스트 이름을 지정할 수 있습니다.
예시: 허용 목록 설정
대시보드에서 구성
CLI에서 구성
API에서 구성
대시보드에서 에이전트를 열고 보안 탭으로 이동합니다. 허용 목록에 승인된 각 호스트 이름(예: example.com, app.example.com, localhost:3000)을 추가합니다.
인증 방법 선택
에이전트마다 인증 방법 하나를 구성하세요.
- 인증된 클라이언트 세션에는 서명된 URL(
enable_auth)을 사용합니다. - 호스트 이름 기반 접근 제어에는 허용 목록(
allowlist)을 사용합니다.
동일한 에이전트에서 서명된 URL과 허용 목록을 함께 구성하지 마세요. 배포 모델에 맞는 방법을 선택하세요.
예시: 서명된 URL만 사용
allowlist 없이 enable_auth를 사용합니다.
예시: 허용 목록만 사용
서명된 URL을 활성화하지 않고 allowlist를 사용합니다.
FAQ
여러 사용자에게 동일한 서명된 URL을 사용할 수 있나요?
가능하지만, 각 사용자 세션마다 새 서명된 URL을 생성하는 것이 좋습니다.
대화 중에 서명된 URL이 만료되면 어떻게 되나요?
서명된 URL이 만료되더라도(15분 후) 해당 URL로 생성된 WebSocket 연결은 닫히지 않습니다. 하지만 그 서명된 URL로 새 연결을 만들려고 하면 실패합니다.
특정 사용자로 접근을 제한할 수 있나요?
서명된 URL 메커니즘은 요청이 승인된 소스에서 왔는지만 확인합니다. 특정 사용자로 접근을 제한하려면 서명된 URL을 요청하기 전에 애플리케이션에서 사용자 인증을 구현하세요.
생성할 수 있는 서명된 URL 수에 제한이 있나요?
생성할 수 있는 서명된 URL 수에는 별도의 제한이 없습니다.
허용 목록은 하위 도메인을 어떻게 처리하나요?
허용 목록은 호스트 이름을 정확히 일치시켜 확인합니다. 도메인과 하위 도메인을 모두 허용하려면 각각 별도로 추가해야 합니다(예: “example.com” 및 “app.example.com”).
두 인증 방법을 모두 사용해야 하나요?
아니요. 에이전트마다 서명된 URL 또는 허용 목록 중 하나를 구성하세요. 클라이언트 측 애플리케이션에는 서명된 URL이 권장되는 기본 방식입니다.
그 밖에 어떤 보안 조치를 구현해야 하나요?
서명된 URL과 허용 목록 외에도 다음 구현을 고려하세요.
- 서명된 URL 요청 전 사용자 인증
- API 요청에 대한 속도 제한
- 의심스러운 패턴에 대한 사용량 모니터링
- 인증 실패에 대한 적절한 오류 처리