사용자 권한 관리

이 가이드에서는 Frame.io V4 API를 사용하여 사용자 권한을 관리하는 방법을 설명합니다. 계정, 작업 영역, 프로젝트 수준에서 권한이 작동하는 방식과 각 수준에서 어떤 엔드포인트를 사용할지 다룹니다.


권한 수준

Frame.io의 권한은 계정, 작업 영역, 프로젝트 수준 전반에서 관리됩니다. 각 수준은 고유한 역할 세트를 사용합니다.

Account
├── (admin) - full access to all Workspaces, Projects, and Restricted Projects
└── (member)
├── Workspace - (full_access | editor | edit_only | commenter | viewer)
│ │
│ └── Project - (full_access | editor | edit_only | commenter | viewer)
└── Restricted Project - (members require direct invite)

모든 사용자에게는 계정 역할이 있습니다. API를 통해 사용자의 역할을 admin 또는 member로 설정할 수 있습니다.

계정 관리자는 모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한을 가집니다. 계정 멤버는 필요한 작업 영역 및 프로젝트에 선택적으로 추가될 수 있습니다.

작업 영역에 계정 멤버를 추가하면 할당한 권한 수준(full_access, editor, edit_only, commenter 또는 viewer)이 해당 작업 영역 내의 모든 기존 프로젝트와 향후 프로젝트에 적용됩니다. 예를 들어 계정 멤버를 viewer로 추가하면 해당 작업 영역의 프로젝트에 액세스할 때마다 viewer 권한을 갖게 됩니다. 동일한 계정 멤버를 해당 작업 영역 내의 특정 프로젝트에 editor로 추가할 수 있습니다. 그 결과, 해당 프로젝트에 액세스할 때마다 editor 권한을 가지게 됩니다. 이들의 viewer 권한은 해당 작업 영역의 다른 모든 프로젝트에 계속 적용됩니다. 프로젝트 할당은 작업 영역 할당과 분리되어 있으므로, 해당 계정 멤버를 작업 영역에서 제거하더라도 해당 단일 프로젝트에 대한 editor 권한은 유지됩니다.

제한된 프로젝트는 예외입니다. 계정 멤버는 항상 직접 초대를 받아야 합니다. 자세한 내용은 아래의 프로젝트 수준 권한 섹션을 참조하세요.

계정 수준 권한

계정의 모든 사용자에게는 다음과 같은 역할이 있습니다.

역할권한API를 통해 구성 가능엔드포인트
소유자모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한입니다. 계정당 1개아니요
admin모든 작업 영역 및 프로젝트에 대한 모든 액세스 권한PATCH /accounts/:account_id/users/:user_id
member권한은 작업 영역 및/또는 프로젝트 수준에서 설정됨PATCH /accounts/:account_id/users/:user_id
Reviewer공유 링크를 통해서만 액세스할 수 있습니다. 사용자가 보안 공유에 추가될 때 생성됨아니요

계정 관리자는 모든 곳에서 모든 액세스 권한을 가집니다. 특정 리소스에 대한 관리자의 액세스를 제한하려면 먼저 계정 역할을 Member로 변경한 다음, 필요한 작업 영역이나 프로젝트에 추가합니다.

예를 들면 다음과 같습니다.

1

계정 사용자 역할을 나열하여 사용자 ID를 찾고 현재 역할을 확인합니다.

$curl https://api.frame.io/v4/accounts/:account_id/users \
> -H "Authorization: Bearer <token>"
2

계정 역할을 Member로 업데이트:

$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "member"
> }
>}'
3

프로젝트에 추가:

$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "edit_only"
> }
>}'

계정 권한 엔드포인트

계정 사용자 역할 나열

사용자 세부 정보(ID, 이름, 이메일) 및 계정 역할을 포함하여 특정 계정의 사용자를 나열합니다.


GET``https://api.frame.io/v4/accounts/:account_id/users
문서


작업 영역 수준 권한

작업 영역에 계정 멤버를 추가하면 해당 작업 영역 내의 모든 프로젝트에 대해 동일한 권한 수준을 갖게 됩니다. 작업 영역은 초대 전용이므로 계정 멤버는 자신이 추가된 작업 영역만 볼 수 있습니다.


역할권한
full_access업로드, 관리, 공유, 코멘트, 보기, 다운로드, 설정 관리, 사용자 초대
editor업로드, 관리, 공유, 코멘트, 보기, 다운로드
edit_only업로드, 관리, 코멘트, 보기. 공유 또는 다운로드할 수 없음
commenter보기 및 코멘트
viewer보기 전용

작업 영역 권한 엔드포인트

사용자 나열

사용자 세부 정보(ID, 이름, 이메일) 및 해당 역할을 포함하여 특정 작업 영역에 액세스할 수 있는 사용자를 나열합니다.


GET``https://api.frame.io/v4/accounts/:account_id/workspaces/:workspace_id/users
문서


프로젝트 수준 권한

프로젝트는 작업 영역과 동일한 권한 수준을 사용합니다. 특정 프로젝트에만 액세스해야 하거나 작업 영역 할당과 다른 권한 수준이 필요한 경우 사용자를 프로젝트에 직접 추가합니다. 프로젝트에 추가되기 위해 사용자에게 작업 영역 액세스 권한이 필요한 것은 아닙니다.


역할권한
full_access업로드, 관리, 공유, 코멘트, 보기, 다운로드, 설정 관리, 사용자 초대
editor업로드, 관리, 공유, 코멘트, 보기, 다운로드
edit_only업로드, 관리, 코멘트, 보기. 공유 또는 다운로드할 수 없음
commenter보기 및 코멘트
viewer보기 전용

예시: 프로젝트에 사용자 추가
$curl -X PATCH https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users/:user_id \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "data": {
> "role": "full_access"
> }
>}'

제한된 프로젝트

제한된 프로젝트에는 직접 초대가 필요합니다. 작업 영역 액세스 권한이 이월되지 않으므로,

사용자는 제한된 프로젝트에 직접 추가된 경우에만 액세스할 수 있습니다.

멤버에게 액세스 권한을 부여하려면 적절한 권한 수준으로 해당 멤버를 프로젝트에 추가합니다.

계정 관리자와 소유자는 예외이며 모든

제한된 프로젝트에 액세스할 수 있습니다.

프로젝트 권한 엔드포인트

프로젝트 사용자 역할 나열

사용자 세부 정보(ID, 이름, 이메일) 및 해당 역할을 포함하여 특정 프로젝트에 액세스할 수 있는 사용자를 나열합니다.


GET https://api.frame.io/v4/accounts/:account_id/projects/:project_id/users
문서


리소스

유용한 추가 리소스:

  • Frame.io 개발자 포럼은 개발자들이 질문하고, 피드백을 공유하고, 자신들이 구축 중인 항목에 대해 논의할 수 있는 공간입니다.
  • 사용자 역할 및 권한에 대한 고객 센터 문서
  • 관계 및 속성 기반 액세스 제어에 대한 추가 정보는 OWASP 권한 부여 치트 시트를 참조하세요.