개발/Langflow

[Langflow] Langflow API Key 생성

말하는 알감자 2025. 12. 17. 15:33

1. API keys 와 authentication(인증)

LangFlow는 외부 요청과 내부 서비스 연결을 보호하기 위해 인증 자격 증명(Authentication credentials) 을 사용합니다.

인증 자격 증명의 종류는 다음 3가지입니다.

  • LangFlow API Keys→ Flow 실행, 파일 업로드 등 서버 측 작업 승인에 사용
  • → LangFlow 서버 자체를 호출하기 위한 인증 키
  • Component API Keys→ 예: OpenAI, Gemini, 서드파티 API 등
  • → 모델 제공자 또는 외부 서비스(API)와 통신할 때 사용하는 키
  • Authentication Environment Variables
  • → LangFlow 서버의 사용자 인증(Authentication)권한 부여(Authorization) 동작을 설정하는 환경 변수

+) ⚠️ 보안 관련 주의 사항

  • LangFlow 포트를 아무 보안 설정 없이 인터넷에 직접 노출하는 것은 권장되지 않음
  • 다음 보안 설정을 함께 사용하는 것을 권장함
    • LANGFLOW_AUTO_LOGIN=False 설정
    • 기본값이 아닌 커스텀 LANGFLOW_SECRET_KEY 사용
    • 인증이 활성화된 Reverse Proxy 뒤에 LangFlow 서버 배포

2. LangFlow API Keys

LangFlow API Key는 LangFlow를 코드나 외부 애플리케이션에서 프로그래밍 방식으로 사용하기 위해 사용됩니다.

  • LangFlow API Key를 사용하면 LangFlow 서버와 API를 통해 상호작용할 수 있습니다.
  • 기본적으로 LangFlow의 대부분 API 엔드포인트는 LangFlow API Key 인증이 필요합니다.
    • 예: /api/v1/run/{FLOW_ID}
  • LangFlow API Key는 다음과 같은 서버 측 작업을 승인합니다.
    • Flow 실행
    • 파일 업로드
    • 기타 LangFlow API 호출

※ LangFlow MCP 서버의 인증 설정에 대해서는 Use Langflow as an MCP server 문서(https://docs.langflow.org/mcp-server) 를 참고합니다.


3. API Key 권한

기본 동작 방식

  • LangFlow API Key는 생성한 사용자의 권한을 그대로 상속합니다.
  • 즉, API Key는 별도의 권한을 가지지 않으며,
  • API Key를 만든 사용자와 동일한 권한과 접근 범위를 가집니다.

API Key로 접근 가능한 범위는 다음을 포함합니다.

  • 본인이 생성한 Flow
  • 사용 가능한 컴포넌트
  • LangFlow 데이터베이스 리소스

단, LangFlow API Key는 자신의 LangFlow 서버 외부 리소스에는 접근할 수 없습니다.

환경별 권한 동작 차이

① 싱글 유저 환경 (Single-user)

  • 서버 사용자는 항상 슈퍼유저(superuser) 로 동작
  • 생성한 LangFlow API Key 역시 항상 슈퍼유저 권한을 가짐

② 멀티 유저 환경 (Multi-user)

  • 슈퍼유저가 아닌 사용자는
    • 다른 사용자의 리소스에 접근할 수 없음
  • 사용자 관리 및 일반 사용자 계정을 사용하려면
    • LangFlow 서버를 authentication enabled 상태로 실행해야 함

4. LangFlow API Key 생성 방법

LangFlow API Key는 다음 두 가지 방법으로 생성할 수 있습니다.

  • LangFlow Settings(UI)
  • LangFlow CLI

4.1 LangFlow Settings에서 생성

LangFlow 프론트엔드(UI)가 실행 중인 경우 사용할 수 있는 방법입니다.

생성 절차

1. LangFlow 상단 헤더에서 프로필 아이콘 클릭

2. Settings 선택

3. LangFlow API Keys 클릭

4. Add New 클릭

5. API Key 이름 입력

6. Create API Key 클릭

7. 생성된 API Key를 복사하여 안전하게 저장

⚠️ API Key는 생성 직후에만 전체 값을 확인할 수 있으므로 반드시 저장해야 합니다.

 

4.2 LangFlow CLI에서 생성

LangFlow 서버가 --backend-only=true 모드로 실행 중인 경우에는

프론트엔드가 없기 때문에 Settings UI에서 API Key를 생성할 수 없습니다.

이 경우 LangFlow CLI를 사용해야 합니다.

CLI 생성이 필요한 경우

  • LangFlow 서버가 --backend-only=true 모드로 실행 중인 경우
  • 프론트엔드(UI)가 실행되지 않는 환경

API Key 생성 명령어

uv run langflow api-key

 

4.3 인증 활성화 권장 사항 (추천)

LangFlow 팀은 보안상의 이유로 인증을 활성화한 상태로 서버를 실행할 것을 권장합니다.

  • 인증이 활성화된 경우
    • 무단 API Key 생성 방지 가능
    • 슈퍼유저 계정 관리 가능
  • 인증이 비활성화된 경우
    • 모든 사용자가 사실상 슈퍼유저
    • 누구나 CLI를 통해 API Key 생성 가능
  • (LANGFLOW_AUTO_LOGIN=True)

특히 운영(Production) 환경에서는 인증 활성화가 권장됩니다.

 

4.4 CLI로 생성된 API Key의 권한

  • LangFlow CLI로 생성된 API Key는 항상 슈퍼유저 권한을 가짐
  • 이유:
    • langflow api-key 명령은 슈퍼유저 인증을 필요로 함
    • LangFlow API Key는 생성한 사용자의 권한을 그대로 상속

5. LangFlow API Key 사용 방법

LangFlow API 요청 시 인증을 위해

LangFlow API Key를 헤더 또는 쿼리 파라미터로 전달해야 합니다.

 

5.1 HTTP Header 방식 (권장)

curl -X POST \\
  "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID?stream=false" \\
  -H "Content-Type: application/json" \\
  -H "x-api-key: $LANGFLOW_API_KEY" \\
  -d '{"inputs": {"text":""}, "tweaks": {}}'
  • x-api-key 헤더에 LangFlow API Key 전달
  • 공식 문서에서 기본 예제로 사용하는 방식

 

5.2 Query Parameter 방식 (대안)

curl -X POST \\
  "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID?x-api-key=$LANGFLOW_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{"inputs": {"text":""}, "tweaks": {}}'
  • URL 쿼리 파라미터로 API Key 전달
  • 헤더 사용이 어려운 경우의 대안

6. API Key 사용 기록(Tracking)

  • 기본적으로 LangFlow는 API Key 사용 정보를 DB에 기록함
    • total_uses
    • last_used_at

사용 기록 비활성화

LANGFLOW_DISABLE_TRACK_APIKEY_USAGE=True
  • 높은 동시성 환경에서
    • DB 경합(Database contention)을 줄이기 위한 용도

7. LangFlow API Key 삭제(Revoke)

API Key를 삭제하면 즉시 무효화됩니다.

삭제 절차

1. LangFlow 상단 헤더 → 프로필 아이콘 클릭

2. Settings

3. LangFlow API Keys

 

4. 삭제할 Key 선택

5. Delete(쓰레기통 아이콘) 클릭


8. Component API Keys

개념

  • Component API Key는
    • Flow 내 컴포넌트가 호출하는 외부 서비스 인증용 키
  • LangFlow API Key와는 완전히 별개

사용 예

  • LLM 모델 제공자 (OpenAI, Gemini 등)
  • 데이터베이스
  • 서드파티 API

관리 방식

  • Component API Key는
    • 서비스 제공자 플랫폼에서 직접 생성·관리
  • LangFlow는
    • 암호화된 키 값 또는
    • 외부 저장소의 안전한 참조만 저장

⚠️ LangFlow에서 변수를 삭제해도

실제 서비스 제공자의 API Key는 삭제되지 않음

→ 반드시 제공자 측에서 직접 삭제 또는 회전 필요

보안 옵션

LANGFLOW_REMOVE_API_KEYS=True
  • Flow 데이터 DB에서
    • API Key / Token 제거
  • Flow JSON Export 시
    • API Key 제외 가능

9. Authentication Environment Variables

LangFlow 인증 동작을 제어하는 환경 변수들입니다.

.env.example 파일을 템플릿으로 사용 가능

9.1 LANGFLOW_AUTO_LOGIN

LangFlow 서버 접근 시 인증 요구 여부를 제어합니다.

LANGFLOW_AUTO_LOGIN=False

  • 자동 로그인 비활성화
  • 요구 사항
    • 시각적 에디터 로그인 필요
    • CLI 일부 명령은 슈퍼유저 인증 필요
    • API 요청 시 LangFlow API Key 필요
  • 권장 설정
    • LANGFLOW_SUPERUSER
    • LANGFLOW_SUPERUSER_PASSWORD 명시적 설정

LANGFLOW_AUTO_LOGIN=True (기본값)

  • 시각적 에디터가 비밀번호 없이 슈퍼유저로 자동 로그인
  • 모든 사용자가 슈퍼유저로 동작
  • CLI 명령 슈퍼유저 권한으로 실행 가능
  • API 요청은 여전히 LangFlow API Key 필요

→ 운영 환경에서는 권장되지 않음


10. 기본 인증 정책 및 버전별 변화

LangFlow v1.6 기준

  • 기본값
    • LANGFLOW_AUTO_LOGIN=True
    • LANGFLOW_SKIP_AUTH_AUTO_LOGIN=False
  • API 요청에 대해서만 인증 강제

이전 버전 호환성

  • v1.5
    • API 인증 강제 도입
    • 하위 호환을 위해 LANGFLOW_SKIP_AUTH_AUTO_LOGIN 추가
  • v1.5 이전
    • API 요청 인증 없음
    • 모든 사용자가 슈퍼유저

⚠️ 향후 버전에서는

  • LANGFLOW_AUTO_LOGIN=False 기본값 예정
  • LANGFLOW_SKIP_AUTH_AUTO_LOGIN 제거 예정

11. 인증 및 슈퍼유저 관련 환경 변수

11.1 LANGFLOW_ENABLE_SUPERUSER_CLI

  • LangFlow CLI에서 langflow superuser 명령 사용 가능 여부를 제어
  • 기본값: True
  • 보안상 권장값: False

의미

  • True일 경우:
    • 누구든지 CLI를 통해 슈퍼유저 계정 생성 가능
  • False일 경우:
    • 무제한 슈퍼유저 생성 방지

관련 문서: langflow superuser

11.2 LANGFLOW_SUPERUSER / LANGFLOW_SUPERUSER_PASSWORD

  • LangFlow 서버의 슈퍼유저 계정 정보를 지정하는 환경 변수

예시:

LANGFLOW_SUPERUSER=administrator
LANGFLOW_SUPERUSER_PASSWORD=securepassword

동작 조건

  • LANGFLOW_AUTO_LOGIN=False 인 경우 필수
  • LANGFLOW_AUTO_LOGIN=True 인 경우에는 의미 없음

주의 사항

  • 인증이 활성화된 상태에서 해당 값이 설정되지 않으면:
    • 기본값 langflow / langflow 사용
  • 이 기본값은
    • langflow superuser CLI 명령에는 적용되지 않음

11.3 LANGFLOW_SECRET_KEY

  • API Key 등 민감한 데이터를 암호화하는 데 사용되는 비밀 키
  • LangFlow는 Fernet 라이브러리를 사용하여 암호화 수행

기본 동작

  • 값이 설정되지 않으면 LangFlow가 자동으로 생성

운영 환경 권장 사항

  • Production 환경에서는 반드시 직접 생성하여 명시적으로 설정 권장
  • Kubernetes 등 멀티 인스턴스 환경에서는
    • 모든 인스턴스가 동일한 키를 사용해야 암호화 일관성 유지 가능

LANGFLOW_SECRET_KEY 생성 방법

macOS / Linux

python3 -c "from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')"

(macOS는 pbcopy, Linux는 xclip을 사용해 클립보드 복사 가능)

Windows

python -c "from secrets import token_urlsafe; print(f'LANGFLOW_SECRET_KEY={token_urlsafe(32)}')"

생성된 값을 .env 파일에 추가:

LANGFLOW_SECRET_KEY=생성된_값

Docker 사용 시

environment:
  - LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}

11.4 LANGFLOW_NEW_USER_IS_ACTIVE

  • 신규 사용자 계정의 자동 활성화 여부를 제어

기본값

LANGFLOW_NEW_USER_IS_ACTIVE=False

동작 방식

  • False:
    • 슈퍼유저가 신규 사용자를 직접 활성화해야 로그인 가능
  • True:
    • 신규 사용자 계정이 자동으로 활성화됨

추가 설명

  • 사용자 관리 기능은
    • LangFlow 서버에서 인증이 활성화된 경우에만 의미 있음
  • 사용자 활성화/비활성화는 슈퍼유저만 가능

12. CORS 설정 (LANGFLOW_CORS_*)

CORS(Cross-Origin Resource Sharing) 설정은

LangFlow 프론트엔드와 백엔드가 서로 다른 Origin에서 제공될 때,

인증 정보(쿠키, 인증 헤더 등)를 어떻게 처리할지 제어합니다.

12.1 CORS 관련 환경 변수

변수 기본값 설명

LANGFLOW_CORS_ALLOW_CREDENTIALS True 쿠키, Authorization 헤더 등 인증 정보 허용 여부
LANGFLOW_CORS_ALLOW_HEADERS * 허용할 HTTP 헤더 목록
LANGFLOW_CORS_ALLOW_METHODS * 허용할 HTTP 메서드 목록
LANGFLOW_CORS_ORIGINS * 허용할 Origin 목록

12.2 기본 CORS 설정 (Default)

기본 설정은 모든 Origin, Header, Method를 허용합니다.

LANGFLOW_CORS_ORIGINS=*
LANGFLOW_CORS_ALLOW_CREDENTIALS=True
LANGFLOW_CORS_ALLOW_HEADERS=*
LANGFLOW_CORS_ALLOW_METHODS=*

⚠️ 보안 주의 사항

  • 기본 CORS 설정은 운영 환경에서 보안 위험이 될 수 있음
  • 어떤 웹사이트든 LangFlow API 호출 가능
  • 인증 쿠키 및 Authorization 헤더도 포함 가능

12.3 운영 환경 권장 CORS 설정 예시

운영 환경에서는 명시적인 Origin만 허용하는 것이 권장됩니다.

LANGFLOW_CORS_ORIGINS=https://yourdomain.com,<https://app.yourdomain.com>
LANGFLOW_CORS_ALLOW_CREDENTIALS=True
LANGFLOW_CORS_ALLOW_HEADERS=Content-Type,Authorization
LANGFLOW_CORS_ALLOW_METHODS=GET,POST,PUT

13. 인증이 활성화된 LangFlow 서버 실행

이 설정은 다음과 같은 환경에 권장됩니다.

  • LangFlow가 공용 또는 공유 네트워크에 노출되는 경우
  • 여러 사용자가 하나의 LangFlow 서버를 사용하는 경우

13.1 인증 활성화 시 동작

  • 모든 사용자는 시각적 에디터 로그인 필요
  • API 요청은 LangFlow API Key 인증 필수
  • 사용자 관리 및 슈퍼유저 작업은 슈퍼유저 로그인 필요

13.2 .env 파일 설정 예시

LANGFLOW_AUTO_LOGIN=False
LANGFLOW_SUPERUSER=administrator
LANGFLOW_SUPERUSER_PASSWORD=securepassword
LANGFLOW_SECRET_KEY=dBuu...2kM2_fb
LANGFLOW_NEW_USER_IS_ACTIVE=False
LANGFLOW_ENABLE_SUPERUSER_CLI=False
  • 예시는 인증 관련 변수만 포함
  • 실제 환경에서는 강력한 자격 증명 사용 권장

13.3 LangFlow 서버 실행

uv run langflow run --env-file .env
  • .env 파일에 정의된 설정으로 LangFlow 실행
  • 실행 시 자동으로 슈퍼유저로 인증됨

13.4 서버 실행 확인

  • 기본 접속 주소
  • <http://localhost:7860>

14. 사용자 관리 (관리자 / 슈퍼유저)

14.1 슈퍼유저 최초 로그인

  • 접속 주소
  • <http://localhost:7860/login>
  • .env에 설정한 슈퍼유저 계정으로 로그인

14.2 관리자 페이지 접근

  • 주소 예시
  • <http://localhost:7860/admin>
  • 또는 프로필 아이콘 → Admin Page

14.3 사용자 관리 기능

슈퍼유저는 다음 작업을 수행할 수 있습니다.

  • 사용자 추가
  • 권한 설정
  • 비밀번호 재설정
  • 계정 삭제

14.4 사용자 추가 절차

  1. New User 클릭
  2. 사용자 정보 입력
    • Username
    • Password
  3. 계정 활성화 여부 설정
    • Active 체크 시 즉시 로그인 가능
  4. 슈퍼유저 권한 여부 설정
  5. Save 클릭

14.5 권한 확인

  • 일반 사용자는 /admin 접근 불가
  • 접근 시 /flows 페이지로 리다이렉트됨

'개발 > Langflow' 카테고리의 다른 글

[Langflow] OpenAI API key 생성  (0) 2025.12.16
[Langflow] Lanflow 설치하기  (0) 2025.12.16