기획·개발·운영보안·권한 · 약 8분

APP DEVELOPMENT TERM

인증·인가

누구인지 확인하고 할 수 있는 일을 제한하는 과정

인증은 로그인처럼 사용자가 누구인지 확인하는 과정이고, 인가는 확인된 사용자가 어떤 정보와 기능에 접근할 수 있는지 판단하는 과정입니다.

인증 인가 차이로그인 인증사용자 권한AuthenticationAuthorization

30초 이해

로그인에 성공했다고 모든 정보와 기능을 사용할 수 있는 것은 아닙니다

이메일, 휴대폰, 소셜 계정이나 생체 정보로 사용자를 확인하는 것이 인증입니다. 확인된 사용자가 자신의 예약만 볼 수 있는지, 강사가 수강생 명단을 볼 수 있는지, 관리자만 환불을 승인할 수 있는지를 판단하는 것이 인가 또는 권한 확인입니다.

화면에서 버튼을 숨기는 것만으로 권한을 지킬 수는 없습니다. 사용자가 주소나 요청을 직접 바꿔도 다른 사람의 데이터에 접근하지 못하도록 서버와 데이터 계층에서 매 요청마다 권한을 확인해야 합니다.

한 장으로 이해

로그인부터 기능 실행까지 인증과 인가가 작동하는 과정

사용자 신원을 확인하고 로그인 상태를 유지한 뒤 요청한 정보와 행동이 허용되는지 서버가 다시 판단합니다.

  1. 01

    신원 확인

    이메일·휴대폰·소셜 계정 등으로 누구인지 확인합니다.

  2. 02

    로그인 상태

    세션이나 토큰으로 확인된 사용자의 상태를 유지합니다.

  3. 03

    권한 판단

    역할, 소유 관계와 현재 상태에 따라 요청을 허용합니다.

  4. 04

    기록·차단

    허용된 작업을 처리하고 중요한 행동과 거부 결과를 남깁니다.

인증은 입구에서 신분을 확인하는 일이고 인가는 안에서 각 방과 행동에 들어갈 수 있는지 계속 확인하는 일입니다.

언제 사용하는 개념인가요?

01

회원가입·로그인을 설계할 때

사용자를 확인할 방식, 계정 복구, 탈퇴와 로그인 상태 유지 기준을 정합니다.

02

역할별 기능을 나눌 때

고객·파트너·직원·관리자가 볼 수 있는 정보와 실행 가능한 행동을 구분합니다.

03

중요 작업을 보호할 때

결제·환불·개인정보·관리자 변경처럼 위험한 작업의 재확인과 기록을 설계합니다.

왜 중요한가요?

  • 다른 사람의 데이터 노출을 막습니다

    사용자 번호나 주소가 바뀌어도 요청자가 해당 데이터의 주체인지 서버에서 확인할 수 있습니다.

  • 역할별 업무 범위를 분명히 합니다

    조회·수정·승인·삭제 권한을 나눠 실수와 권한 남용 위험을 줄입니다.

  • 담당자 변경과 퇴사에 대응합니다

    사람별 계정과 권한을 관리하면 공유 계정 없이 접근을 추가하고 회수할 수 있습니다.

실제 상황 예시

클래스 예약 서비스의 인증과 인가를 설계한다면

모두 로그인하더라도 수강생, 강사와 운영 관리자가 할 수 있는 일은 달라야 합니다.

역할별 허용 예시

  • 수강생은 본인의 예약·결제만 조회
  • 강사는 담당 수업과 출석만 관리
  • 상담 직원은 필요한 고객 정보만 조회
  • 관리자는 승인·환불·권한 변경을 수행

반드시 함께 확인할 보호 기준

  • 비밀번호·휴대폰 변경과 계정 복구
  • 로그인 만료·로그아웃·분실 기기 처리
  • 중요 작업 재확인과 변경 기록
  • 퇴사자·외부 개발자 권한 회수

역할 이름만 정하지 말고 데이터 종류와 행동별로 조회·등록·수정·승인·삭제 권한을 구체적으로 나눠야 합니다.

자주 하는 오해

로그인했으면 권한 확인도 끝난다

로그인은 누구인지 확인하는 단계입니다. 데이터와 기능을 요청할 때마다 그 사용자가 해당 행동을 할 수 있는지 별도로 확인해야 합니다.

관리자 버튼을 화면에서 숨기면 안전하다

화면은 직접 조작될 수 있으므로 서버와 데이터 접근 단계에서 권한을 검사해야 합니다.

관리자는 한 가지 최고 권한이면 된다

조회, 상담, 승인, 정산과 계정 관리처럼 업무별 최소 권한을 나누고 최고 권한 사용을 제한하는 편이 안전합니다.

우리 서비스에 적용할 때 확인하세요

  1. 1어떤 방식으로 사용자를 확인하고 계정을 복구하나요?
  2. 2고객·파트너·직원·관리자별로 볼 수 있는 데이터가 무엇인가요?
  3. 3조회·수정·승인·삭제 권한이 기능별로 나뉘어 있나요?
  4. 4화면뿐 아니라 서버와 데이터에서도 권한을 확인하나요?
  5. 5중요 작업 기록과 퇴사자·외부 담당자 권한 회수 절차가 있나요?

공식 참고

서비스 기준은 공식 문서에서 다시 확인하세요

다음 자료

이해한 내용을 바로 적용해보세요

인증 기능을 제공할 수 있는 Firebase, 서버에서 권한을 처리하는 백엔드와 역할별 권한을 구체화한 보안 가이드를 함께 확인하세요.

로그인 방식과 함께 역할별 데이터·행동 권한을 표로 정리하세요

누가 어떤 정보를 보고 무엇을 변경·승인할 수 있는지 구분해야 화면과 서버가 같은 기준으로 접근을 통제할 수 있습니다.