서울아산병원 API 인증과 기존 계정 인증을 함께 지원하면서, 영상 서비스의 접근 권한과 검사별 업무 권한을 연결했습니다.
<aside>
병원 인증과 검사별 권한을 연결해 운영 서비스에 적용했습니다.
개발 시점: 2023.02 · 영상 서비스 전체 프로젝트는 2021.12 시작
기술: Java, Spring Security, MyBatis, MySQL
AuthenticationProvider에서 EAI 사용 설정과 지정 관리자 계정 여부에 따라 인증 경로를 나눴습니다. EAI를 사용하는 일반 계정은 병원 API로 인증하고, EAI 미사용 또는 지정 관리자 계정은 DB·BCrypt 인증을 사용하도록 구성했습니다.
두 인증 경로의 성공 결과에 PACS DB에서 관리하는 사용자 권한을 연결했습니다. 외부 API의 인증 결과만으로 영상 서비스의 모든 접근 권한을 결정하지 않도록 역할을 나눴습니다.
| 기능 | 직접 개발한 범위 |
|---|---|
| 로그인 | EAI 사용 설정·계정 구분에 따른 인증 분기 |
| 검사 열람 | 병원 API를 통한 검사 열람 권한 확인 |
| 임시 권한 | 임시 열람 권한 신청 연동 |
| 다운로드 | 다운로드 사유 조회·저장 연동 |
인증에 성공하는 것과 특정 검사를 열람하거나 다운로드할 수 있는 것은 별개의 업무 조건으로 다뤘습니다.
사용자·그룹·권한을 DB로 관리하고 URL과 HTTP 메서드별 접근 정책을 구성했습니다. 관리자가 정책을 변경하면 메모리에 적재된 정책을 갱신해 서비스 재시작 없이 반영하도록 했습니다.
재시작 없이 갱신하는 대상은 URL·HTTP 메서드별 접근 정책입니다.
병원 계정과 기존 계정의 로그인 경로를 함께 지원하고, 검사 열람·임시 권한 신청·다운로드 사유 연동을 운영 서비스에 적용했습니다. 로그인 인증, 서비스 접근 정책, 검사별 업무 권한을 각각 관리하도록 구성했습니다.