← 모든 글

내부 도구의 인증을 슬랙 OAuth 로 통일한 이유

내부 도구 5개에 각자 다른 인증이 박혀 있었다. 그걸 슬랙 OAuth 한 줄로 통일한 한 주.

지난 반년 동안 내부 도구가 5개 생겼다. 각각 인증이 달랐다.

  • URL 단축기 — Basic Auth (공유 비밀번호)
  • 운영 메트릭 그래프 — IP 화이트리스트 (회사 VPN)
  • 슬랙 알람 dedup 봇 — 무인증 (내부망 가정)
  • 인보이스 다운로드 — Google OAuth
  • docs 사이트 — Cloudflare Access

“누가 이 도구 썼지?” 하면 도구마다 다른 로그를 봐야 했다.

슬랙 OAuth 로 통일

슬랙 워크스페이스 자체가 이미 회사 ID 의 source of truth. 모든 동료는 슬랙에 있고, 외부 인은 슬랙에 없다.

from slack_sdk.oauth import AuthorizeUrlGenerator
# 도구마다 callback URL 만 다르고 client_id 는 공유

5개 도구를 일주일 동안 옮겼다. 슬랙 user_id 를 세션 쿠키에 저장, /admin 페이지에 슬랙 user_id 가 박힘.

좋아진 것

  • 로그 한 줄: 누가 무엇을 했는지 슬랙 user_id 로 일관됨. 슬랙에서 그 user_id 를 클릭하면 본인 프로필.
  • 퇴사 처리: 슬랙에서 비활성화하면 모든 내부 도구 접근이 한 번에 끊긴다.
  • 온보딩: 새 동료가 슬랙에 들어오는 순간 모든 도구가 자동으로 열린다.

안 좋아진 것

  • 슬랙이 다운되면 모든 내부 도구가 잠긴다. 슬랙 그 자체가 4~5번 다운 됐는데, 그 시간엔 도구도 못 들어갔다.
  • 슬랙 OAuth scope 가 도구마다 같은 수준이라 fine-grained 권한이 어렵다 (지금까진 admin/일반 이분만 있어서 큰 문제 아님).

다음에는 다르게 할 한 가지

새 내부 도구를 만들 땐 첫 PR 에 슬랙 OAuth 부터 박는다. 인증 없이 시작해서 나중에 붙이려면 항상 두 배 걸린다.


🛒 이 글과 어울리는 추천 상품

위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.