😎
RedashのGoogle Login(OAuth)認証
はじめに
RedashのGoogle Login(OAuth)認証は、GCPプロジェクトのクライアントID、クライアントシークレットを使用して行う。
今回はローカルにRedash環境を構築し検証する。
Google Compute Cloud側の設定
GCPへログイン
gcloud auth login
プロジェクトの作成
gcloud projects create --name=redash
OAuth同意画面の作成
APIとサービス > OAuth同意画面
- User Type: 内部
- アプリ名: Redash
- ユーザーサポートメール: <任意>
- メールアドレス: <任意>
認証情報の作成
APIとサービス > 認証情報
- 認証情報を作成: OAuthクライアントID
- アプリケーションの種類: ウェブアプリケーション
- 名前: Redash
- 承認済みのリダイレクトURI: http://localhost:8080/oauth/google_callback
クライアントID、クライアントシークレットを控えておく。
Redash側の設定
compose.yml
compose.yml
x-redash-service: &redash-service
image: redash/redash:10.1.0.b50633
depends_on:
- postgres
- redis
- mailhog
env_file: .env
restart: always
services:
server:
<<: *redash-service
command: server
ports:
- "5000:5000"
environment:
REDASH_WEB_WORKERS: 4
scheduler:
<<: *redash-service
command: scheduler
worker:
<<: *redash-service
command: worker
environment:
QUEUES: "periodic emails default schemas scheduled_queries queries"
WORKERS_COUNT: 2
redis:
image: redis:6.2.6-alpine3.15
ports:
- "6379:6379"
restart: always
volumes:
- type: volume
source: redis
target: /data
postgres:
image: postgres:14.1-alpine3.15
ports:
- "5432:5432"
env_file: .env
volumes:
- type: volume
source: postgres
target: /var/lib/postgresql/data
restart: always
nginx:
image: redash/nginx:latest
ports:
- "8080:80"
depends_on:
- server
external_links:
- server:redash
restart: always
mailhog:
image: mailhog/mailhog:latest
ports:
- "1025:1025"
- "8025:8025"
restart: always
mysql:
image: kakakakakku/mysql-world-database:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
TZ: Japan
ports:
- "3306:3306"
volumes:
- type: volume
source: mysql
target: /var/lib/mysql
volumes:
redis:
postgres:
mysql:
.env
.env
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
POSTGRES_PASSWORD=mAor6Nd5QxcFBlLQtpwVK5uFrJxrY7U2
REDASH_COOKIE_SECRET=i5UV13bbfALHVmZLj0ROZBAjihI0plsF
REDASH_SECRET_KEY=56WAuxuGvCq9GjdHBycZaNdCx3sAsqi7
REDASH_DATABASE_URL=postgresql://postgres:mAor6Nd5QxcFBlLQtpwVK5uFrJxrY7U2@postgres/postgres
# mail
REDASH_MAIL_SERVER=mailhog
REDASH_MAIL_PORT=1025
REDASH_MAIL_USE_TLS=false
REDASH_MAIL_USE_SSL=false
REDASH_MAIL_USERNAME=
REDASH_MAIL_PASSWORD=
REDASH_MAIL_DEFAULT_SENDER=admin@example.com
REDASH_HOST=http://localhost:8080
# Google Login (OAuth)
REDASH_GOOGLE_CLIENT_ID=<クライアントID>
REDASH_GOOGLE_CLIENT_SECRET=<クライアントシークレット>
Redashの起動
docker compose run --rm server create_db
docker compose up -d
Admin Userの登録
http://localhost:8080
- Name: admin
- Email Address: admin@example.com
- Password: password
- Organization Name: redash-example
Google Login認証に変更する
Settings > General > Authentication
- Password Loginをオフにする
- Google Loginにドメインを追加
Redashを再起動
docker compose restart
Discussion