oauth2-proxy を使って ChatGPT UI に認証をかける
ChatGPI UI というオープンソースの ChatGPT の UI があるので使ってみた。認証の仕組みがなさそうなので、oauth2-proxy を使って認証を機能をつけてみた。
今回は、IdP として Google を使用。以下の手順で、Client ID と Secret を作成。
support.google.com
承認済みリダイレクト URL に http://localhost:8000/oauth2/callback
を指定
./docker-compose.yml
を以下のように作成
version: '3.8' services: oauth2-proxy: image: quay.io/oauth2-proxy/oauth2-proxy:v7.4.0 ports: - 8000:4180 env_file: - oauth2-proxy.env chatgpt-ui: image: chatgpt-ui env_file: - chatgpt-ui.env redis: image: redis volumes: - redis:/data volumes: redis:
./oauth2-proxy.env
を作成
OAUTH2_PROXY_HTTP_ADDRESS=0.0.0.0:4180 OAUTH2_PROXY_PROVIDER=google OAUTH2_PROXY_CLIENT_ID=xxxxxxxxxx.apps.googleusercontent.com OAUTH2_PROXY_CLIENT_SECRET=xxxxxxx OAUTH2_PROXY_REDIRECT_URL=http://localhost:8000/oauth2/callback OAUTH2_PROXY_EMAIL_DOMAINS=gmail.com OAUTH2_PROXY_UPSTREAMS=http://chatgpt-ui:3000/ OAUTH2_PROXY_SESSION_STORE_TYPE=redis OAUTH2_PROXY_REDIS_CONNECTION_URL=redis://redis/ OAUTH2_PROXY_COOKIE_SECURE=false OAUTH2_PROXY_COOKIE_SECRET=xxxxxxxxxx
OAUTH2_PROXY_CLIENT_ID
,OAUTH2_PROXY_CLIENT_SECRET
は前の手順で取得した、Client ID と Secret を指定。OAUTH2_PROXY_REDIRECT_URL
には「承認済みリダイレクト URL」に指定した URL を指定。OAUTH2_PROXY_COOKIE_SECRET
は、 Overview | OAuth2 Proxy に記載の方法で生成する
./chatgpt-ui.env
を作成。
OPENAI_API_KEY=xxxxxxxx
API キーは以下で作成 https://platform.openai.com/account/api-keys
docker-compose を実行して、http://localhost:8000/ にアクセスする
docker-compose up
Google の認証が終わったあと、ChatGPT UI の画面が表示される、はず。