2.2. 인증
Red Hat Virtualization Manager 계정이 있는 모든 사용자는 API에 액세스할 수 있습니다. 아래에 설명된 대로 모든 요청은 OAuth 또는 기본 인증을 사용하여 인증해야 합니다.
2.2.1. OAuth 인증
Red Hat Virtualization 버전 4.0부터 기본 인증 메커니즘은 RFC 6749 에 설명된 대로 OAuth 2.0 입니다.
OAuth 는 권한 부여 및 액세스 토큰을 얻기 위한 몇 가지 메커니즘을 갖춘 정교한 프로토콜입니다. Red Hat Virtualization API와 함께 사용하기 위해 지원되는 유일한 방법은 RFC 6749의 섹션 4.3 에 설명된 대로 리소스 소유자 암호 자격 증명 부여 입니다.
먼저 사용자 이름과 암호를 Red Hat Virtualization Manager Single Sign-On 서비스로 전송하여 토큰 을 받아야 합니다.
POST /ovirt-engine/sso/oauth/token HTTP/1.1 Host: myengine.example.com Content-Type: application/x-www-form-urlencoded Accept: application/json
요청 본문에는 grant_type
,scope
,username
, password
매개변수가 포함되어야 합니다.
이름 | 현재의 |
---|---|
|
|
|
|
|
|
|
|
이러한 매개변수는 URL로 인코딩 되어야 합니다. 예를 들어 사용자 이름의 @
문자는 %40
으로 인코딩되어야 합니다. 결과 요청 본문은 다음과 같습니다.
grant_type=password&scope=ovirt-app-api&username=admin%40internal&password=mypassword
scope
매개변수는 OAuth RFC에서 선택 사항으로 설명되지만 Red Hat Virtualization API와 함께 사용할 때는 필수 사항이며 해당 값은 ovirt-app-api
여야 합니다.
사용자 이름과 암호가 유효한 경우 Red Hat Virtualization Manager Single Sign-On 서비스는 다음과 같은 JSON 문서로 응답합니다.
{ "access_token": "fqbR1ftzh8wBCviLxJcYuV5oSDI=", "token_type": "bearer", "scope": "...", ... }
API 인증의 경우 유일한 관련 이름/값 쌍은 access_token
입니다. 어떤 방식으로든 조작하지 마십시오. SSO 서비스에서 제공한 대로 정확하게 사용하십시오.
토큰을 받으면 HTTP Authorization
헤더에 포함하고 Bearer
스키마를 사용하여 API에 대한 요청을 수행할 수 있습니다. 예를 들어 가상 머신 목록을 가져오려면 다음과 같이 요청을 보냅니다.
GET /ovirt-engine/api/vms HTTP/1.1 Host: myengine.example.com Accept: application/xml Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
토큰은 여러 요청에 대해 여러 번 사용할 수 있지만 결국 만료됩니다. 만료되면 서버는 401 HTTP 응답 코드와 함께 요청을 거부합니다.
HTTP/1.1 401 Unauthorized
이 경우 Red Hat Virtualization Manager Single Sign-On 서비스에서 현재 새로 고침 토큰을 지원하지 않으므로 새 토큰이 필요합니다. 위에서 설명한 것과 동일한 방법을 사용하여 새 토큰을 요청할 수 있습니다.