SOFTMOA TECHNOLOGY

퇴사자 계정과 SaaS 권한 회수 시스템 구축 방법

소프트모아가 정리한 기술 기록입니다.

Contents
작성일 2026. 09. 30.

인사 화면에서 퇴사 처리를 끝냈어도 메일, VPN, 외부 업무 서비스의 계정 정리가 남을 수 있습니다. 퇴사자 권한 회수 시스템은 사번에 연결된 계정을 모으고, 승인된 시각에 차단 작업을 배분한 뒤 실제 처리 상태까지 확인하도록 구축해야 합니다. 퇴사 등록과 접근 차단 완료를 같은 체크박스로 관리하지 않는 것이 출발점입니다.

먼저 정할 것은 계정 삭제가 아니라 차단 시각

아래는 구축 범위를 설명하기 위한 가상 업무 설계입니다. 인사 담당자는 퇴사 등록 화면에 사번, 마지막 근무일, 접근 차단 시각, 소속 부서, 업무 인수자를 입력합니다. 날짜만 받지 않고 시간대까지 지정합니다. 예를 들어 차단 시각이 2026년 10월 1일 오전 9시라면 화면에 '2026-10-01 09:00, Asia/Seoul'로 표시하고 서버에는 시간대가 포함된 시각을 저장합니다. 오후까지 근무해야 하는 사람을 자정에 막는 오류를 줄이기 위한 구분입니다.

IT 담당자는 사번으로 계정 목록을 확인합니다. 이름이 같은 직원이나 이메일 주소 변경을 고려해 외부 서비스의 고유 사용자 ID도 연결합니다. 대상 목록에는 시스템명, 개인 계정 여부, 회수할 권한, 처리 담당자, 자동 연동 가능 여부를 둡니다. 부서장이 쓰는 서비스 목록과 실제 계정 목록이 다르면 승인 전에 누락을 확인하도록 합니다.

작업 화면에는 요청과 검증을 따로 남깁니다

인사 담당자가 퇴사 사실과 시각을 확정하면 권한 있는 승인자가 대상 계정을 검토합니다. 시스템은 서비스마다 '로그인 차단', '세션 종료', '그룹 권한 제거'처럼 필요한 작업을 생성합니다. 작업별 담당자와 기한을 보여주고, 예약 시각에 실행하기 직전에도 승인 상태와 대상 ID를 다시 확인합니다. 인사 담당자에게 외부 서비스의 관리자 비밀번호를 요구하는 구조는 피합니다.

  • REQUESTED는 처리 요청을 보낸 상태입니다. API가 요청을 접수했다는 응답만으로 VERIFIED로 바꾸지 않습니다.
  • FAILED에는 오류 코드, 마지막 시도 시각, 담당자를 남깁니다. 권한 부족이나 API 제한으로 실패한 작업은 미완료 목록에서 사라지지 않게 합니다.
  • VERIFIED는 해당 작업의 확인 기준을 충족한 상태입니다. 공급자 상태를 재조회한 결과와 검증 시각을 기록하고, 수동 처리라면 확인자와 증빙을 연결합니다.

로그인 차단과 기존 세션 종료의 반영 시간도 분리해야 합니다. Microsoft 365 공식 안내는 계정 차단 반영에 최대 24시간이 걸릴 수 있고, 세션 종료 후 재로그인 요구도 토큰 잔여 시간이나 화면 이동에 따라 달라질 수 있다고 설명합니다.[1] 따라서 '계정이 비활성으로 조회됨'과 '기존 접근이 종료됨'을 서로 다른 확인 항목으로 두고, 즉시 차단이 필요한 경우에는 해당 공급자의 긴급 절차를 적용하도록 설계합니다.

기한이 지났는데 검증되지 않은 작업 찾기

다음은 SQLite에서 그대로 실행할 수 있는 읽기 전용 조회 예제입니다.[3] 실제 직원이나 계정이 아닌 샘플 3건을 사용합니다. 모든 시각을 한국시간의 같은 문자열 형식으로 맞췄으며, 점검 시각은 2026년 10월 1일 오전 9시 10분으로 고정했습니다. 운영 데이터에는 이런 문자열 비교를 그대로 옮기지 말고 UTC 기준 시각과 DB의 시간 자료형을 사용합니다.

WITH tasks(employee_id, app, action, due_at, status, verified_at) AS (
  VALUES
  ('E-001', 'VPN', 'BLOCK_LOGIN',
   '2026-10-01 09:00:00', 'VERIFIED', '2026-10-01 09:01:00'),
  ('E-001', 'WIKI', 'REMOVE_GROUP',
   '2026-10-01 09:00:00', 'REQUESTED', NULL),
  ('E-001', 'CRM', 'BLOCK_LOGIN',
   '2026-10-01 09:00:00', 'FAILED', NULL)
)
SELECT employee_id, app, action, status
FROM tasks
WHERE due_at <= '2026-10-01 09:10:00'
  AND (COALESCE(status, '') <> 'VERIFIED'
       OR verified_at IS NULL)
ORDER BY app;

샘플 결과에는 CRM의 FAILED 작업과 WIKI의 REQUESTED 작업이 나옵니다. VPN은 검증 시각이 있어 제외됩니다. VERIFIED라고 적었더라도 검증 시각이 비어 있으면 미완료로 잡는 조건입니다. 이 조회는 지연된 작업을 찾는 예제일 뿐 외부 계정을 차단하지 않습니다. 기록된 검증 결과가 사실인지까지 증명하는 쿼리도 아닙니다.

자료 인계 때문에 로그인 권한을 남겨두지 않으려면

메일과 문서 인계는 접근 회수와 별도 작업으로 배분합니다. Microsoft 365의 퇴사자 정리 안내도 접근 차단, 메일 보존, 자료 접근권 인계, 라이선스 제거와 계정 삭제를 구분합니다.[2] 구축 화면에서는 차단 작업을 인계 완료까지 무작정 보류하지 않고, 인수자에게 필요한 자료만 넘기는 절차를 두어야 합니다. 보존 기간과 삭제 시점은 회사가 정한 정책 및 각 서비스의 조건에 맞춰 승인받습니다.

자동 연동이 없는 서비스는 수동 작업함으로 보냅니다. '연동 없음'을 '권한 없음'으로 표시해서는 안 됩니다. 공용 계정은 해당 직원만 비활성화할 수 없으므로 개인 계정 전환이나 승인된 비밀값 교체 작업을 연결합니다. 비밀번호와 토큰 자체는 작업 이력에 저장하지 않습니다. 퇴사가 취소되면 아직 실행하지 않은 예약은 취소하고, 이미 회수한 권한은 별도 재승인 없이 되살리지 않도록 합니다.

관리자는 퇴사자별 미검증 작업, 기한 초과, 자료 인계 상태를 조회합니다. 완료 판정은 등록된 대상 목록과 필요한 작업이 모두 확인됐을 때 내리되, 목록에 없는 서비스까지 차단했다고 표현하지 않습니다. 처음에는 실제 사용하는 서비스의 계정 목록과 확인 기준부터 정리하고, 이후 연동 범위를 늘리는 편이 구축 요구사항을 구체화하기 좋습니다.

공식 확인 자료

소프트모아의 서비스는 softmoa.com에서 확인할 수 있습니다.

소프트모아는 해당 시스템을 구축합니다. 문의하기

Share this

Information

Have a questions?

견적 및 기술문의

mobile : 010-7931-4813

Contact Form