> This page is for 플랫폼, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 실험적: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - 레거시: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# 인증

Frame.io V4 API는 Adobe의 OAuth 2.0 ID 플랫폼인 [Adobe IMS(Identity Management Service)](https://developer.adobe.com/developer-console/docs/guides/authentication/)를 사용합니다. 인증에는 두 가지 범주가 있습니다.

#### 서버 간 인증

기술 또는 서비스 계정 사용자가 사용자 개입 없이 작업을 수행할 수 있도록 합니다. [Adobe Admin Console](https://adminconsole.adobe.com)을 통해 관리되는 Frame.io V4 계정에서만 사용할 수 있습니다.

#### 사용자 인증

토큰을 소유한 사용자로 작동합니다. Adobe Admin Console을 통해 관리되는 모든 Frame.io V4 계정과 [Adobe Authentication으로 전환](https://help.frame.io/ko/articles/11758018-connecting-to-adobe-authentication)된 Frame 관리 계정에서 사용할 수 있습니다.

---

## SDK 인증 안내서

Frame.io SDK는 인증 URL, 토큰 교환, 자동 새로 고침, 해지 등 전체 OAuth 수명 주기를 처리합니다. 시작할 언어를 선택하세요.

#### [Python SDK](./python-sdk)

동기 및 비동기 지원과 함께 `ServerToServerAuth`, `WebAppAuth`, `SPAAuth`를 제공합니다.

#### [TypeScript SDK](./typescript-sdk)

Node.js 및 브라우저 환경을 위한 `ServerToServerAuth`, `WebAppAuth`, `SPAAuth`, `NativeApp` 인증을 제공합니다.

> **Tip**
>
> 백엔드 서비스나 자동화를 작성하는 경우 **서버 간 인증**으로 시작합니다. 사용자가 로그인하는 앱의 경우 **웹 앱**(클라이언트 시크릿을 저장할 수 있는 경우) 또는 **SPA**(저장할 수 없는 경우)를 선택하세요.

---

## 사용자 인증

사용자 인증 자격 증명은 [Adobe Developer Console](https://developer.adobe.com/console)에서 만듭니다. Adobe는 세 가지 자격 증명 유형을 지원합니다. 애플리케이션 아키텍처에 맞는 것을 선택하세요.

#### [OAuth Web App](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-web-app-credential)

클라이언트 시크릿(Flask, Django, FastAPI, Express 등)을 안전하게 저장할 수 있는 서버 측 애플리케이션용입니다.

#### [OAuth Single Page App](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-single-page-app-credential)

클라이언트 시크릿을 저장할 수 없는 브라우저 기반 애플리케이션, CLI, 또는 데스크톱 앱용입니다. PKCE를 사용합니다.

#### [OAuth Native App](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-native-app-credential)

사용자 지정 URI 체계 리디렉션을 사용하는 네이티브 모바일 또는 데스크톱 앱용입니다.

> **Note**
>
> Frame.io Python SDK에는 Native App 자격 증명 클래스가 포함되어 있지 않습니다. Python에는 사용자 지정 URI 체계 핸들러를 등록하는 표준 방법이 없기 때문입니다. 대신 로컬 콜백 서버와 함께 **Web App**을 사용하세요. TypeScript SDK는 세 가지 자격 증명 유형을 모두 지원합니다.

---

## 서버 간 인증

서버 간 인증을 사용하면 애플리케이션이 **서비스 계정 사용자**로서 작동하므로 사용자 개입이 필요 없습니다. 앱이 클라이언트 자격 증명으로 인증하고 액세스 토큰을 직접 받습니다. 서비스 계정 작업은 Frame.io에서 서비스 계정 이름으로 표시됩니다. 서비스 계정 액세스는 [Adobe Admin Console](https://adminconsole.adobe.com/) 및 [Developer Console](https://developer.adobe.com/console)을 통해 관리됩니다. 현재 서비스 계정 이름은 수정할 수 없습니다. 구현에 대한 자세한 내용은 위의 SDK별 가이드를 확인하세요.

> **Info**
>
> 서비스 계정 설정에 대한 자세한 내용은 [Frame.io 서버 간 지원을 사용하여 설정 자동화](https://helpx.adobe.com/enterprise/using/automate-using-frame-io.html)를 확인하세요.

---

## Adobe IMS 인증 작동 방식

Adobe IMS(Identity Management Service)는 인증을 지원하는 Adobe의 OAuth 2.0 기반 ID 관리 기능입니다. 액세스 토큰을 생성하려면 두 단계가 필요합니다.

#### 사용자 권한 부여

첫째, 토큰이 생성되기 전에 사용자가 애플리케이션에 권한을 부여합니다. 자세한 내용은 [여기](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/ims/#authorize-request)를 확인하세요.

#### 토큰 교환

다음으로, 액세스 토큰을 가져옵니다. 위 단계에서는 이 단계에서 필요한 코드를 응답 본문에 반환합니다. 액세스할 정확한 엔드포인트와 사용할 매개변수를 [여기](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/ims/#fetching-access-tokens)에서 확인하세요.

> **Note**
>
> 위 단계는 세 가지 유형의 앱 자격 증명 모두에 필요합니다. 토큰을 가져오기 위해 IMS 엔드포인트 `/authorize/v2` 및 `/token/v3`에 액세스하는 방식에는 차이가 있습니다. 액세스 토큰을 받은 후에는 이를 사용하여 Frame.io V4 API와 상호 작용할 수 있습니다.

**서버 간** 인증의 경우 사용자 권한 부여 단계가 없습니다 — 애플리케이션은 클라이언트 자격 증명을 직접 사용하여 `client_credentials` 권한 부여를 통해 액세스 토큰을 가져옵니다.

### 액세스 토큰 사용

액세스 토큰을 발급받으면 모든 API 요청의 `Authorization` 헤더에 이를 포함하세요.

```
Authorization: Bearer <ACCESS_TOKEN>
```

Frame.io SDK가 이를 대신 처리해 줍니다 — 클라이언트를 생성할 때 토큰(또는 토큰을 제공하는 콜러블)을 전달하기만 하면 됩니다.

### 토큰 TTL

액세스 토큰은 **수명이 짧으며**, 일반적으로 1시간 후 만료됩니다. 사용자 인증 흐름(Web App, SPA, Native App)의 경우, Adobe IMS는 사용자가 다시 로그인하지 않고도 새 액세스 토큰을 얻을 수 있는 **새로 고침 토큰**을 반환합니다. 새로 고침 토큰은 수명이 더 길지만 결국 만료됩니다.

서버 간 인증의 경우 새로 고침 토큰이 없습니다. 클라이언트 자격 증명 자체는 (수동으로 교체하지 않는 한) 만료되지 않으므로, 애플리케이션은 항상 새 액세스 토큰을 요청할 수 있습니다.

Frame.io SDK는 토큰 새로 고침을 자동으로 처리합니다 — 자세한 내용은 [SDK별 가이드](#sdk-authentication-guides)를 확인하세요.

### 범위

[Adobe Developer Console](https://developer.adobe.com/console)에서 자격 증명을 생성할 때, 애플리케이션이 액세스할 수 있는 대상을 결정하는 OAuth 범위를 구성하게 됩니다. Frame.io SDK는 다음 기본 범위를 사용합니다.

| 흐름                                   | 기본 범위                                                       |
| ------------------------------------ | ----------------------------------------------------------- |
| **서버 간 인증**                          | `openid AdobeID frame.s2s.all`                              |
| **사용자 인증**(Web App, SPA, Native App) | `openid email profile offline_access additional_info.roles` |

> **Note**
>
> `offline_access` 범위는 사용자 인증 흐름에서 새로 고침 토큰을 수신하는 데 필요합니다. 그것이 없으면 액세스 토큰만 받게 되며, 만료되면 사용자가 다시 인증해야 합니다.

---

## 이전 개발자 토큰

**아직 [Adobe Admin Console](https://adminconsole.adobe.com/)을 통해 관리되지 않는** V4 마이그레이션 계정의 경우 [Frame.io 개발자 사이트](https://developer.frame.io/app/tokens)에서 관리되는 이전 개발자 토큰을 계속 사용할 수 있습니다. 토큰을 SDK에 직접 전달하세요.

```python
from frameio import Frameio

client = Frameio(
    token="YOUR_LEGACY_DEVELOPER_TOKEN",
    headers={"x-frameio-legacy-token-auth": "true"},
)
```

> **Warning**
>
> V4 API와 함께 이전 개발자 토큰을 사용하는 경우 모든 API 요청에 값이 `true`인 `x-frameio-legacy-token-auth` 헤더를 추가해야 합니다. SDK를 사용하는 경우 클라이언트의 요청 옵션을 통해 설정하세요.

이전 개발자 토큰은 만료되지 않지만 전환용 메커니즘입니다. 새로운 통합 및 프로덕션 워크로드의 경우 아래의 OAuth 2.0 흐름 중 하나를 사용하는 것이 좋습니다. 자세한 내용은 [마이그레이션 가이드](/platform/docs/resources/migration#authentication)를 참조하세요.

> **Note**
>
> Frame.io 이전에서 V4로 마이그레이션하는 엔터프라이즈 고객인 경우 CSM에 문의하여 이전 개발자 토큰 및 V4 설정에 대한 도움을 받으세요.

> **Tip**
>
> 이전 토큰에서 Adobe IMS 인증으로 전환하는 방법에 대한 자세한 내용은 [마이그레이션 가이드](/platform/docs/resources/migration#authentication)를 참조하세요.