Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안에서 SOA(서비스 지향 아키텍처)의 프라이버시 측면 완벽 이해

SOA(서비스 지향 아키텍처)란 무엇인가?

서비스 지향 아키텍처(Service-Oriented Architecture, SOA)는 공개되고 검색 가능한 인터페이스를 통해 애플리케이션이나 다른 서비스에 기능을 제공하도록 소프트웨어를 설계하는 접근 방식입니다. 각 서비스는 느슨하게 결합된(일반적으로 비동기식) 메시지 기반 통신 모델을 통해 개별적인 비즈니스 기능 단위를 제공합니다.

초기 아키텍처 결정의 중요성

복잡한 구조를 포함한 고품질 소프트웨어 솔루션을 설계하려면, 잘 정립된 설계 방법론과 구조적 설계, 디자인 스타일이 뒷받침하는 초기 아키텍처 결정이 필수적입니다. 이러한 설계 패턴은 확장성, 신뢰성, 보안과 같은 서비스 전반의 공통 관심사를 다룹니다.

서비스 지향 아키텍처의 주요 프라이버시·보안 측면

1. 아키텍처 모델과 구현 모델의 분리

IT 전문가들이 웹 서비스를 활용해 애플리케이션을 구축할 때, 아키텍처 모델(SOA)과 실행 모델(웹 서비스)을 동시에 익혀야 하는 상황에 자주 직면합니다.

이때 모델 기반 아키텍처(Model Driven Architecture) 방식을 활용하면, 애플리케이션의 구조와 동작을 정의하는 플랫폼 독립적 모델을 실제 구현에 사용되는 기술과 플랫폼으로부터 신중하게 분리할 수 있습니다.

시스템 아키텍트는 도메인 특화 언어(DSL) 또는 UML(Unified Modeling Language) 프로파일을 사용해 서비스 도메인의 문제를 모델링합니다. 플랫폼과 언어 관련 요소를 모델에서 배제해야 한다는 원칙은 구현에 종속적인 보안 문제 역시 모델로부터 분리해야 함을 의미합니다.

2. 보안 관심사의 재검토

RosettaNet B2B 표준 계열을 개발한 팀도 유사한 우려를 인식하고 이를 해결하기 위한 작업을 시작했습니다. 핵심 아이디어는 비즈니스 아키텍트, 즉 RosettaNet 팀이 데이터와 처리 요구사항을 수집했던 주요 이해관계자들에게 단순화된 선택지를 제공하는 것이었습니다.

이들 비즈니스 아키텍트는 보안 문제의 기술적 세부 사항에는 정통하지 않았지만, 어떤 정보는 보안 조치 없이 전송해도 되는지, 반대로 어떤 정보는 반드시 안전한 방식으로 전달해야 하는지 명확히 구분할 수 있었습니다.

3. 보안 문제의 일반화

일반적인 소프트웨어 보안 이슈를 다룬 문헌들이 존재하며, 특정 보안 구현 기술을 다룬 자료는 더욱 방대합니다. 그러나 더 중요한 것은 보안 관련 기술 구현을 이끄는 근본적인 목적을 파악하는 것입니다. 특히, 누구나 이해하기 쉽고 특정 기술 구현을 식별하는 데 활용할 수 있는 일련의 서술적 원시 의도(primitive intents)를 정의하는 것이 효과적입니다.

권한 부여(Authorization)의 두 가지 핵심 접근 방식

구현 관점에서 권한 부여는 크게 두 가지 방식으로 나눌 수 있습니다.

  • 개별 당사자에 대한 권한 부여 — 각 당사자에게 기능별로 명시적인 접근 권한 집합을 직접 할당하는 방식입니다.
  • 역할(Role) 기반 권한 부여 — 각 애플리케이션에 대해 여러 역할을 정의하고, 개별 당사자가 아닌 역할에 접근 권한을 할당합니다. 당사자가 인증되면 자격 증명에 포함된 역할 정보를 바탕으로 특정 기능에 대한 접근이 허용되는지 판단합니다.

SOA 환경에서 프라이버시와 보안을 효과적으로 확보하려면, 아키텍처 수준의 추상화와 구현 수준의 보안 기술을 명확히 구분하고, 역할 기반 접근 제어(RBAC)와 같은 체계적인 권한 관리 전략을 함께 적용하는 것이 바람직합니다.