GPT Action 인증

GPT Action 인증 (authentication)

Action에는 다양한 사용 사례에 맞춰 선택할 수 있는 인증 방식이 있어요. GPT 편집기에서 "None", "API Key", "OAuth" 중 하나를 골라 인증 방식을 지정할 수 있답니다.

출처: 문서

본문

Action은 다양한 인증 스키마를 제공해 여러 사용 사례를 수용해요. 액션의 인증 스키마를 지정하려면 GPT 편집기를 사용해 "None", "API Key", "OAuth" 중 하나를 선택하면 돼요.

기본적으로 모든 액션의 인증 방식은 "None"으로 설정되지만, 이를 변경할 수 있고 액션마다 서로 다른 인증 방식을 허용할 수도 있어요.

인증 없음 (No authentication)

API 키가 필요 없거나 OAuth로 로그인할 필요 없이 사용자가 API에 바로 요청을 보낼 수 있는 애플리케이션에는 인증 없이 진행되는 흐름을 지원해요.

사용자가 앱에 로그인하도록 강제하면 이탈(lost drop off)이 발생할 수 있으므로, 초기 사용자 상호작용에는 인증 없이 진행하는 것을 고려해 보세요. "signed out"(로그아웃 상태) 경험을 만들고, 별도의 액션을 활성화해 사용자를 "signed in"(로그인 상태) 경험으로 옮길 수 있어요.

API 키 인증 (API key authentication)

사용자가 이미 여러분의 API를 쓰고 있는 것과 마찬가지로, API 키 인증도 GPT 편집기 UI를 통해 허용할 수 있어요. 우리는 데이터베이스에 비밀 키를 저장할 때 암호화해서 API 키를 안전하게 보관해요.

이 방식은 인증 없는 흐름보다 조금 더 결과가 중요한 작업을 처리하지만, 개별 사용자가 로그인할 필요는 없는 API에 유용해요. API 키 인증을 추가하면 API를 보호할 수 있고, 더 세밀한 접근 제어와 함께 요청이 어디서 오는지에 대한 가시성도 얻을 수 있어요.

OAuth

Action은 사용자별 OAuth 로그인을 허용해요. 이는 개인화된 경험을 제공하고 가장 강력한 액션을 사용자에게 제공하는 최선의 방법이에요. Action과 함께하는 OAuth 흐름의 간단한 예는 다음과 같아요:

  • 시작하려면 GPT 편집기 UI에서 "Authentication"을 선택하고, "OAuth"를 선택해요.
  • OAuth client ID, client secret, authorization URL, token URL, scope를 입력하라는 프롬프트가 나타나요.
    • client ID와 secret은 간단한 텍스트 문자열이어도 되지만, OAuth 모범 사례를 따르는 것이 좋아요.
    • 우리는 client secret을 암호화해 저장하며, client ID는 최종 사용자에게 공개돼요.
  • OAuth 요청에는 다음 정보가 포함돼요: request={'grant_type': 'authorization_code', 'client_id': 'YOUR_CLIENT_ID', 'client_secret': 'YOUR_CLIENT_SECRET', 'code': 'abc123', 'redirect_uri': 'https://chat.openai.com/aip/{g-YOUR-GPT-ID-HERE}/oauth/callback'} 참고: https://chatgpt.com/aip/{g-YOUR-GPT-ID-HERE}/oauth/callback 도 유효해요.
  • 누군가 OAuth를 사용하는 액션을 쓰려면 그 액션을 호출하는 메시지를 보내야 하며, 그러면 ChatGPT UI에 "Sign in to [domain]" 버튼이 표시돼요.
  • authorization_url 엔드포인트는 다음과 같은 응답을 반환해야 해요: { "access_token": "example_token", "token_type": "bearer", "refresh_token": "example_token", "expires_in": 59 }
  • 사용자 로그인 과정에서 ChatGPT는 지정된 authorization_content_type을 사용해 authorization_url에 요청을 보내고, 액세스 토큰과 선택적으로 refresh token을 받기를 기대해요. refresh token은 주기적으로 새 액세스 토큰을 가져올 때 사용돼요.
  • 사용자가 액션에 요청을 보낼 때마다 사용자의 토큰이 Authorization 헤더("Authorization": "[Bearer/Basic] [user's token]")로 전달돼요.
  • 보안상의 이유로 OAuth 애플리케이션은 state parameter를 반드시 사용하도록 요구해요.

Custom GPT 로그인 실패 (Redirect URLs) 문제가 있나요?

  • OAuth 애플리케이션에서 이 리다이렉트 URL을 반드시 활성화해 주세요:
  • #1 Redirect URL: https://chat.openai.com/aip/{g-YOUR-GPT-ID-HERE}/oauth/callback (일부 클라이언트는 도메인이 다를 수 있음)
  • #2 Redirect URL: https://chatgpt.com/aip/{g-YOUR-GPT-ID-HERE}/oauth/callback (GPT를 저장한 뒤 ChatGPT UI URL 표시줄에서 GPT ID를 얻을 수 있어요) GPT가 여러 개라면 각각 활성화하거나 위험 허용 수준에 따라 와일드카드를 사용해야 할 수 있어요.
  • 디버깅 참고: 인증 제공자는 일반적으로 실패 상황을 기록해요(예: 'redirect_uri is not registered for client'), 이 기록이 로그인 문제를 디버깅하는 데 도움이 돼요.

더 알아보기 (Learn more)

관련 문서: GPT Actions 라이브러리와 시작하기 가이드를 참고하세요.