Spring Security 5 OAuth 정리 (클라에서 서버까지)
- SpringSecurity5 OAuth
- SpringSecurity5 이전의 AOuth
- OAuth Client 최소설정 및 주의할 점
- OAuth Server 최소설정 및 주의할 점
SpringSecurity 란
- 스프링프레임워크 기반 인증(Authn), 인가(Authz) 프레임워크
- 스프링 기반 애플리케이션에서는 사실상 표준 (de-facto standard)
Spring Security 5
- 스프링부터 2.0부터
- 스프링프레임워크 5.0 기반
- 새로운 기능: OAuth 2.0 Login 등
Spring Security 5 OAuth
- http.oauth2.Login() (대표적)
- 한방 사용이 가능해짐 (편리해짐)
Spring Security 5 이전의 OAuth
- Spring Security 4 까지 - Spring Security OAuth 별도 모듈 존재
- OAuth 1.0, OAuth 2.0
- OAuth Client, Resource Source, Authorization Server 지원
- 다 필요 시 각각 구현해 주어야했음
OAuth 2.0 Roles
- Resource Owner
- Resource Server
- Client
- Authorization Server
Spring Security OAuth 불편한점
- 기존 form login 이나 지금의 oath login 과는 코딩스타일이 다르고 확장포인트가 불명확함
- 명시적으로 OAuth 기능을 제공하지 않음
Spring Boot OAuth Client 최소설정
- Common OAuth2 Provider: google, GitHub, Facebook, okta
- Application.properties 에서 id 와 secret 설정으로 구현 가능
- Uncommon provider
- Client registration 코드 작성 등록
- 최소설정 사용 시, OAuth2AuthorizedClientService bean 기본 구현이 in memory.
- 실제 환경은 별도 구현 필요함 (서버 여러 대 이거나 하면 문제)
- Jdbc 등으로
- OAuth Client 주요 확장 포인트
- authorizationEndpoint, redirectionEndpoint, userInfoEndpoint
Spring Boot OAuth Server 최소설정
- SpringSecurity5 + Spring-authorization-server 라이브러리 추가 사용
- 아직 userEndpoint 구현 안됨. (곧 릴리즈 될 예정임)
Reference
'Programming' 카테고리의 다른 글
Linux 명령어: find (0) | 2021.12.22 |
---|---|
프로세스의 메모리 주소 공간 (Memory address space of Process) (0) | 2021.12.19 |
Oracle to MySQL 변환 시 고려사항 (RDBMS) (0) | 2021.12.15 |
[LeetCode] 1742. Maximum Number of Balls in a Box (TDD, 코테, 릿코드, tech interview) (0) | 2021.12.11 |
[LeetCode] 2085. Count common words with one occurrence (코딩테스트, 테스트케이스 포함, 릿코드, tech interview) (0) | 2021.12.04 |