API

다른 회사(테넌트) 네이버웍스에 로그인된 브라우저에서 OAuth authorize 호출 시 "유효하지 않은 클라이언트 정보입니다" 오류 — redirect_uri 로 돌려받을 방법이 있나요?

박형렬_b23829

2026.08.24읽음 74

안녕하세요. 자사 테넌트(ourcompany.com)에 등록한 앱으로 사내 어드민의 네이버웍스 로그인(OAuth 2.0 Authorization Code + OIDC)을 구현해 운영 중입니다. 정상 상황에서는 잘 동작하는데, 특정 조건에서 네이버웍스 오류 페이지에 갇혀 저희 서비스로 돌아오지 못하는 문제가 있어 문의드립니다.
■ 요청 URL
https://auth.worksmobile.com/oauth2/v2.0/authorize?client_id=XXXXXXXXXXXXXXXXXXXX&redirect_uri=https%3A%2F%2Fadmin.ourcompany.com%2Fapi%2Fauth%2Fworks%2Fcallback&response_type=code&scope=openid%20email%20profile&state=…&nonce=…
(redirect_uri 는 Developer Console 에 등록된 값과 정확히 일치합니다.)
■ 재현 조건별 결과 — 같은 URL 이고, 브라우저의 네이버웍스 로그인 상태만 다릅니다.
1. 로그인 없음(시크릿 창)
  → 네이버웍스 로그인 폼이 표시됩니다. 정상.
2. 자사 테넌트(ourcompany.com) 계정으로 로그인된 상태
  → 인가 코드가 발급되고 redirect_uri 로 정상 복귀합니다.
3. 다른 회사 테넌트 계정으로 로그인된 상태
  → "유효하지 않은 클라이언트 정보입니다. Client Id 또는 Parameter를 확인해 주세요." 페이지에서 끝납니다. redirect_uri 로는 아무것도 돌아오지 않습니다.
즉 client_id·redirect_uri 설정 문제가 아니라, 브라우저에 다른 테넌트 세션이 있으면 그 테넌트 기준으로 client_id 를 조회해 실패하는 것으로 보입니다.
■ 이미 시도한 것
- domain=ourcompany.com 추가: 세션이 없을 때는 자사 테넌트 로그인 폼(@ourcompany.com 고정)이 떠서 효과가 있지만, 다른 테넌트 세션이 있을 때는 붙여도 똑같은 오류 페이지가 나옵니다.
- prompt=login, max_age=0: 무시됩니다(포럼 100593 답변대로 지원하지 않는 것으로 이해했습니다).
- end_session_endpoint(/oauth2/v2.0/logout)로 먼저 로그아웃: id_token_hint 가 필수인데, 다른 테넌트 세션에 대한 id_token 은 저희가 가질 수 없어 사용할 수 없습니다.
■ 문의
1. 다른 테넌트 세션이 있는 브라우저에서도 요청한 테넌트(domain) 기준으로 client_id 를 조회하게 하거나, 자사 테넌트 로그인 폼으로 보내는 방법이 있을까요?
2. 위 오류를 네이버웍스 페이지에서 끝내지 않고 redirect_uri?error=… 형태로 돌려받을 수 있는 방법이 있을까요? 저희 화면에서 "회사 계정으로 다시 로그인하세요"를 안내하고 싶습니다.
3. 둘 다 없다면, 이 경우 사용자에게 권장하는 안내 방법이 있는지 알고 싶습니다.
사내 직원이 개인적으로 다른 회사 네이버웍스를 함께 쓰는 경우가 있어 실제로 발생하고 있습니다. 확인 부탁드립니다. 감사합니다.

댓글1

  • 업데이트 된 답글입니다.

    김다니엘

    서로다른 회사의 웍스를 한 pc에서 쓸수있으면 보안에 문제가 있을 것 같아요 ..

    2026.09.01

    0
이전 글클로바 노트쪽 공유받은 노트 목록 및 상세 조회 api 추가 계획은 없으신가요?
다음 글프로젝트 api 언제쯤 지원되나요? MCP 제공 계획은 없나요?
목록

궁금한 점을 해결하지 못하셨나요?
지금 바로 NAVER WORKS 사용자들에게 물어보세요!