경력·사례·글은 한국어 원문으로 제공됩니다.

← 모든 기록

기술 글 / 접근 권한

로그인 이후, 서비스 이용 권한은 따로 확인했다

로그인은 같이 쓰지만 서비스 이용 권한은 따로다. 되는 요청과 막히는 요청을 짝으로 확인했다.

로그인은 하나, 서비스는 넷

개인 서비스의 공통 기반인 Base Kernel에서 여러 서비스가 로그인 하나를 같이 쓴다. 회사의 국가별 통합 인증과는 별도의 구현이다. 사용자는 한 번 가입하면 되고, 나는 서비스마다 로그인을 새로 만들지 않아도 된다.

그렇다고 로그인한 사람이 네 서비스를 다 쓸 수 있는 건 아니다. 여기서 확인한 조건은 A 서비스용 토큰으로 허용되지 않은 B 서비스 API에 들어오는 경우다. 사용자가 여러 서비스를 이용할 수 있어도, 이 요청의 대상과 권한은 따로 확인해야 했다.

토큰이 유효하다는 것은 서명과 만료 등의 조건을 확인해 신뢰할 수 있다는 뜻이다. 그 안의 사용자 정보, 토큰이 대상으로 삼는 서비스(audience), 실제 이용 권한은 서로 다른 질문이다. 사용자임을 확인했다고 그 사람의 모든 요청을 허용할 수는 없었다.

되는 요청, 막히는 요청

허용된 서비스에 요청하면 200, 같은 토큰으로 다른 서비스에 요청하면 403이 나오는지 확인했다. 되는 요청만 테스트하면 막혀야 할 곳이 뚫려 있어도 모른다.

서버가 요청을 받으면 이 순서로 따진다.

  1. 요청한 사람이 누구인가?
  2. 이 요청은 어느 서비스에 대한 것인가?
  3. 이 사람이 그 서비스를 쓸 수 있나?
  4. 토큰의 서비스와 요청한 서비스가 다르면 거부하나?

코드에서 확인한 것

서비스 식별자가 어디서 들어오는지, 무엇을 믿고 그 값을 쓰는지, 안 맞으면 어느 단계에서 거부하는지를 코드와 테스트로 확인했다. 서비스가 안 맞을 때의 거부 코드와 테스트, 정상 접근과 다른 서비스 접근 결과를 함께 남겼다.

새 서비스를 붙일 때도 허용되는 테스트와 거부되는 테스트를 한 쌍으로 넣는다.

작성 2026-09-13 · 수정 2026-10-06

작업 당시의 기록이다. 지금 운영 상태와는 다를 수 있다.