RedashとG SuiteのSAML設定

redash Business Intelligence (BI)

概要

  • なかなか記事が見つからなかったので書いておきます。
  • 8時間ぐらい時間を使ったorz

手順

G Suite側の設定

G Suiteの管理権限が必要になると思います。

https://admin.google.com/AdminHome?hl=en#AppsList:serviceType=SAML_APPS にアクセスして、SAMLのアプリを追加します。

URLが変更された様子: https://admin.google.com/ac/apps/unified

RedashはIDpメタデータによる連携に対応しているので、このファイルをダウンロードしてRedashからアクセスできるURLに保存しておきます。

私は、gistのsecretにしました。*1 (間違って、このURLのgistを削除してしまったり、github.comがダウンしているときにはどうしようという疑問は残ります)

あと、Entity IDのURLをメモしておきます。(ダウンロードしたIDp metadataのXMLファイル内にも記載があるのでメモらなくてもOKですが)

このあたりは適当に入力して、Nextへ。

ACSのURLは、Redashを設置しているサイトのトップページURLに、/saml/callback?org_slug=default をappendしたURLです。

Entity IDは、*1のEntity IDを入れれば良いっぽいです。(本当は違うんだろうけど、Redash側のエンドポイントがわからないし、同じEntityの名前なようなのでこれで行けるんだと思います)

Entity IDはGoogle Workspaceに登録されたApps内でユニークになる必要があります。なので、Service Providerを一意に識別できる文字列を入れておけば良さそうです。例えば、Service ProviderのURL。

Start URLは適当にRedashのトップページを入れておきます。その他はデフォルトで良いです。

Attributeのマッピングを以下のように設定します。後ほど設定もできます。(これを設定しないとRedash側でエラーが起きてSSOができません)

Finishを押して設定を完了します。

作成直後はこのアプリ自体が無効になっているので有効にするのをお忘れなく。

Redash側の設定

設定の変更にはRedashのadmin権限が必要です。

SAML Metadata URLには、G Suite側で作成したIDP MetadataのURLを記載します。*1 で取得したファイルへの参照です。

SAML Entity IDも*1に含まれているか、途中で表示されたEntity IDのURLを記入します。

SAML NameID Formatには、urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressを入力します。

最後に保存を押してテストをすればOKです。

Redash側のSAML関連のコードはこのあたりでしたので、コードを読んで設定値を探してました。

https://github.com/getredash/redash/blob/a682265e1396cf46b7baf8cc593239b6129c5662/redash/authentication/saml_auth.py#L59

テスト時の注意

  • 既存のメアドがredashにある状態で、SAMLでSSOしても問題ありません
  • 新規ユーザでのテストのために、自分のメアドを一時的に置き換えてSAMLでSSOしてしまうと後々ユーザを消すのが大変なのでやめたほうが良いです

コメント