Liberty:보안의 빠른 개요
Liberty의 기본 보안 워크플로우를 이해하기 위해 일부 공통 보안 용어가 예와 함께 자세히 설명되어 있습니다.
보안 주요 용어
- 인증
- 인증은 사용자의 ID를 확인합니다. 가장 공통된 양식의 인증은 사용자 이름과 비밀번호로, 웹 애플리케이션의 양식 로그인 또는 기본 인증을 통한 것이 있습니다. 사용자가 인증되면, 요청 소스가 런타임에 Subject 오브젝트로 표시됩니다.
- 권한 부여
- 권한 부여는 사용자가 시스템 내에서 특정 역할에 대한 액세스 권한을 가지고 있는지 여부를 판별합니다. Java™ EE 모델은 액세스가 허락되는지 여부를 판별하기 위해 제목, 역할 및 역할 맵핑을 사용합니다.
- 역할
- 역할은 Java EE 애플리케이션에서 정의됩니다. 일부 역할(예: 관리자 역할)은 시스템에서 사전에 정의됩니다. 기타 역할은 애플리케이션 개발자가 정의합니다. Java EE에서, 주제는 애플리케이션에서 수행하는 역할을 기준으로 역할에 대한 액세스를 부여하거나 거부합니다.
- 주제
- 주제는 일반 용어와 Java 오브젝트 javax.security.auth.Subject를 모두 지칭합니다. 일반적으로, 용어 주제는 시스템에서의 사용자 및 시스템 프로세스 자체와 같이 시스템 내의 활성 엔티티를 의미합니다.
보안 워크플로우 예제
다음 예제에서는 사용자가 자원에 대한 액세스를 요청할 때의 보안 적용 방식을 보여 줍니다. 예를 들어, 사용자 Bob이 서블릿 myWebApp에 액세스하기를 원할 수 있습니다. Liberty에서 보안 시작하기에서 코드 샘플을 참조하십시오.
서블릿 myWebApp에 액세스하려면
다음 조건이 충족되어야 합니다.
Bob이 시스템에 로그인할 수 없거나,
Bob이 testing 역할에 없는 경우,
서블릿 myWebApp에 대한 액세스가 거부됩니다.- 서블릿이 보호되기 때문에 Bob은 시스템에 로그인할 수 있어야 합니다.
- 서블릿이 배치 디스크립터에서 auth-constraint 요소 사용을 제한받기 때문에 Bob은 testing 역할에 있어야 합니다.
Alice가 유효한 사용자이기 때문에 다른 사용자 Alice가 시스템에 로그인할 수 있습니다. 그러나 Alice는 testing 역할에 없습니다. HTTP 403 오류(액세스 거부됨/금지됨)는 Alice가 로그인할 때 표시됩니다.