For the complete documentation index, see llms.txt. This page is also available as Markdown.

Roboflow로 로그인(시작하기)

사용자가 OAuth 2.1 및 PKCE를 사용해 Roboflow 계정으로 애플리케이션에 로그인할 수 있게 합니다.

OAuth 2.1 인가 코드 흐름과 PKCE를 사용하여 Roboflow 계정으로 사용자를 인증하는 애플리케이션을 구축할 수 있습니다. 이를 통해 앱은 승인된 권한 범위에 한해 Roboflow 사용자를 대신하여 동작할 수 있습니다.

OAuth 액세스 토큰은 api.roboflow.com 에서 Authorization: Bearer로 구성됩니다. REST API로 인증하기 를 참조하세요.

엔드포인트 표, 가시성, 오류 및 실행 가능한 샘플 앱은 Roboflow로 로그인(개발자 레퍼런스).

OAuth 앱 만들기

애플리케이션을 등록하려면:

1

개발자 설정 열기

다음으로 이동하세요. 워크스페이스 설정 > 개발자 를 Roboflow 대시보드에서 app.roboflow.com.

Developer settings with OAuth applications
2

새 OAuth 앱 만들기

클릭하세요. OAuth 앱 만들기 (또는 새 앱)을 만들고 다음을 입력합니다:

필드
설명

이름

동의 화면과 OAuth 앱 목록에 표시되는 이름

홈페이지 URL

제품 URL(동의 화면에 표시되며 정보 제공용)

리디렉션 URI

하나 이상의 콜백 URL(코드와 정확히 일치해야 함)

토큰 엔드포인트 인증

클라이언트가 토큰 엔드포인트에 비밀키를 전송하는 방식: client_secret_post (요청 본문에 비밀키 포함, 기본값) 또는 client_secret_basic (HTTP Basic Authorization 헤더에 비밀키 포함). 대부분의 MCP 게이트웨이(Azure, TrueFoundry)는 client_secret_basic.

허용된 스코프

로그인 시 요청할 모든 스코프

가시성

내부, 비공개 목록또는 공개 - 참조 개발자 레퍼런스 - 가시성

OAuth applications list on the Developer page
Create OAuth application form

다음 항목을 받게 됩니다. 클라이언트 ID클라이언트 시크릿 (rfcs_…). 시크릿은 한 번만 표시되므로 서버에 안전하게 보관하세요.

리디렉션 URI 예시

리디렉션 URI
일반적인 용도

http://localhost:3001/oauth/callback

3001 포트에서의 로컬 개발

http://127.0.0.1:3001/oauth/callback

앱이 사용하는 경우 위와 동일 127.0.0.1

https://yourapp.com/oauth/callback

프로덕션

공개 호스트에는 HTTPS가 필요합니다. HTTP는 루프백(localhost, 127.0.0.1, ::1).

인가 흐름

Roboflow는 PKCE(Proof Key for Code Exchange)가 포함된 인가 코드 그랜트를 사용합니다. PKCE는 모든 클라이언트에 필수입니다.

1

PKCE 코드 검증자와 챌린지 생성

무작위 code_verifier 를 생성하고(43~128자) 다음을 파생합니다. code_challenge 을 SHA-256을 사용해 다음과 같이 만듭니다:

import hashlib, base64, secrets

code_verifier = secrets.token_urlsafe(32)
code_challenge = base64.urlsafe_b64encode(
    hashlib.sha256(code_verifier.encode()).digest()
).rstrip(b"=").decode()
2

사용자를 리디렉션하여 인가하기

사용자를 Roboflow 인가 엔드포인트로 보내세요:

https://app.roboflow.com/oauth/authorize?
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https://yourapp.com/callback&
  response_type=code&
  scope=openid profile email workspace:read&
  code_challenge=YOUR_CODE_CHALLENGE&
  code_challenge_method=S256&
  state=YOUR_STATE_VALUE

암호학적으로 안전한 무작위 state 를 사용하고 콜백에서 검증하세요. code_verifier 코드를 교환할 때까지 서버 측에 저장하세요.

사용자는 앱이 요청한 권한이 표시된 동의 화면을 보게 됩니다.

OAuth consent screen with workspace selection and scopes

승인하면 Roboflow가 다음으로 리디렉션합니다. 리디렉션 URI 에서 코드state.

3

코드를 토큰으로 교환하기

브라우저가 아닌 서버에서 토큰 엔드포인트로 POST 요청을 보내세요:

curl -X POST https://app.roboflow.com/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://yourapp.com/callback" \
  -d "code_verifier=YOUR_CODE_VERIFIER"

응답에는 다음이 포함됩니다:

  • access_token - Roboflow API 호출(1시간 유효, MCP 클라이언트의 경우 24시간 유효)

  • refresh_token - 새 액세스 토큰 획득(30일 유효)

  • id_token - ID 클레임이 포함된 JWT( openid 가 요청된 경우)

OAuth 토큰 사용하기

액세스 토큰이 있으면 다음에 포함하여 보내세요. Authorization 헤더:

토큰 검증하기

불투명한 rfoa_ 액세스 토큰이 있고 클라이언트 자격 증명 없이 상태나 만료 여부를 확인해야 한다면 검증 엔드포인트를 호출하세요:

응답(항상 HTTP 200):

만료되었거나 취소된 토큰은 { "active": false, "exp": null, ... } HTTP 오류 대신 반환되므로 호출자는 유효하지 않은 토큰과 연결할 수 없는 인증 서버를 구분할 수 있습니다.

토큰 새로 고침

액세스 토큰은 1시간 후 만료됩니다(MCP 클라이언트의 경우 24시간). 새 토큰을 얻으려면 리프레시 토큰을 사용하세요:

토큰 폐기하기

액세스 토큰 또는 리프레시 토큰을 폐기하려면:

사용자 정보

인증된 사용자의 프로필 정보를 가져옵니다( openid):

사용 가능한 스코프

앱은 다음 스코프의 어떤 조합이든 요청할 수 있습니다. 각 스코프는 OAuth 앱의 허용된 스코프 목록

ID 스코프

스코프
설명

openid

필수. 다음의 안정적인 사용자 ID를 반환합니다. sub 클레임.

profile

사용자의 표시 이름과 아바타를 읽습니다.

email

사용자의 이메일 주소를 읽습니다.

API 스코프

스코프
설명

workspace:read

워크스페이스 세부 정보 읽기, 프로젝트 목록 보기

project:create

프로젝트 생성

project:read

프로젝트 세부 정보 읽기

project:update

프로젝트 설정 업데이트

image:create

이미지 업로드

image:read

이미지 읽기 및 다운로드

image:tag

이미지 태그 추가 및 제거

image:annotate

주석 생성 및 업데이트

model:infer

추론 실행

model:deploy

모델 배포

model:manage

모델 설정 관리

model-eval:read

모델 평가 결과 읽기

workflow:create

워크플로우 생성

workflow:read

워크플로우 읽기

workflow:update

워크플로우 업데이트

version:create

데이터셋 버전 생성

version:read

데이터셋 버전 읽기

version:update

데이터셋 버전 업데이트

training-job:create

학습 작업 시작

folder:create

프로젝트 폴더 생성

folder:read

프로젝트 폴더 읽기

folder:update

프로젝트 폴더 업데이트

folder:delete

프로젝트 폴더 삭제

추가 스코프
스코프
설명

device:read

장치 읽기

device:update

장치 설정 업데이트

vision-events:read

비전 이벤트 읽기

vision-events:write

비전 이벤트 생성

vision-events:manage

비전 이벤트 사용 사례 관리

annotation-job:create

주석 작업 생성

annotation-job:read

주석 작업 읽기

video-inference-job:create

비디오 추론 작업 생성

video-inference-job:read

비디오 추론 작업 읽기

integration:create

통합 생성

integration:delete

통합 삭제

credentials:create

자격 증명 생성

credentials:read

자격 증명 읽기

credentials:update

자격 증명 업데이트

credentials:delete

자격 증명 삭제

data-staging:read

스테이징된 데이터 읽기

data-staging:write

스테이징된 데이터 쓰기

data-staging:delete

스테이징된 데이터 삭제

batch-processing:read

배치 작업 읽기

batch-processing:trigger

배치 처리 트리거

batch:read

배치 읽기

workspace-stats:read

워크스페이스 통계 읽기

OIDC 검색

Roboflow는 표준 OpenID Connect 검색 문서를 게시합니다:

  • OpenID 구성: https://app.roboflow.com/.well-known/openid-configuration

  • JWKS (ID 토큰 검증용): https://app.roboflow.com/.well-known/jwks.json

다음 단계

마지막 업데이트

도움이 되었나요?