본문 바로가기

JAVA/Spring Security

스프링 시큐리티 Basic 인증

반응형

기본 HTTP Basic 인증

스프링 시큐리티가 적용된 기본 프로젝트 구성

$ curl  http://localhost:8080/hello  | jq
{
  "timestamp": "2022-10-13T13:09:15.808+00:00",
  "status": 401,
  "error": "Unauthorized",
  "message": "",
  "path": "/hello"
}
  • 스프링 시큐리티가 적용되어 인증이 필요하다.
  • 스프링 시큐리티를 기본으로 되어있는경우, 스프링 초기에 패스워드가 콘솔로그에 나타난다.
$ curl -u user:a9f19c33-17d9-47e8-9993-94809545cff6 http://localhost:8080/hello 
Hello!
  • username : user
  • password : a9f19c33-17d9-47e8-9993-94809545cff6 (콘솔확인)

HTTP Basic 인증을 위한 엔드포인트 호출 방법

  • <username>:<password> : 문자열을 base64 인코딩
$echo -n user:a9f19c33-17d9-47e8-9993-94809545cff6 | base64  
dXNlcjphOWYxOWMzMy0xN2Q5LTQ3ZTgtOTk5My05NDgwOTU0NWNmZjY=

Base64 인코딩 문자열을 Authorization 헤더의 값으로 사용

$ curl -H "Authorization: Basic dXNlcjphOWYxOWMzMy0xN2Q5LTQ3ZTgtOTk5My05NDgwOTU0NWNmZjY=" [http://localhost:8080/hello](http://localhost:8080/hello)  
Hello!
  • HTTP Basic 인증은 자격 증명의 기밀성을 보장하지 않음.
  • Base64는 전송의 편의를 위한 인코딩 방법이고 암호화나 해싱방법이 아니므로 전송 중에 자격 증명을 가로 챌수 있음
  • HTTPS를 함께 이용할때가 아니면 HTTP Basic 인증은 이용 안함.
반응형

'JAVA > Spring Security' 카테고리의 다른 글

스프링 시큐리티 Basic 인증 재구성  (0) 2022.10.20