OAuth & 권한
AxHub MCP의 OAuth 로그인, 테넌트 경계, 권한 범위
AxHub MCP는 OAuth 2.1 기반이에요. 클라이언트가 표준 흐름으로 알아서 처리하니, 사용자가 직접 설정할 건 거의 없어요.
로그인 흐름
- 클라이언트가 자동 등록(DCR) 으로 등록되니,
client_id/secret을 손으로 만들 필요가 없어요. - 인가는 Authorization Code + PKCE(S256) 를 써요.
- 첫 연결 때 브라우저로 로그인·동의하면 토큰이 발급되고, 이후엔 클라이언트가 갱신을 처리해요.
- 리다이렉트는 로컬(loopback) 주소만 허용돼요.
테넌트 경계
한 세션은 하나의 테넌트로 묶여요. 테넌트는 로그인한 사용자의 멤버십으로 정해져요.
| 사용자 상태 | 동작 |
|---|---|
| 소속 테넌트 1개 | 자동으로 그 테넌트로 연결 |
| 소속 테넌트 여러 개 | 로그인 시 테넌트를 선택 |
| 소속 테넌트 없음 | 접근 불가 |
| 연결 후 멤버십 해지 | 다음 갱신 때 차단 |
클라이언트가 보낸 테넌트 값은 신뢰하지 않아요 — 서버가 검증된 토큰 클레임으로 테넌트를 바인딩해요. 또 서버는 클라이언트 토큰을 백엔드로 그대로 전달하지 않고, 그 테넌트로 제한된 위임 토큰으로 교환해 호출해요.
권한 범위
- 발급 토큰의 scope는
data:read— 읽기 전용이에요. - 쓰기·관리(write/admin) 툴은 없어요.
- 모든 조회는 로그인한 사용자가 원래 가진 접근 권한 안에서만 이뤄져요.
토큰과 에러
| 상황 | 응답 |
|---|---|
| 토큰 없음·만료·무효 | 401 — 클라이언트가 다시 로그인 |
data:read scope 부족 | 403 (insufficient_scope) |
401·403 응답에는 표준 WWW-Authenticate 헤더와 메타데이터 위치가 담겨, 클라이언트가 재인증을 자동으로 처리해요.