고객 서비스
고객 상담 솔루션 SSO(싱글 사인온): 상담팀을 위한 OpenID Connect 설정 가이드
하루 종일 고객 대화를 보는 상담원은 별도 비밀번호가 아니라 회사 계정으로 로그인해야 합니다. OpenID Connect SSO의 동작 방식, 켜기 전에 정해 둘 사항, 온프레미스 MonoChat 설치에서 설정하는 방법을 설명합니다.
MonoChat 팀 업데이트: 6 분 소요
이 페이지 내용
고객 상담 솔루션의 싱글 사인온(SSO)이란 상담원이 별도 비밀번호 대신 Microsoft Entra ID, Okta, Keycloak, AD FS, Google Workspace 같은 ID 공급자의 회사 계정으로 로그인하는 방식입니다. 그 바탕이 되는 표준이 OpenID Connect(OIDC)입니다. 온프레미스 MonoChat 설치에서는 설치 환경 전체에 한 번만 설정하고, 회사 이메일 도메인으로 제한할 수 있으며, SSO를 유일한 로그인 방법으로 지정할 수도 있습니다.
상담팀이 특히 신경 써야 하는 이유가 있습니다. 상담원 계정 하나로 볼 수 있는 WhatsApp, Instagram, Messenger 대화에는 이름, 전화번호, 주문 내역, 때로는 건강이나 결제 관련 문의까지 담겨 있습니다. 이런 계정은 회사의 다른 계정과 같은 규칙을 따라야 하고, 담당자가 퇴사하는 날 바로 쓸 수 없게 되어야 합니다.
상담팀에 로그인 방식이 중요한 이유
도난당하거나 오용된 자격 증명은 여전히 기업 침투의 가장 흔한 경로입니다. Verizon의 2025 데이터 침해 조사 보고서(Data Breach Investigations Report)는 확인된 침해 12,195건을 분석했고, 자격 증명 악용(22%)과 취약점 악용(20%)이 가장 많은 최초 공격 경로였다고 밝혔습니다.
상담 플랫폼이 자체 비밀번호를 따로 두면 상담원마다 자격 증명이 하나씩 늘어납니다. 재사용될 비밀번호가 하나 더 생기고, 퇴사자가 나와도 잊고 넘어갈 계정이 하나 더 생기며, 다중 인증(MFA)과 조건부 액세스 규칙이 적용되지 않는 로그인이 하나 더 생깁니다. SSO를 쓰면 플랫폼은 비밀번호를 보지 않습니다. ID 공급자가 비밀번호를 확인하고, 회사의 MFA와 접근 정책을 적용한 뒤, 누가 로그인했는지를 플랫폼에 알려 줍니다.
OpenID Connect 로그인은 이렇게 동작합니다
OpenID Connect는 OAuth 2.0 위에 얹은 ID 계층입니다. MonoChat은 인증 코드 흐름(authorization code flow)을 사용합니다.
- 상담원이 로그인 페이지에서 SSO 버튼을 누릅니다. MonoChat이 ID 공급자의 로그인 페이지를 팝업으로 엽니다.
- 상담원이 그곳에서 회사의 MFA와 정책에 따라 로그인합니다.
- ID 공급자가 일회용 코드와 함께 브라우저를 MonoChat으로 되돌려 보냅니다.
- MonoChat 서버가 서버 간 통신으로 코드를 ID 토큰으로 교환합니다. 토큰은 브라우저를 거치지 않습니다.
- MonoChat이 ID 토큰을 검증하고 상담원을 로그인시킵니다.
OpenID Connect 사양의 표현으로 ID 토큰은 “최종 사용자의 인증에 관한 클레임을 담은 보안 토큰”(원문: “a security token that contains Claims about the Authentication of an End-User”)입니다. MonoChat은 다음 조건을 모두 만족할 때만 이를 받아들입니다.
- ID 공급자의 키 중 하나로 서명되어 있어야 하며, 이 키는 로그인할 때마다 디스커버리 문서(
<issuer>/.well-known/openid-configuration)에서 읽어 옵니다. - 발급자(
iss)가 회사의 발급자이고, 대상(aud)이 MonoChat의 클라이언트 ID이며, 만료 시각(exp)이 지나지 않아야 합니다. - MonoChat이 요청과 함께 보낸
nonce가 들어 있어야 합니다. 이 값이 토큰을 해당 로그인에 묶어 재전송 공격을 막습니다. - 사용자의 이메일 주소가 들어 있어야 하며, 공급자가 그 주소를 미확인으로 표시하지 않아야 합니다.
요청에는 PKCE(S256)와 state 값도 사용되며, 로그인 요청은 10분 동안 유효하고 한 번만 사용할 수 있습니다.
SSO를 켜기 전에 정해 둘 다섯 가지
| 결정 사항 | 선택지 | 상담팀에 권장하는 방식 |
|---|---|---|
| 로그인할 수 있는 사람 | 모든 도메인, 또는 회사 이메일 도메인만 | 회사 도메인으로 제한 |
| 첫 로그인 시 처리 | 계정을 만들어 주기, 또는 초대받은 사람만 허용 | ID 공급자가 이미 입사자를 관리한다면 계정 자동 생성 |
| 기존 계정 | 이메일이 확인되면 첫 로그인에서 SSO 연결, 또는 비밀번호 로그인 한 번 후 연결 | ID 공급자가 email_verified를 보내는지에 따라 결정 |
| 다른 로그인 방법 | 비밀번호와 소셜 로그인 유지, 또는 SSO만 허용 | 모두가 SSO를 연결한 뒤에는 SSO만 허용 |
| 새 워크스페이스를 만들 수 있는 사람 | 계정이 있는 모든 사람, 또는 해당 역할이 있는 사람만 | 회사 설치 환경에서는 워크스페이스 자유 생성을 끄기 |
설정을 바꾸기 전에 이 항목들을 먼저 문서로 정리해 두세요. 보안팀이 가장 먼저 묻는 질문이며, 답에 따라 필요한 설정이 달라집니다.
온프레미스 MonoChat 설치에서 SSO 설정하기
SSO는 워크스페이스별이 아니라 서버 설정에서 설치 환경 전체에 설정합니다. 전체 안내는 도움말 센터의 싱글 사인온 페이지에 있으며, 여기서는 핵심만 정리합니다.
1. ID 공급자에 MonoChat 등록하기
클라이언트 시크릿이 있는 웹 애플리케이션을 만들고 다음을 지정합니다.
- 리디렉션 URI
https://<your MonoChat domain>/api/oauth/oidc/redirect - 인증 코드 권한 부여(authorization code grant)
- 스코프
openid email profile - 시크릿을 HTTP Basic으로 보내는 클라이언트 인증(
client_secret_basic)
ID 토큰에 email 클레임이 포함되도록 하고, 클라이언트 ID, 클라이언트 시크릿, 발급자(issuer)를 기록해 두세요.
2. 발급자를 그대로 복사하기
발급자는 공급자의 디스커버리 문서에 있는 issuer 값입니다. 대표적인 형식은 다음과 같습니다.
| ID 공급자 | 발급자(issuer) |
|---|---|
| Microsoft Entra ID | https://login.microsoftonline.com/<tenant id>/v2.0 |
| Okta | https://<your Okta domain>/oauth2/default 또는 https://<your Okta domain> |
| Keycloak | https://<your Keycloak host>/realms/<realm> |
| AD FS 2016 이상 | https://<your AD FS host>/adfs |
| Google Workspace | https://accounts.google.com |
브라우저에서 <issuer>/.well-known/openid-configuration을 열어, 값에 끝 슬래시가 있다면 그것까지 포함해 한 글자도 바꾸지 말고 복사하세요. 두 값이 다르면 MonoChat은 모든 로그인을 거부합니다. 첫 테스트가 실패하는 가장 흔한 원인입니다.
3. 설정을 추가하고 재시작하기
공개 항목(발급자, 클라이언트 ID, 리디렉션 경로, 스코프, 버튼 문구)은 public.oauth.oidc에 넣고, 클라이언트 시크릿은 oauth.oidc에 넣어 서버에만 둡니다. 이 중 두 옵션이 위 표의 결정을 반영합니다.
autoCreateAccounts: true는 가입이 초대제로 제한되어 있어도 사용자가 처음 SSO로 로그인할 때 MonoChat 계정을 만듭니다.allowedEmailDomains: ["yourcompany.com"]은 다른 도메인의 모든 주소를 거부합니다. Google Workspace는 개인 Google 계정도 어떤 도메인의 주소든 쓸 수 있으므로, MonoChat이 이메일 주소 대신 계정의 Workspace 도메인(hd클레임)을 확인합니다.
버튼에는 각 사용자의 언어로 된 기본 문구가 표시되며(한국어는 “SSO로 로그인”), 직접 정한 문구로 바꿀 수도 있습니다. 예를 들어 “Northwind SSO로 로그인”처럼 쓸 수 있습니다.
4. SSO를 안전하게 유일한 방법으로 만들기
모두가 SSO를 연결했다면 허용 로그인 방법(public.auth.methods)을 ["oidc"]로 설정하세요. 그러면 로그인 페이지에 SSO 버튼만 표시되고, 서버는 비밀번호와 소셜 로그인을 거부합니다. 루트 슈퍼 사용자는 /auth/signin?fallback=1에서 비밀번호로 로그인할 수 있으므로, ID 공급자가 중단되어도 설치 환경이 잠기지 않습니다. 새 SSO 계정이 자신만의 워크스페이스를 만들지 못하게 하려면 public.disableTenantCreation을 true로 설정하세요.
5. 로그인 네 가지 테스트하기
- 계정이 있는 사용자: 팝업이 닫히고 로그인됩니다.
- 계정이 없는 사용자: 계정이 만들어지거나, 계정 자동 생성을 켜지 않았다면 거부됩니다.
- 다른 도메인의 사용자: 도메인을 제한했다면 거부됩니다.
- SSO 전용 상태에서의 비밀번호 로그인: 거부되며, 루트 대체 로그인은 계속 작동합니다.
기존 상담원: 계정은 어떻게 연결되나요
대부분의 팀은 이미 MonoChat 계정이 있는 상담원들과 함께 SSO를 켭니다. MonoChat은 이메일 주소가 같은 기존 계정에 SSO를 두 가지 방법 중 하나로 연결합니다.
- 자동 연결: 설치 환경이 병합을 허용하고 ID 토큰이 주소가 확인되었다고 알리는 경우(
email_verified: true), 첫 SSO 로그인 때 자동으로 연결됩니다. - 비밀번호 로그인 한 번 후 연결: 그 외 모든 경우에는 MonoChat이 비밀번호로 한 번 로그인하도록 안내하고, 그때 SSO를 연결합니다. 워크스페이스 초대를 수락해도 연결됩니다.
Microsoft Entra ID와 AD FS는 email_verified를 보내지 않습니다. 이 경우 모두가 SSO를 연결할 때까지 비밀번호 로그인을 허용해 두거나, SSO 전용으로 전환하기 전에 사용자를 다시 초대하세요.
SSO는 신원, 역할은 접근 권한입니다
로그인은 계정을 만들어 줄 뿐, 대화에 대한 접근 권한을 주지 않습니다. MonoChat 계정은 여러 워크스페이스에 속할 수 있으며, 사용자는 워크스페이스를 고르기 전에 먼저 로그인합니다. 워크스페이스가 초대하고 역할을 부여해야 그 워크스페이스가 보이며, 역할에 따라 접근할 수 있는 채널, 대화, 설정이 정해집니다. 설정 방법은 팀 인박스 역할과 권한을 참고하세요.
감사 담당자가 확인하고 싶어 하는 것도 바로 이 구분입니다.
- 입사: ID 공급자가 사용자를 만들고, 워크스페이스 관리자가 초대해 역할을 정합니다.
- 이동: MonoChat에서 역할이나 워크그룹을 바꿉니다. 로그인 방식은 달라지지 않습니다.
- 퇴사: ID 공급자에서 해당 사용자를 비활성화하고, MonoChat 워크스페이스에서도 제거합니다.
미리 고려할 제한 사항
- 모바일 앱. MonoChat Android 및 iOS 앱은 아직 SSO를 제공하지 않습니다. SSO가 유일한 로그인 방법이면 상담원이 휴대폰으로 로그인할 수 없으므로, 모바일 사용자를 위해 다른 방법을 남겨 두거나 데스크톱 전용 근무로 계획하세요.
- 로그아웃. MonoChat에서 로그아웃해도 ID 공급자에서는 로그아웃되지 않으며, ID 공급자에서 로그아웃해도 아직은 MonoChat에서 로그아웃되지 않습니다. ID 공급자에서 퇴사자를 비활성화하면 새 로그인은 막히므로, 워크스페이스에서도 함께 제거하세요.
- 네트워크. 사용자의 브라우저가
/api/oauth/oidc/authorize와 리디렉션 경로에 접근할 수 있어야 하고, MonoChat 서버가 공급자의 디스커버리 문서, 토큰 엔드포인트, 키 세트에 HTTPS로 접근할 수 있어야 합니다. IP로 설치 환경을 제한하는 경우에도 이 경로들을 고려하세요.
MonoChat에서 SSO의 위치
SSO는 설치 환경 전체의 서버 설정에서 구성하므로, 현재는 온프레미스 MonoChat에 속합니다. 온프레미스는 자체 서버에서 플랫폼을 운영하며 자체 LLM과 벡터 데이터베이스를 쓰는 팀을 위한 Enterprise 옵션입니다. 엔터프라이즈 페이지에서 온프레미스 옵션을 확인할 수 있고, 보안 페이지에서 역할 기반 접근, 워크스페이스 격리, 인증을 볼 수 있습니다. AI 도입 시 데이터 측면은 AI 챗봇 개인정보 보호 체크리스트를 참고하세요.
제품을 먼저 써 보고 싶다면 app.monochat.ai의 무료 Basic 요금제로 상담원 1명, 채널 1개를 사용할 수 있습니다.
출처
- OpenID Connect Core 1.0, OpenID Foundation, 2026년 11월 4일 확인
- Verizon 2025 Data Breach Investigations Report announcement, 2026년 11월 4일 확인
- MonoChat help center: Single Sign-On for an On-Premise Installation, 2026년 11월 4일 확인
- MonoChat changelog 3.8.43, 2026년 11월 2일
MonoChat으로 실행해 보세요