OAuth2 소개
토큰기반의 보안 인증과 인가 프레임워크로 다음 4개의 컴포넌트로 구성된다.
1. 보호자원 : 보호하려는 자원이며 적절한 권한을 부여받은 인증된 사용자만 엑세스 할 수 있다.
2. 자원 소유자 : 서비스를 호출할 수 있는 애플리케이션 및 서비스에 접근 할 수 있는 사용자 그리고 서비스에서 수행할 수 있는 작업을 정의한다.
3. 애플리케이션 : 사용자를 대신해 서비스를 호출할 애플리케이션이다.
4. OAuth2 인증 서버 : 애플리케이션과 소비되는 서비스 사이의 중계자다.
토큰 생성 엔드포인트에 전달되는 모든 매개변수가 HTTP양식 매개변수라고 기대한다. 매개변수로 다음 서비스 정보를 전달해야 한다.
그랜트타입 : 실행할 OAuth2그랜트 타입이다.
스코프 : 애플리케이션을 위한 범위로 애플리케이션을 등록할 때 두 스코프 중 한 값이 전달되어야 한다.
사용자이름 : 로그인하는 사용자 이름이다.
패스워드 : 로그인하는 사용자 패스워드다.
OAuth2를 사용한 조직서비스 보호
보호자원을 설정하기 위해 다음 작업을 수행해야 한다.
- 스프링 시큐리티와 OAuth2 jar파일을 보호하려는 서비스에 추가한다.
- OAuth2 인증 서비스를 향하도록 서비스를 구성한다.
- 서비스에 접근할 수 있는 대상을 정의한다.
실제 운영을 위해 마이크로서비스를 빌드할 때는 다음 지침에 따라 마이크로서비스를 구축해야 한다.
- 모든 서비스 통신에 HTTPS/SSL 을 사용한다.
- 모든 서비스 호출은 API 게이트웨이를 통과해야 한다.
- 공개 API와 비공개 API영역을 정한다.
- 불필요한 네트워크 포트를 차단해 마이크로서비스의 공격범위를 제한한다.
어노테이션 :
@EnableAuthorizationServer : 이 서비스가 OAuth2 서비스가 될 것이라고 스프링 클라우드에 알린다.
@EnableResourceServer : 해당 마이크로서비스를 보호자원으로 지정하는데 사용한다.
@EnableAuth2SSO : 자동으로 OAuth2 액세스 토큰을 하위로 전파하고 OAuth2 서비스 요청을 인가할 수 있다.
'Programming > MSA' 카테고리의 다른 글
MSA에 대한 기본개념 - 1. Legacy에서 MSA로 진화하는 여정 (0) | 2022.06.08 |
---|---|
(아키텍처) 현대적 어플리케이션 구축을 위한 Outer아키텍처 시 고려할 점 (0) | 2022.03.16 |
[완독정리]스프링 마이크로서비스 코딩 공작소 9. 스프링 클라우드 슬루스와 집킨을 이용한 분산 추적-길벗 (0) | 2021.03.07 |
[완독정리]스프링 마이크로서비스 코딩 공작소 8.메시지와 EDA, 마이크로서비스의 사례-길벗 (0) | 2021.03.06 |
[완독정리]스프링 마이크로서비스 코딩 공작소 5.나쁜 상황에 대비한 스프링 클라우드와 넷플릭스 히스트릭스의 클라이언트 회복성 패턴-길벗 (0) | 2021.03.04 |