投稿者:鈴木

こんにちは、日本情報通信の鈴木と申します。
BIツールを主に担当しており、Lookerに携わるようになってから早いことに約1年程経ちました。

Lookerはデフォルトではメールアドレスとパスワードでユーザ認証をしますが、SAML・LDAP・Google認証など使用することが可能です。
弊社はGoogleサービスとの連携が多いため、今回Google認証について検証してみました。

目次

  1. Google認証の概要
  2. 注意事項
  3. 前提
  4. 手順
    1. Google側の設定
    2. Looker側の設定
  5. 検証結果
  6. 最後に

1. Google認証の概要

LookerのGoogle認証とは、

  • GoogleのOAuth経由で認証を行い、GoogleアカウントでLookerにログインすることができます
  • Google認証にて設定したドメインに紐づいているGoogleアカウントであれば、ユーザを個別でLookerに招待する必要はなく、自動的にLookerにアクセスできます(デフォルトの役割を設定することが可能です。権限はアカウント作成後更新できます)
  • とてもざっくりですが構成イメージは以下になります。 Techblog_08.png

    2. 注意事項

    注意事項がいくつかあるので、Google認証を有効化する前にご確認ください。

  • Google認証に利用できるGoogleアカウントは組織によって管理され、GSuiteアカウントに登録されているアカウントが対象となっております。個人で作成したGoogleアカウントは対象になっておりません
  • 「alternate login」オプションを設定していない限り、Google認証でのみユーザを認証します
  • 既存のユーザアカウントを設定したドメインとマージできますが、メールアドレスがドメインと一致するアカウントに限ります。設定以外のドメインを持つアカウントは、ログインする機能を失うので既存アカウントのドメインを確認してください
  • 認証が成功すれば自動的にログイン可能となってしまうため、アカウント数は上限に達していないか定期的に確認する必要があります
  • 設定したドメイン外のユーザがログインする必要がある場合、代替ログインオプションを有効にし、「login_special_email」を付与すればGoogle認証を介さず通常のログインができます
  • Google認証有効後、無効にしたい場合はGoogle認証が追加された後に作成されたユーザはログイン不可となります。Lookerでは有効後の無効化については非推奨であり、追加の手順はLookerサポートに問い合わせとなります
  • 3. 前提

    本稿はGoogle認証を有効化しLookerインスタンスに適用した記事ではなく、「Test Google Authentication」というGoogle認証のテストを行える機能のみで検証しております。
    実際に有効化した手順で検証していないことをご了承ください。

    Google認証を有効にするには管理者がGoogle側とLooker側の両方で設定する必要があります。各環境で適切な権限を付与し、作業を行います。
    今回は以下の権限で作業しております。

  • Google:オーナー(今回はオーナー権限で実施していますが適切な権限を付与してください)
  • Looker:Admin(Admin権限必須)
  • 4.手順

    1. Google側の設定

    Google側でOAuthクライアントIDを作成する手順となります。
    詳細な手順はこちらのSetting up OAuth 2.0を参照ください。
    本稿ではOAuth同意画面は設定済みであることを前提とし、OAuth クライアントIDの作成から記載しています。

    Googleのコンソール画面より [APIとサービス] > [認証情報] 画面に遷移し、認証情報を作成します。 OAuth クライアントIDは下記設定を入力し、作成します。
    Techblog_09.png

    作成後にClient IDとClient Secretが表示されます。
    Looker側での設定に必要なためコピーしておきます。(コピーし忘れた場合も後程OAuth画面から確認できます)

    以上でGoogle側の設定は完了となります。

    2. Looker側の設定

    LookerのGoogle認証を有効にする手順となります。

    Looker画面上部の [管理] > 認証の [Google] をクリックし、Google Authentication画面に遷移します。
    [Enabled] をクリックし、設定値を入力します。(こちらのボタンを押してすぐに適用されることはありません)
    Techblog_01.png

    Google側で作成したClient IDとClient Secretを貼り付けます。
    Domainsには今回アクセスを許可するドメインを入力します。ここに入力するドメインは組織で管理されていることが必須であり、指定されたドメインのすべてのGoogleアカウントがLookerにログインすることができるようになります。 また、複数管理している場合はカンマ区切りで入力することが可能です。

    Techblog_02.png

    次に、Lookerインスタンスの動作を制御するオプションを設定します。
    オプション項目は基本的にはLookerは設定することを推奨しております。権限については任意のロールを選択します。
    Techblog_03.png Techblog_10.png

    ここまでで設定が完了となります。
    上記設定で問題ないことを確認し、認証のテストを行います。

    [Test Google Authentication] をクリックします。(こちらのボタンもLookerインスタンスに適用されることはなく、あくまでテスト用のボタンのため安心ください)
    Techblog_04.png

    ※認証のテストには現在Googleにログインしている場合、ログインユーザが適用されます。Googleアカウントを選択したい場合は事前にログアウトをして作業することを推奨します。

    認証に成功した場合、以下のように「successfully」が表示されます。
    Techblog_05.png

    認証が失敗した場合、以下のように「Error」が表示されます。
    エラーの原因についてはドキュメントに記載あるので参考にしてください。
    Techblog_06.png

    LookerインスタンスにGoogle認証を適用させる場合、上記設定で問題ないことを確認し [Update] をクリックします。
    ※今回はUpdateは実施していないです

    5. 検証結果

    今回は、以下のGoogleアカウントを利用して検証を行いました。
    Techblog_11.png ※本来であれば、組織で管理されているがLookerインスタンスに登録されていないGoogleアカウントで検証を行いたかったのですが、テスト段階だとAdmin権限が付与されている必要があるため検証ができておりません。

    検証結果は以下となります。
    Techblog_12.png

    6. 最後に

    検証結果は無事想定通りとなりました。調査するまではどのドメインも指定すれば認証に利用できると思っていましたが、今回の検証で利用できるアカウントは組織で管理されていることが必須であることがわかりました。 ただ、Google認証は他の認証方法(LDAP、SAML等)と比べて、設定が非常に簡単です。組織で管理されていないアカウントの場合は少しハードルが高いかもしれませんが、こちらの検証自体はとても簡単にできて何度も確認することができるためぜひ参考にしていただき、ご気軽に検証いただければと思います。