← 카탈로그

IAM — 인증·인가 (권한 판정 엔진)

architecture⊕ 4 serviceszappzerocloudspearvcraft

"이 사람이 이걸 해도 되나?" 를 한 곳에서 딱 잘라 예/아니오로 답해주는 문지기예요. 누구인지 확인하고(인증), 무엇을 해도 되는지 따져서(인가) 통과시키거나 막아요.

비유: 놀이공원 문지기 🎢

  • 손님(주체) = 뭔가 하려는 사람.
  • 놀이기구(리소스) = 손님이 타고 싶은 것 (문서 보기, 회원 관리, 결제 화면…).
  • 행동(액션) = 그냥 구경만(READ) 할지, 새로 만들지(CREATE), 고칠지(UPDATE), 없앨지(DELETE). 이걸 다 할 수 있는 만능 팔찌도 있어요(MANAGE).
  • 손목 팔찌(권한) = 어떤 기구를 탈 수 있는지 적힌 표시. 문지기가 이 팔찌를 보고 판단해요.
  • 입장권 등급(요금제) = 애초에 이 구역(기능) 자체를 살 수 있는 티켓을 샀는지.

핵심은 이거예요: 판단하는 문지기가 딱 한 명이라 규칙이 여기저기 흩어지지 않아요.

문지기가 판단하는 순서

문지기는 두 번 물어봐요. 먼저 "이 구역 티켓은 샀어?"(요금제), 그다음 "그걸 만질 팔찌는 있어?"(권한).

거절 이유를 두 가지로 나누는 게 왜 중요하냐면 — 화면에서 안내가 달라지거든요. "티켓을 안 샀어요"면 "요금제 올리세요" 버튼을, "팔찌가 없어요"면 "관리자에게 문의" 를 보여줘야 하니까요.

팔찌는 상황마다 달라요 (팀별 권한)

같은 사람이라도 어느 팀에 있느냐에 따라 팔찌가 달라요. A팀에선 대장 팔찌, B팀에선 구경 팔찌일 수 있어요. 그리고 놀이공원 전체를 관리하는 본사 직원(운영자) 은 어느 팀에도 안 묶인 전체 팔찌를 껴요.

예를 들어 지훈이가 A팀 문서는 고칠 수 있어도, B팀 문서는 보기만 되는 식이에요. 문지기는 지훈이가 가진 팔찌를 전부 합쳐서 판단해요.

서비스가 크는 만큼 문지기도 커져요

작은 서비스는 문지기가 "로그인 했어? 응, 통과" 정도면 충분해요. 서비스가 커지면 "요금제 봤고, 팀 팔찌 봤고, 행동까지 맞나?"로 점점 꼼꼼해져요.

  • 처음엔 간단하게 시작하고, 필요할 때 문지기를 똑똑하게 키우면 돼요.
  • 안전장치 🛡️ — 문지기 규칙을 켜는 순간 아무도 못 들어가 스스로 갇히는 사고를 막으려고, 미리 정한 관리자 몇 명에겐 전체 팔찌를 자동으로 껴줘요.

핵심만 다시

  1. 문지기는 누구인지(인증) 확인하고 뭘 해도 되는지(인가) 를 한 곳에서 판단해요.
  2. 순서는 요금제 먼저, 그다음 팔찌(권한) — 거절 이유를 나눠줘야 안내가 정확해져요.
  3. 팔찌는 팀마다 다를 수 있고, 가진 걸 전부 합쳐서 판단해요.
  4. 서비스가 크는 만큼 문지기도 단순 → 꼼꼼하게 키워가면 돼요.

더 자세한 진짜 코드·설계는 옆의 개요 / Variants / Apply Recipe 탭에서 볼 수 있어요.