Spring Security in Action

이 장에서는 OAuth 2와 OpenID Connect 프로토콜에 대한 개요와 이들이 제공하는 인증 및 인가 시스템의 주요 요소를 다룹니다. 이들 프로토콜은 보안과 원활한 인증을 제공하는 산업 표준으로, 애플리케이션과 시스템 간 인증 책임을 분리하여 인증 과정을 간소화하고 보안을 강화합니다.핵심 개념:OAuth 2와 OpenID ConnectOAuth 2는 사용자 인증과 권한 부여를 위한 표준 프로토콜로, 인증 책임을 별도의 인증 서버에 위임하여 여러 앱에서 인증을 공유할 수 있게 합니다.OpenID Connect는 OAuth 2의 확장이며, 사용자의 ID 정보를 인증할 수 있도록 지원합니다. 이 프로토콜을 사용하면, 다른 앱에서 사용자가 이미 가진 자격 증명으로 로그인할 수 있도록 해 줍니다.여러 앱에..
이 장에서는 메소드의 매개변수와 반환값을 필터링하는 두 가지 주요 기술을 다룹니다: **사전 필터링(Prefiltering)**과 **사후 필터링(Postfiltering)**입니다.1. 사전 필터링(Prefiltering)사전 필터링은 메소드가 호출되기 전에 메소드의 매개변수 값이 필터링되는 방식입니다. 주로 메소드가 배열이나 컬렉션을 매개변수로 받을 때 사용됩니다.프레임워크는 정의된 규칙에 따라 매개변수 값들을 검토하고, 조건을 만족하지 않는 값들은 필터링하여 메소드에 전달합니다.예를 들어, 특정 사용자 그룹만 요청을 허용하는 조건을 지정할 수 있습니다. 이때, 필터링은 메소드가 실제로 호출되기 전에 이루어집니다.2. 사후 필터링(Postfiltering)사후 필터링은 메소드 호출 후 반환된 값에 필..
이 장에서는 스프링 애플리케이션에서 메소드 보안을 구성하는 방법을 다룹니다. 메소드 보안은 주로 권한 부여를 엔드포인트 수준에서 벗어나 메소드 레벨에서 적용하는 방법을 제공합니다. 이를 통해 애플리케이션의 다양한 계층에서 세밀하게 권한 부여 규칙을 설정할 수 있습니다.다룰 내용:스프링 애플리케이션에서의 메소드 보안:메소드 보안은 웹 애플리케이션 뿐만 아니라, 웹이 아닌 애플리케이션에서도 유용하게 적용될 수 있습니다.메소드 레벨에서의 권한 부여는 애플리케이션의 유연성을 높이고, 다양한 계층에서 특정한 보안 규칙을 적용할 수 있게 해줍니다.Authorities, roles 및 permissions에 기반한 메소드 사전 승인:메소드가 실행되기 전에 해당 메소드에 대한 접근을 허용할지 여부를 결정합니다.주로 @..
이 장에서는 다음을 다룹니다.교차 출처(Cross-Origin) 리소스 공유(CORS)란 무엇인가?교차 출처 리소스 공유 구성 적용하기이 장에서는 교차 출처 리소스 공유(CORS)에 대해 논의하고 Spring Security와 함께 적용하는 방법을 다룹니다. 먼저, CORS란 무엇이며 왜 중요한지 알아봅니다. CORS가 필요한 이유는 웹 애플리케이션의 구조에서 비롯됩니다. 기본적으로, 브라우저는 사이트가 로드된 도메인 외의 다른 도메인에 대한 요청을 허용하지 않습니다. 예를 들어, example.com에서 사이트에 접근한 경우, 브라우저는 사이트가 api.example.com에 요청을 보내는 것을 허용하지 않습니다. 웹 개발을 하다 보면 다른 출처(origin)의 리소스를 사용해야 할 때가 있습니다. 여..
이 장에서 다룰 내용CSRF 공격 이해하기CSRF(Cross-Site Request Forgery) 공격은 사용자가 인증된 상태에서 의도하지 않은 요청을 다른 웹사이트로 보내는 공격입니다. 이 공격은 사용자의 브라우저에서 자동으로 실행되는 요청을 악용하여, 공격자가 사용자의 권한을 가로채거나 악용할 수 있게 합니다.사이트 간 요청 위조 보호 구현하기CSRF 공격을 방어하기 위해 Spring Security는 CSRF 보호 메커니즘을 기본적으로 활성화합니다. 이 보호 메커니즘은 요청에 CSRF 토큰을 포함시켜, 서버가 요청이 진짜 사용자의 의도에 의해 발생했는지 확인할 수 있도록 합니다.CSRF 보호 커스터마이징Spring Security에서는 기본적으로 CSRF 보호를 제공하지만, 다양한 시나리오에 맞게..
이 장에서는 요청에 대해 특정 권한 부여 제약 조건을 적용하는 방법에 대해 다룹니다. 프로덕션 환경에서는 모든 요청에 동일한 규칙을 적용하는 대신, 다양한 요청 그룹에 대해 맞춤형 접근 제어가 필요합니다. 예를 들어, 특정 사용자만 접근할 수 있는 엔드포인트가 있을 수 있고, 다른 엔드포인트는 모두 접근할 수 있도록 설정할 수 있습니다.주요 내용:Matcher 메소드:요청을 선택하여 권한을 부여하는 데 사용되는 matcher 메소드를 다룹니다.예를 들어, anyRequest()는 모든 요청을 의미하며, 이는 이전 장에서 이미 사용된 메소드입니다. 모든 요청에 동일한 규칙을 적용할 때 사용됩니다.path 별로 요청 선택:요청을 path에 따라 선택하는 방법을 설명합니다. 특정 경로에 대해 권한 부여를 설정..
이 장에서는 권한 부여(Authorization)에 대해 다루고 있으며, 이를 통해 인증된 사용자가 시스템의 리소스에 접근할 수 있는지 결정하는 방법을 설명합니다. 권한 부여는 인증 후에 발생하며, 인증된 사용자가 요청한 리소스에 접근할 권한이 있는지를 판단하는 과정입니다. 아래에서 중요한 개념과 단계들을 정리해 보겠습니다.주요 개념:권한 부여:사용자가 시스템에 로그인하여 인증을 받은 후, 해당 사용자가 특정 리소스에 접근할 수 있는지 판단하는 과정입니다. 이 과정은 애플리케이션에서 중요한 보안 요소로 작용합니다.권한 부여는 인증 이후에 이루어지며, 스프링 시큐리티에서는 인증을 통해 SecurityContext에 저장된 사용자 정보를 바탕으로 권한을 결정합니다.권한 필터:인증이 완료되면, 요청은 권한 부..
이번 장에서는 다음과 같은 내용을 다룹니다:필터 체인 작업하기사용자 정의 필터 정의하기Spring Security 필터 인터페이스 구현하기HTTP 필터와 필터 체인Spring Security에서 HTTP 필터는 HTTP 요청에 보안 관련 작업을 적용하는 중요한 역할을 합니다. 필터는 각각의 보안 기능을 담당하며, 요청이 서버로 들어올 때마다 순차적으로 필터 체인 내에서 처리됩니다. 각 필터는 특정한 작업을 수행한 후, 그 결과에 따라 다음 필터로 요청을 넘기거나, 필요에 따라 요청 처리를 중단하고 응답을 바로 반환할 수도 있습니다.예를 들어:인증 필터는 사용자의 신원을 확인하고 인증을 처리합니다.권한 부여 필터는 사용자가 요청한 작업을 수행할 권한이 있는지 확인합니다.CSRF 보호 필터는 CSRF 공격을..
GLaDiDos
'Spring Security in Action' 카테고리의 글 목록