메인 콘텐츠로 건너뛰기
이 인증 방식은 인증 요청을 사용자가 아니라 애플리케이션이 Vantage 인가 서버로 직접 보내기 때문에 가장 안전한 방식으로 간주됩니다. 인가 서버는 사용자를 인증한 다음 클라이언트에 인가 코드를 반환합니다. 인가 코드가 가로채이지 않도록 하기 위해, 이 인증 시나리오는 PKCE(Proof Key for Code Exchange)라는 보안 확장을 사용합니다. 이 확장은 다음과 같이 동작합니다. 각 인가 요청마다 암호학적 난수 값을 생성하여 code_verifier에 저장하고, 이를 사용해 암호학적으로 서명된 값을 생성하여 code_challenge에 저장합니다. 그런 다음 이 새로운 값을 인가 코드를 얻기 위해 인가 서버로 전송합니다. PKCE에 대한 자세한 내용은 이 문서를 참조하십시오.

인증 코드 가져오기

인증 절차를 시작하려면, 다음 매개변수를 전달하여 사용자 브라우저를 authorize 엔드포인트로 리디렉션합니다:
ParameterDescription
client_id애플리케이션 식별자입니다. Vantage API Client(client_idclient_secret)를 생성하는 방법은 Managing Tenant Vantage API Clients 문서를 참조하세요.
redirect_uri액세스 권한이 부여된 후 브라우저를 리디렉션하는 데 사용되는 애플리케이션 또는 웹사이트의 URL입니다.
response_type=codeauthorization code 응답 유형을 사용함을 지정합니다.
scope=openid permissions global.wildcard권한 범위(scope)를 지정합니다.
state응답에서 인증 결과를 포함하게 될 임의의 string 값입니다.
code_challengecode_challenge_method 메서드를 사용하여 code_verifier 코드를 디지털 서명한 값입니다.
code_challenge_methodcode_verifier 코드에 대한 디지털 서명 방식(S256)입니다.
productId=a8548c9b-cb90-4c66-8567-d7372bb9b963Vantage 식별자입니다.
response_type, scope, productId 값은 위에 명시된 대로 정확히 사용해야 합니다. response_type을 제외한 이 키들은 변경될 수 있습니다. 구성으로 분리하여 관리하는 것을 고려하세요.
요청 예시 리소스 식별자를 포함하는 redirect_uri 매개변수는 OAuth 2.0에서 사용되며, Vantage가 인증 코드를 해당 리소스로 전송한 다음 이후의 모든 API 호출에서 인증에 필요한 액세스 토큰으로 그 코드를 교환할 수 있도록 합니다. 이 인증 방식을 사용하려면 redirect_uri 매개변수 값을 ABBYY 기술 지원 팀에 제공하여 관리자가 허용 목록(화이트리스트)에 등록할 수 있도록 해야 합니다. scope 매개변수를 통해 요청된 액세스 권한이 부여되었는지 확인이 완료되면, 브라우저는 Vantage 서버에서 설정한 전용 웹 페이지로 리디렉션됩니다. 이 웹 페이지에는 계정을 사용해 인증을 진행하는 데 사용되는 대화 상자가 있습니다. 이 페이지는 주소 표시줄이 보이는 브라우저에서 열어야 하며, 이를 통해 페이지 URL과 연결의 SSL 인증서 상태를 확인할 수 있습니다. 이메일 주소가 서로 다른 여러 테넌트의 계정에 연결되어 있는 경우, 이메일 주소를 입력한 후 테넌트를 선택하고 비밀번호를 입력하라는 메시지가 표시됩니다. 또한 다음 리소스 중 하나를 사용하여 테넌트 식별자(tokenId 매개변수)를 직접 전달할 수도 있습니다: 또는 테넌트 계정의 비밀번호를 입력해야 합니다. 자격 증명을 입력하면 서버 측에서 인증이 완료되고, 애플리케이션은 Vantage API에 대한 액세스 권한을 부여받으며, 요청에 대한 응답으로 authorization code를 받게 됩니다. 사이트나 애플리케이션에서 이 인증 유형을 사용하는 경우, Vantage 사용자는 허용된 리디렉트 URL 목록에 추가하는 해당 사이트나 앱이 자신을 대신하여 Vantage API에 액세스하도록 허용하게 됩니다. 사이트나 앱에 이러한 액세스 권한을 부여하기 위해 사용자는 자신의 로그인과 비밀번호를 사용하여 Vantage에 인증하라는 요청을 받습니다. 사용자가 인증되면, 사이트나 앱에는 다음과 같은 권한이 부여됩니다:
  • 사용자를 대신하여 Vantage 테넌트에서 데이터 카탈로그를 관리하기,
  • 사용자를 대신하여 Vantage 테넌트에서 스킬에 액세스하기,
  • 사용자를 대신하여 Vantage 트랜잭션을 생성하고 액세스하기.
사이트나 앱은 사용자의 비밀번호를 변경하거나, Vantage 테넌트의 사용자 목록을 변경하거나, 스킬을 편집할 수 없습니다. Vantage API에 대한 액세스 권한만 부여됩니다. 사용자는 한 번 액세스가 허용된 이후에는 이를 철회할 수 없습니다.

인증 토큰 가져오기

인증 코드를 얻은 후에는 해당 코드를 액세스 토큰으로 교환할 수 있는 시간이 1분입니다. application/x-www-form-urlencoded 데이터를 사용하여 토큰 엔드포인트에 POST 요청을 보내십시오. 요청 본문 매개변수:
Parameter설명
code_verifier사용자가 생성한 코드입니다. 인증 요청이 올바르게 시작되었음을 확인하는 데 필요합니다.
client_id애플리케이션 식별자입니다.
client_secret애플리케이션 보안 키입니다.
code서버에서 받은 인증 코드입니다.
redirect_uriauthorize 단계에서 사용한 리디렉트 URL입니다.
grant_type=authorization_codeAuthorization Code 그랜트 타입을 사용함을 지정합니다.
scope=openid permissions global.wildcard offline_access권한 범위를 지정합니다. 리프레시 토큰을 받으려면 scope에 offline_access를 추가합니다.
요청 예: 서버의 응답 본문에는 액세스 토큰이 포함됩니다:
{
  "id_token": "<redacted>",
  "access_token": "<redacted>",
  "expires_in": 86400,
  "token_type": "Bearer",
  "refresh_token": "<redacted>",
  "scope": "openid permissions global.wildcard offline_access legacy.client"
}
Authorization Code Flow에 대한 자세한 내용은 이 링크를 참조하십시오. 각 플로에서 access_token 키에는 토큰이, expires_in 키에는 토큰이 만료되기까지 남은 시간(초 단위)이 포함됩니다. 기본적으로 액세스 토큰의 수명은 24시간입니다(자세한 내용은 Token lifetimes를 참조하십시오). 모든 요청에 다음 authorization 헤더를 추가하고, token을 수신한 값으로 바꾸십시오:
-H "Authorization: Bearer token"
참고로, 같은 계정으로 여러 개의 토큰을 발급받을 수 있습니다. 인증 토큰에 대한 자세한 내용은 이 링크를 참조하세요.

리프레시 토큰 받기

Vantage API 클라이언트를 구성할 때 Allow issuing refresh tokens to refresh access tokens 옵션을 활성화했고, 액세스 토큰을 받기 위한 요청에 scope=openid permissions global.wildcard offline_access Parameter가 포함되어 있었다면, 응답에서 추가 리프레시 토큰도 받게 됩니다. 리프레시 토큰을 받은 후에는 다음 Parameter를 사용해 토큰 엔드포인트로 POST 요청을 보내 액세스 토큰을 갱신할 수 있습니다.
ParameterDescription
client_id애플리케이션 식별자입니다.
client_secret보안 애플리케이션 키입니다.
refresh_token서버에서 받은 리프레시 토큰입니다.
grant_type=refresh_token리프레시 토큰 그랜트 타입을 사용함을 지정합니다.
요청 예:

토큰 수명

Access 토큰과 Refresh 토큰은 다음과 같은 수명이 되도록 설정됩니다:
  • Access 토큰 수명: 발급된 Access 토큰이 사용자가 Vantage에 액세스할 수 있도록 허용하는 기간을 정의합니다. Access 토큰의 기본 수명은 24시간입니다.
  • Refresh 토큰 수명: 첫 번째 Access 토큰이 발급된 시점부터 시작하여, 발급된 Refresh 토큰을 사용해 Access 토큰을 갱신할 수 있는 절대 기간을 정의합니다. Refresh 토큰의 기본 수명은 30일입니다.