APP DEVELOPMENT TERM
인증·인가
누구인지 확인하고 할 수 있는 일을 제한하는 과정
인증은 로그인처럼 사용자가 누구인지 확인하는 과정이고, 인가는 확인된 사용자가 어떤 정보와 기능에 접근할 수 있는지 판단하는 과정입니다.
30초 이해
로그인에 성공했다고 모든 정보와 기능을 사용할 수 있는 것은 아닙니다
이메일, 휴대폰, 소셜 계정이나 생체 정보로 사용자를 확인하는 것이 인증입니다. 확인된 사용자가 자신의 예약만 볼 수 있는지, 강사가 수강생 명단을 볼 수 있는지, 관리자만 환불을 승인할 수 있는지를 판단하는 것이 인가 또는 권한 확인입니다.
화면에서 버튼을 숨기는 것만으로 권한을 지킬 수는 없습니다. 사용자가 주소나 요청을 직접 바꿔도 다른 사람의 데이터에 접근하지 못하도록 서버와 데이터 계층에서 매 요청마다 권한을 확인해야 합니다.
한 장으로 이해
로그인부터 기능 실행까지 인증과 인가가 작동하는 과정
사용자 신원을 확인하고 로그인 상태를 유지한 뒤 요청한 정보와 행동이 허용되는지 서버가 다시 판단합니다.
- 01
신원 확인
이메일·휴대폰·소셜 계정 등으로 누구인지 확인합니다.
- 02
로그인 상태
세션이나 토큰으로 확인된 사용자의 상태를 유지합니다.
- 03
권한 판단
역할, 소유 관계와 현재 상태에 따라 요청을 허용합니다.
- 04
기록·차단
허용된 작업을 처리하고 중요한 행동과 거부 결과를 남깁니다.
인증은 입구에서 신분을 확인하는 일이고 인가는 안에서 각 방과 행동에 들어갈 수 있는지 계속 확인하는 일입니다.
언제 사용하는 개념인가요?
회원가입·로그인을 설계할 때
사용자를 확인할 방식, 계정 복구, 탈퇴와 로그인 상태 유지 기준을 정합니다.
역할별 기능을 나눌 때
고객·파트너·직원·관리자가 볼 수 있는 정보와 실행 가능한 행동을 구분합니다.
중요 작업을 보호할 때
결제·환불·개인정보·관리자 변경처럼 위험한 작업의 재확인과 기록을 설계합니다.
왜 중요한가요?
다른 사람의 데이터 노출을 막습니다
사용자 번호나 주소가 바뀌어도 요청자가 해당 데이터의 주체인지 서버에서 확인할 수 있습니다.
역할별 업무 범위를 분명히 합니다
조회·수정·승인·삭제 권한을 나눠 실수와 권한 남용 위험을 줄입니다.
담당자 변경과 퇴사에 대응합니다
사람별 계정과 권한을 관리하면 공유 계정 없이 접근을 추가하고 회수할 수 있습니다.
실제 상황 예시
클래스 예약 서비스의 인증과 인가를 설계한다면
모두 로그인하더라도 수강생, 강사와 운영 관리자가 할 수 있는 일은 달라야 합니다.
역할별 허용 예시
- 수강생은 본인의 예약·결제만 조회
- 강사는 담당 수업과 출석만 관리
- 상담 직원은 필요한 고객 정보만 조회
- 관리자는 승인·환불·권한 변경을 수행
반드시 함께 확인할 보호 기준
- 비밀번호·휴대폰 변경과 계정 복구
- 로그인 만료·로그아웃·분실 기기 처리
- 중요 작업 재확인과 변경 기록
- 퇴사자·외부 개발자 권한 회수
역할 이름만 정하지 말고 데이터 종류와 행동별로 조회·등록·수정·승인·삭제 권한을 구체적으로 나눠야 합니다.
자주 하는 오해
“로그인했으면 권한 확인도 끝난다”
로그인은 누구인지 확인하는 단계입니다. 데이터와 기능을 요청할 때마다 그 사용자가 해당 행동을 할 수 있는지 별도로 확인해야 합니다.
“관리자 버튼을 화면에서 숨기면 안전하다”
화면은 직접 조작될 수 있으므로 서버와 데이터 접근 단계에서 권한을 검사해야 합니다.
“관리자는 한 가지 최고 권한이면 된다”
조회, 상담, 승인, 정산과 계정 관리처럼 업무별 최소 권한을 나누고 최고 권한 사용을 제한하는 편이 안전합니다.
우리 서비스에 적용할 때 확인하세요
- 1어떤 방식으로 사용자를 확인하고 계정을 복구하나요?
- 2고객·파트너·직원·관리자별로 볼 수 있는 데이터가 무엇인가요?
- 3조회·수정·승인·삭제 권한이 기능별로 나뉘어 있나요?
- 4화면뿐 아니라 서버와 데이터에서도 권한을 확인하나요?
- 5중요 작업 기록과 퇴사자·외부 담당자 권한 회수 절차가 있나요?
공식 참고
서비스 기준은 공식 문서에서 다시 확인하세요
다음 자료
이해한 내용을 바로 적용해보세요
인증 기능을 제공할 수 있는 Firebase, 서버에서 권한을 처리하는 백엔드와 역할별 권한을 구체화한 보안 가이드를 함께 확인하세요.
로그인 방식과 함께 역할별 데이터·행동 권한을 표로 정리하세요
누가 어떤 정보를 보고 무엇을 변경·승인할 수 있는지 구분해야 화면과 서버가 같은 기준으로 접근을 통제할 수 있습니다.
