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 라이브러리와 시작하기 가이드를 참고하세요.