Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

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 매개변수가 포함되어야 합니다.

표 2.1. OAuth 토큰 요청 매개변수

이름현재의

grant_type

암호

scope

ovirt-app-api

사용자 이름

admin@internal

암호

mypassword

이러한 매개변수는 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 서비스에서 현재 새로 고침 토큰을 지원하지 않으므로 새 토큰이 필요합니다. 위에서 설명한 것과 동일한 방법을 사용하여 새 토큰을 요청할 수 있습니다.