안녕하세요, 저스티에요!
오늘의 블로그 내용은 OpenStack 서비스간 인증 및 권한 확인하는 프로세스에 대해서 작성할 예정입니다!
해당 내용은 회사 블로그를 작성하면서 함께 작성하게 된 내용입니다! :)
목차
1. X-Auth-Token과 X-Subject-Token은 무엇인가?
2. OpenStack 서비스간 인증 및 권한 프로세스
1. X-Auth-Token과 X-Subject-Token은 무엇인가?
OpenStack 서비스간 인증 및 자원 요청자 권한 확인을 위해서는 X-Auth-Token과 X-Subject-Token에 대한 개념을 알아야 합니다!
X-Auth-Token | - OpenStack 서비스(e.g. Nova, Glance 등)를 요청하기 위해 필요한 토큰 정보(e.g. 인스턴스 생성) Header 값입니다. - 해당 서비스는 X-Auth-Token을 받은 후 Keystone 서비스에 해당 인증 토큰을 확인합니다. - HTTP Header 값으로 OpenStack 서비스에게 전송합니다. |
X-Subject-Token | - Keystone에게 서비스 인증후 발급받게 되는 Header 값입니다. - 해당 Header 값을 활용하여 서비스를 요청하기 위해 사용됩니다. - X-Subject-Token은 X-Auth-Token으로 변경되어 값을 전송합니다. |
2. OpenStack 서비스간 인증 및 권한 프로세스
OpenStack 서비스간 인증 및 요청자에 대한 권한 확인 프로세스에 대해 알아보겠습니다!
아래 프로세스는 사용자 인증 및 인스턴스 생성(+이미지 정보 요청)을 한다는 가정하에 작성된 프로세스입니다.
- Horizon에서 Keystone에게 사용자 인증 정보를 통해 인증을 요청합니다.
- 사용자 인증이 성공하면 HTTP Header로 X-Subject-Token: Unscoped Token 형식으로 응답합니다.
- 2번에서 받은 Unscoped Token은 사용자의 권한 정보를 받기위해 Keystone에게 재요청합니다.
- 정상적인 사용자라면, HTTP Header로 X-Subject-Token: Scoped Token 형식으로 응답합니다.
- 사용자가 인스턴스 생성을 요청하여 Horizon에서 Nova로 생성 요청합니다. 이때 4번에서 발급받은 X-Subject-Token: Scoped Token을 X-Auth-Token 필드로 담아 Nova에게 전송합니다.
- X-Subject-Token: Scoped Token -> X-Auth-Token: Scoped Token
- Nova에게 요청이 들어오면 Nova는 Keystone에게 Nova 인증 정보를 통해 인증을 요청합니다.
- 서비스 인증이 성공하면 HTTP Header로 X-Subject-Token: Scoped Token 형식으로 응답합니다.
- 응답을 받게 되면 Keystone에게 인스턴스 생성에 대한 권한 확인에 대해 요청합니다. 이때 필요한 HTTP Header 필드는 X-Auth-Token과 X-Subject-Token입니다.
- X-Auth-Token: Scoped Token으로, 7번 Nova 서비스 인증 성공후 발급 받은 Token.
- X-Subject-Token: Scoped Token으로, 5번 Horizon(사용자) 인증 성공후 발급 받은 Token.
- 8번에 대한 Token을 검증(요청한 사용자에 대해 인스턴스 생성이 가능한지 여부)하여 Boolean 값으로 응답받습니다.
- 인스턴스 생성을 위해 Glance에게 요청합니다. 이때 8번에서 사용한 HTTP Header인 X-Subject-Token을 함께 전송합니다.
- Glance에게 요청이 들어오면 Glance는 Keystone에게 Glance 인증 정보를 통해 인증을 요청합니다.
- 서비스 인증이 성공하면 HTTP Header로 X-Subject-Token: Scoped Token 형식으로 응답합니다.
- 응답을 받게 되면 Keystone에게 Nova가 Glance에게 요청한 기능(인스턴스 생성 관련)에 대해 인스턴스 생성을 요청한 사용자의 권한 확인에 대해 요청합니다. 이때 필요한 HTTP Header 필드는 X-Auth-Token과 X-Subject-Token입니다.
- X-Auth-Token: Scoped Token으로, 12번 Glance 서비스 인증 성공후 발급 받은 Token.
- X-Subject-Token: Scoped Token으로, 5번 Horizon(사용자) 인증 성공후 발급 받은 Token.
- 13번에 대한 Token을 검증(요청한 사용자에 대해 Glance가 실행하는 기능 사용 여부)하여 Boolean 값으로 응답받습니다.
- Glance는 Nova에게 Glance 관련 정보를 전송합니다.
- Nova는 인스턴스 생성 요청에 대한 상태를 전송합니다.
참조
'Cloud > OpenStack' 카테고리의 다른 글
[Openstack] Openstack Horizon Frontend 개발 - AngularJS (0) | 2021.03.01 |
---|---|
[OpenStack] Authentication & Authorization - OpenStack Keystone과 Horizon 구성요소 정리 및 Login 인증 Flow (0) | 2021.02.18 |
[오픈스택을 다루는 기술] 클라우드 네트워크 상식 (0) | 2021.01.13 |
[오픈스택을 다루는 기술] 오픈스택과 아키텍처 (0) | 2021.01.13 |
[인증체계] Openstack - Keystone 개념 (0) | 2021.01.12 |