웹을 통해 데이터를 주고받는 업무를 진행할 경우, 보안상의 문제가 발생하기 쉽다.
Security Service는 웹을 통한 서비스 이용 시 발생할 수 있는 다양한 보안상의 취약점들을 사전에 인지하고 대응함으로써, 서비스의 안정성을 확보한다.
Security Service는 사용자 정보를 DB에서 관리하여 인증을 거쳐야만 접근할 수 있는 Authentication과 사용자 권한 정보를 계층화 시켜서 화면 및 페이지, 또는 메소드에 접근할 수 있는 Authorization이 포함된다.
Server Security Service는 Spring Framework의 Spring Security를 확장하여 구현하였으며 사용자 인증정보 및 권한정보를 DB에서 관리하고 Spring Security의 UserDetails 인터페이스를 확장하여 세션정보를 담을 수 있다.
Server Security의 주요기능은 다음과 같다.
자원(url, method 등) 접근 제한
사용자 인증 확인
미인증시 인증확인 요청
계층적 권한 설정 및 사용자 권한 확인
Spring Security 는 엔터프라이즈 어플리케이션을 위한 인증(Authentication), 권한 처리(Authorization) 서비스를 제공하는 강력하고 유연한 보안 솔루션이다.
Servlet Filter 와 Java AOP 를 통하여 보안을 강제하며 Spring의 IoC 의 lifecycle 기반으로 동작한다.
authentication, Web
URL authorization, Method 호출 authorization, 도메인 객체 기반의 security 처리, 채널 보안(https 강제) 등의 주요 기능을 제공한다.
Web request 보안에 더하여 Service Layer 및 인스턴스 수준의 보안 제공으로 Layering issue 해결 및 웹 클라이언트 외의 다양한 rich 클라이언트 / 웹 서비스에 대한 보안 제어를 지원한다.
재사용성, 이식성, 코드 품질, 레퍼런스 (정부,은행,대학,기업 등 많은 business field), 다양한 타 프레임워크를 지원하며 community가 활성화 되어있다.
RDB 기반의 인증 또는 상용 SSO 연계
사용자 정보의 쉽고 빠른 참조를 위한 session 사용
부서, 사용자 및 메뉴/화면/권한 관리 - 개발자가 아닌 최종 사용자가
GUI 기반 관리 기능을 통해 작업하기 원함
계층 구조의 부서관리, 사용자 관리, 권한 복제, 권한 상속, 프로젝트 업무 규모에 따른 방대한 사용자/역할 데이터 관리 필요
Portal solution / X-internet 도입 등 - 사용자관리/메뉴-권한 처리에 대한 유연한 통합(integration) 필요
부서/사용자/메뉴/화면/권한처리 등 각 프로젝트별 요구사항이 유사하면서도 달라 중복개발의 위험성 - 일반 업무보다 난이도가 높은 공통 업무 성격. 표준화, 손쉬운 customizing, 유연한 확장이 필요
이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.