Looker(Google Cloud コア)ユーザー認証に Google OAuth を使用する

Google OAuth は、Identity and Access Management(IAM)と組み合わせて、Looker(Google Cloud コア)ユーザーを認証するために使用されます。

認証に OAuth を使用する場合、Looker(Google Cloud コア)は OAuth 2.0 プロトコルを介してユーザーを認証します。インスタンスを作成するときに、任意の OAuth 2.0 クライアントを使用して認証情報を作成します。たとえば、このページでは、 Google Cloud コンソールを使用して Looker(Google Cloud コア)インスタンスの認証を設定し、OAuth 認証情報を作成する手順について説明します。

別の認証方式がプライマリ認証の場合、Google OAuth がデフォルトでバックアップ認証方式になります。Google OAuth は、Cloud カスタマーケアがサポートを提供する際に使用する認証方法でもあります。

認証に使用される OAuth クライアントは、インスタンスのセットアップに使用された OAuth クライアントと同じである必要があります。

OAuth と IAM による認証と認可

OAuth と組み合わせて使用する場合、Looker(Google Cloud コア)IAM ロールが、特定の Google Cloud プロジェクト内のすべての Looker(Google Cloud コア)インスタンスに対して次のレベルの認証と認可を提供します。与えるアクセスレベルに応じて、次のいずれかの IAM ロールを各プリンシパルに割り当てます。

IAM の役割 認証 承認
Looker インスタンス ユーザー(roles/looker.instanceUser

Looker(Google Cloud コア)インスタンスにログインできる

Looker(Google Cloud コア)に初めてログインしたときに、新規ユーザーのロールで設定されているデフォルトの Looker ロールが付与される。

Google Cloud コンソールで Looker(Google Cloud コア)リソースにアクセスすることはできません。

Looker 閲覧者(roles/looker.viewer Looker(Google Cloud コア)インスタンスにログインできる Looker(Google Cloud コア)に初めてログインしたときに、新規ユーザーのロールで設定されているデフォルトの Looker ロールが付与される。

Google Cloud コンソールで Looker(Google Cloud コア)インスタンスのリストとインスタンスの詳細を表示できる
Looker 管理者(roles/looker.admin Looker(Google Cloud コア)インスタンスにログインできる Looker(Google Cloud コア)に初めてログインしたときに、新規ユーザーのロールで設定されているデフォルトの Looker ロールが付与される。

プライマリ OAuth またはバックアップ OAuth を使用する Looker(Google Cloud コア)へのログイン時、およびユーザーが Looker API を呼び出すたびに検証されます。このロール(または looker.instances.update 権限を含むカスタムロール)は、インスタンス内の IAM 経由の管理者ロールも付与します。

IAM 経由の管理者ロールには、管理者 Looker ロールのすべての権限と機能が含まれています。このロールは、Looker(Google Cloud コア)インスタンス内で削除または再割り当てできません。IAM 経由の管理者ロールを削除するには、プリンシパルを Looker 管理者(roles/looker.admin)以外の IAM ロールに再割り当てします。IAM ロールの変更は、変更後にユーザーがサードパーティの ID プロバイダでログインした場合でも、Looker(Google Cloud コア)インスタンスに自動的に同期されます。詳細については、IAM を介した Looker 管理者ロールと Looker 管理者ロールをご覧ください。

ユーザーの OAuth 更新トークンが有効である限り、そのユーザーが後でサードパーティの ID プロバイダでログインした場合でも、Looker(Google Cloud コア)内でユーザーのロールは Admin via IAM と表示されます。OAuth 更新トークンの有効期限が切れた場合や取り消された場合は、ユーザーは OAuth を使用してインスタンスに再度ログインし、IAM 経由の管理者ロールを再度取得する必要があります。

Google Cloud コンソール内で Looker(Google Cloud コア)のすべての管理タスクを実行できる

さらに、プロジェクトの owner ロールを持つユーザー アカウントは、そのプロジェクト内にある任意の Looker(Google Cloud コア)インスタンスにログインして管理できます。これらのユーザーには、管理者 Looker ロールが付与されます。

必要な権限が事前定義された役割で提供されていない場合は、カスタムの役割を独自に作成することもできます。

Looker(Google Cloud コア)アカウントは、Looker(Google Cloud コア)インスタンスに初めてログインしたときに作成されます。

管理者 Looker ロールと IAM 経由の管理者 Looker ロール

Looker(Google Cloud コア)インスタンス内には、管理者権限セットを使用し、インスタンス内で同じ管理者権限を付与する 2 つのロールがあります。次の表は、2 つのロールの類似点と相違点をまとめたものです。

プロパティ 管理者 Looker ロール IAM Looker ロール経由の管理者
信頼できる情報源 Looker(Google Cloud コア)インスタンスの別の管理者によって付与された Looker 管理者 IAM ロールに直接リンクされている
Looker(Google Cloud コア)インスタンス内で追加または削除できますか? いいえ
IAM で追加または削除できますか? いいえ
Looker(Google Cloud コア)内の権限 すべての権限 すべての権限
Google Cloud コンソール内の権限 なし すべての Looker(Google Cloud コア)リソースに対する完全アクセス権
ロールの検証 Looker(Google Cloud コア)インスタンス内で継続的に Looker(Google Cloud コア)インスタンスへのログイン時と Looker API 呼び出し時。

IAM でロールを変更すると、変更が反映されるまでに数分かかることがあります。
範囲 個々の Looker(Google Cloud コア)インスタンス Google Cloud プロジェクト内のすべての Looker(Google Cloud コア)インスタンス

ユーザーは、管理者IAM 経由の管理者の両方の Looker ロールを持つことができます。したがって、管理者権限を取り消す場合は、Looker(Google Cloud コア)インスタンス内の IAM ロールと管理者ロールの両方を削除してください。

Looker(Google Cloud コア)インスタンス内での OAuth の構成

Looker(Google Cloud コア)インスタンスでは、[管理] メニューの [認証] セクションにある [Google 認証] ページで、一部の Google OAuth 設定を構成できます。管理者の Looker ロールが必要です。

ユーザー アカウントを統合する

[次を使用してユーザーを統合] フィールドに、既存のユーザー アカウントへの最初の OAuth ログインの統合方法を指定します。ユーザーが OAuth を使用して初めてログインすると、このオプションでは、一致するメールアドレスでアカウントを探して、ユーザーを既存のアカウントに接続します。ユーザーにアカウントがない場合は、新しいユーザー アカウントが作成されます。

次のシステムのユーザーを統合できます。

  • SAML
  • OIDC

複数のシステムを設定している場合は、このフィールドで統合するシステムを複数指定できます。Looker(Google Cloud コア)は、指定された順序でシステムからユーザーを検索します。たとえば、最初に OIDC を使用して一部のユーザーを作成し、その後 SAML を使用した場合、ユーザーが OAuth で初めてログインしようとすると、Looker(Google Cloud コア)は最初に OIDC を使用してユーザーを検索し、OIDC でユーザーの一致が見つからない場合は、SAML を使用してユーザーを検索します。

Looker(Google Cloud コア)でユーザーを統合しない場合は、このフィールドを空白のままにします。

Google グループをミラーリング

管理対象の Google グループがある場合、Looker(Google Cloud コア)は Google グループのメンバーシップをミラーリングする Looker グループを作成できます。つまり、Looker(Google Cloud コア)でユーザーを直接設定する必要はなく、Google グループのメンバーシップを管理することでユーザー アクセスを管理できます。また、Looker グループを使用して、グループ メンバーにロールを割り当てコンテンツ アクセス制御を設定し、機能とデータへのアクセスを制御し、ユーザー属性を割り当てることもできます。

グループのミラーリングが正しく機能するには、ユーザーに VIEW_MEMBERSHIP 権限が必要です。この権限により、ユーザーは自分が所属する Google グループのメンバーシップを表示できます。Google グループの UI 設定でこの権限を付与するには、[メンバーを表示できるユーザー] フィールドを [グループ メンバー] に設定します。

ミラーリングされた Looker グループ(および関連するロールとアクセス権)は、新しいユーザーが Looker(Google Cloud コア)インスタンスに初めてログインするときに適用されます。このグループは既存のユーザーには適用されません。ユーザーの初回ログイン後に Looker(Google Cloud コア)内のユーザー アカウントから削除された場合は、再適用されません。

Looker(Google Cloud コア)のプライマリ認証方法でのみグループ ミラーリングを有効にすることをおすすめします。OAuth をバックアップの認証方法として使用している場合は、OAuth のグループ ミラーリングを有効にしないでください。プライマリ認証方法とセカンダリ認証方法の両方でグループ ミラーリングを有効にすると、次の動作が発生します。

  • ユーザーが ID を統合している場合、グループのミラーリングでは、ログインに使用された実際の認証方法に関係なく、第 1 の認証方法が照合されます。
  • ユーザーに統合された ID がない場合、グループ ミラーリングはログインに使用された認証方法と一致します。

ミラーリングされたグループを有効にする手順

グループ ミラーリングを有効にするには、次の操作を行います。

  1. Google Cloud コンソールで、OAuth クライアントを含む Google Cloud プロジェクトで Cloud Identity API を有効にします。API を有効にするには、Service Usage 管理者roles/serviceusage.serviceUsageAdmin)の IAM ロールが必要です。

    API を有効にする

  2. Google Cloud コンソールで、OAuth クライアントの同意画面を更新して https://www.googleapis.com/auth/cloud-identity.groups.readonly スコープを追加します。スコープを追加するには、clientauthconfig.clients.update IAM 権限が必要です。同意画面を更新する手順は次のとおりです。

    • OAuth クライアントに移動します。
    • [データアクセス] ページを選択します。
    • [スコープを追加または削除] ボタンをクリックします。[選択したスコープを更新] パネルが開きます。
    • https://www.googleapis.com/auth/cloud-identity.groups.readonly スコープを見つけて、その横にあるチェックボックスをオンにします。
    • [更新] ボタンをクリックしてスコープを追加します。
    • パネルを閉じて、[データアクセス] ページの [保存] をクリックして、スコープを保存します。

  3. Looker(Google Cloud コア)インスタンスで、[Google 認証] ページの [Google グループをミラーリング] 切り替えボタンを有効にします。この切り替えはデフォルトで無効になっています。次のフィールドに値を入力します。

    • [Looker Group Name] フィールドに、Looker グループの名前を追加します。これは、Looker(Google Cloud コア)内の [グループ] ページに表示される名前です。
    • [Google グループ ID] フィールドに、ミラーリングする Google グループの名前またはメールアドレスを入力します。
    • [ロール] フィールドに、そのグループのメンバーに割り当てる Looker ロールを入力します。

Looker(Google Cloud コア)は、[Google 認証] ページに追加された Google グループごとに 1 つの Looker グループを作成します。これらの Looker グループは、Looker(Google Cloud コア)の [グループ] ページで確認できます。

ミラーリングされたグループの編集

Google グループのメンバーシップを変更すると、その変更はミラーリングされた Looker グループのメンバーシップに自動的に伝播され、各ユーザーが次にログインするときに検証されます。

[Google 認証] ページでグループに割り当てられている [カスタム名] フィールドまたは [ロール] フィールドを編集すると、ミラーリングされた Looker グループの名前が Looker(Google Cloud コア)の [グループ] ページに表示される方法、またはグループに割り当てられているロールが変更されますが、グループ メンバーは変更されません。

[Google 認証] ページの [Google グループ ID] フィールドの名前またはメールアドレスを新しい Google グループの ID に変更すると、ミラーリングされた Looker グループのメンバーが新しい Google グループのメンバーに変更されますが、[Google 認証] ページで定義されているグループ名とロールは維持されます。

ミラーリング対象のグループに対して行われた編集は、そのグループのユーザーが次に Looker(Google Cloud コア)にログインするときに適用されます。

ミラーリングされたグループを無効にする

Looker(Google Cloud コア)内での Google グループのミラーリングを停止するには、Looker(Google Cloud コア)インスタンスの [Google 認証] ページで [Google グループのミラーリング] 切り替えを無効にします。切り替えを無効にすると、次のような動作になります。

  • ユーザーがいないミラーリングされた Google グループはすぐに削除されます。
  • ユーザーが含まれているミラー Google グループは、孤立したグループとしてマークされます。このグループのユーザーが 31 日以内にログインしなかった場合、グループは削除されます。孤立した Google グループにユーザーを追加または削除することはできなくなりました。

高度なロール管理

[Google グループのミラーリング] 切り替えが有効になっている場合、[Google 認証] ページに [高度なロール管理] 設定が表示されます。このセクションのオプションは、Looker グループと Google からミラーリングされたユーザーの構成時に Looker 管理者がどの程度の柔軟性があるかを決定します。

Looker のグループとユーザーの構成を Google グループの構成と厳密に一致させる場合は、[高度なロール管理] オプションをすべてオンにします。すべてのオプションを有効にすると、Looker 管理者はミラーリングされたグループ メンバーを変更できず、Google グループを介したユーザーにのみロールを割り当てることができます。

Looker(Google Cloud コア)内でグループをより柔軟にカスタマイズする場合は、これらのオプションをオフにします。Looker(Google Cloud コア)グループは引き続き Google グループの構成をミラーリングしますが、Looker(Google Cloud コア)内で追加のグループやユーザー管理機能を使用することができます。たとえば、Looker グループに Google ユーザーを追加することや、Google ユーザーに Looker のロールを直接割り当てることができます。

Looker(Google Cloud コア)インスタンスの場合、これらのオプションはデフォルトでオフになっています。

[高度なロール管理] セクションには、次のオプションがあります。

  • 個々の Google ユーザーが直接ロールを受け取れないようにする: このオプションをオンにすると、Looker 管理者は Looker ロールを Google ユーザーに直接割り当てることができなくなります。Google ユーザーにロールを割り当てることができるのは、グループ メンバーのみです。Google ユーザーがビルトイン(ミラーリングされていない)Looker グループでメンバーシップを許可されている場合でも、ミラーリング対象の Google グループとビルトイン Looker グループの両方からロールを継承できます。以前に直接ロールが割り当てられた Google ユーザーは、次回のログイン時にそのロールが削除されます。

    このオプションをオフにすると、Looker 管理者は Looker(Google Cloud コア)インスタンス内の Google ユーザーに Looker のロールを直接割り当てることができます。

  • Google 以外のグループでの直接メンバーシップを防止する: このオプションをオンにすると、Looker 管理者は、ミラーリングされたグループのメンバーを、[Google 認証] ページのミラーリングされたグループ構成に含まれていないビルトイン Looker グループに直接追加できなくなります。

    このオプションを選択すると、以前に組み込みの Looker グループに割り当てられた Google ユーザーは、次回のログイン時にそれらのグループから削除されます。

    このオプションをオフにすると、Looker 管理者はビルトイン Looker グループに直接 Google ユーザーを追加できます。

  • Google 以外のグループからのロールの継承を防止する: このオプションをオンにすると、ミラーリングされたグループのメンバーは、ビルトイン Looker グループからロールを継承できなくなります。ミラーリングされた Google グループをビルトイン Looker グループのメンバーにできる場合、Google ユーザーは任意のビルトイン Looker グループのメンバーを保持できます。以前に組み込みの Looker グループからロールを継承していた Google ユーザーは、次回のサインイン時にそのロールを失います。

    このオプションをオフにすると、ミラーリングされたグループ、またはビルトイン Looker グループのメンバーとして追加された Google ユーザーは、ビルトイン Looker グループに割り当てられたロールを継承します。

  • 認証にはロールが必要: このオプションがオンの場合、Google ユーザーに Looker ロールが割り当てられている必要があります。ロールが割り当てられていない Google ユーザーは Looker(Google Cloud コア)にログインできません。

    このオプションがオフの場合、ロールが割り当てられていない場合でも、Google ユーザーは Looker(Google Cloud コア)に対して認証を行うことができます。ロールが割り当てられていないユーザーは、Looker(Google Cloud コア)でデータを表示したり操作したりすることはできませんが、Looker(Google Cloud コア)にログインすることはできます。

デフォルトの Looker ロールを設定する

[Google グループをミラーリング] 切り替えが無効になっている場合、[新規ユーザーのロール] 設定が [Google 認証] ページに表示されます。この設定では、Looker(Google Cloud コア)インスタンスに初めてログインしたときに、Looker インスタンス ユーザー(roles/looker.instanceUser)の IAM ロールまたは Looker 閲覧者(roles/looker.viewer)の IAM ロールを持つユーザー アカウントに付与されるデフォルトの Looker ロールを設定できます。デフォルトのロールを設定する手順は次のとおりです。

  1. [管理] メニューの [認証] セクションにある [Google 認証] ページに移動します。
  2. [Roles for new users] 設定で、すべての新規ユーザーにデフォルトで付与するロールを選択します。この設定には、Looker(Google Cloud コア)インスタンス内のすべてのデフォルトのロールカスタムロールのリストが含まれます。

管理者の役割はデフォルトの役割にできません。Looker 管理者(roles/looker.admin)の IAM ロールを持つユーザー アカウントには、[新しいユーザーのロール] の設定で選択したロールに加えて、最初のログイン時に IAM 経由の管理者 Looker ロールが付与されます。

[新しいユーザーのロール] 設定をカスタマイズした後で [Google グループのミラーリング] 切り替えを有効にすると、[新しいユーザーのロール] 設定でユーザーに割り当てられたロールは、ユーザーの次回のログイン時に削除され、[Google グループのミラーリング] 設定で割り当てられたロールに置き換えられます。

ユーザー認証をテストする

[Google 認証をテストする] ボタンをクリックして設定をテストします。テストでは Google の OAuth サーバーにリダイレクトされ、ブラウザタブが開きます。このタブには次の情報が表示されます。

  • Looker(Google Cloud コア)がサーバーと通信して検証できたかどうか。
  • Looker(Google Cloud コア)がサーバーから取得するユーザー情報。サーバーが適切な結果を返すことを検証する必要があります。
  • 情報がどのように検出されたかを示すトレース。情報が正しくない場合は、トレースを使用してトラブルシューティングを行います。追加情報が必要な場合は、未加工の XML サーバー ファイルを読むことができます。
  • 受信したデコードされた ID トークンと未加工の ID トークンの両方。これらは、ユーザーの詳細と Google の構成を確認するために使用できます。

設定を保存して適用

情報の入力が完了し、すべてのテストに合格したら、[上記の構成を確認しました。グローバルに適用したいと考えています] チェックボックスをオンにし、[送信] をクリックして保存します。

Looker(Google Cloud コア)インスタンスにユーザーを追加する

Looker(Google Cloud コア)インスタンスが作成されると、IAM を介してユーザーを追加できます。ユーザーを追加する手順は次のとおりです。

  1. プロジェクト IAM 管理者ロールまたは IAM アクセスを管理できる別のロールがあることを確認します。
  2. Looker(Google Cloud コア)インスタンスが存在する Google Cloud コンソール プロジェクトに移動します。

  3. Google Cloud コンソールの [IAM と管理] > [IAM] セクションに移動します。

  4. [アクセス権を付与] を選択します。

  5. [プリンシパルを追加] セクションで、次のいずれかを追加します。

    • Google アカウントのメールアドレス
    • Google グループ
    • Google Workspace のドメイン
  6. [ロールを割り当てる] セクションで、事前定義された Looker(Google Cloud コア)の IAM ロールか、追加したカスタムロールを選択します。

  7. [保存] をクリックします。

  8. Looker(Google Cloud コア)の新しいユーザーにアクセス権が付与されたことを伝え、インスタンスの URL を案内します。インスタンスにログインすると、アカウントが作成されます。自動的に通知が送信されることはありません。

ユーザーの IAM ロールを変更すると、その IAM ロールは数分以内に Looker(Google Cloud コア)インスタンスに反映されます。既存の Looker ユーザー アカウントがある場合、そのユーザーの Looker ロールは変更されません。

すべてのユーザーは、前述の IAM の手順でプロビジョニングする必要があります。ただし、1 つの例外として、Looker(Google Cloud コア)インスタンス内で Looker API 専用サービス アカウントを作成できます。

OAuth での Looker(Google Cloud コア)へのログイン

初回ログイン時に、Google アカウントでログインするよう求められます。Looker 管理者がアクセスを付与するとき [プリンシパルを追加] フィールドにリストしたものと同じアカウントを使用する必要があります。ユーザーには、OAuth クライアントの作成時に構成された OAuth 同意画面が表示されます。ユーザーが同意画面に同意すると、Looker(Google Cloud コア)インスタンス内のアカウントが作成され、ログインされます。

その後、承認が期限切れになったり、ユーザーが取り消したりしない限り、ユーザーは Looker(Google Cloud コア)に自動的にログインされます。期限切れまたは取消があったとき、ユーザーに OAuth 同意画面が再度表示され、認可に同意するよう求められます。

一部のユーザーに、API アクセス トークンの取得に使用する API 認証情報が割り当てられている場合があります。これらのユーザーの承認の有効期限が切れた場合や、承認が取り消された場合、API 認証情報は機能しなくなります。現在の API アクセス トークンも機能しなくなります。この問題を解決するには、影響を受ける Looker(Google Cloud コア)インスタンスごとに Looker(Google Cloud コア)UI に再度ログインして、認証情報を再認可する必要があります。または、API のみのサービス アカウントを使用すると、API アクセス トークンの認証情報認可の失敗を回避できます。

Looker(Google Cloud コア)への OAuth アクセス権の削除

IAM アクセスを管理できるロールをお持ちの場合は、アクセス権を付与した IAM ロールを取り消すことで、Looker(Google Cloud コア)インスタンスへのアクセス権を削除できます。ユーザー アカウントの IAM ロールを削除すると、その変更は数分以内に Looker(Google Cloud コア)インスタンスに反映されます。ユーザーはインスタンスに対する認証ができなくなります。ただし、[ユーザー] ページには、引き続きそのユーザー アカウントが表示されます。[ユーザー] ページからユーザー アカウントを削除するには、Looker(Google Cloud コア)インスタンスのユーザーを削除します。

バックアップの認証方法としての OAuth の使用

SAML または OIDC がプライマリ認証方法の場合、OAuth はバックアップの認証方法になります。

バックアップ方法として OAuth を設定するには、インスタンスにログインするための適切な IAM ロールを各 Looker(Google Cloud コア)ユーザーに付与します。

バックアップ方法を設定したら、ユーザーは次の手順でアクセスできます。

  1. ログインページで [Google での認証] を選択します。
  2. Google 認証を確認するダイアログが表示されます。ダイアログで [確認] を選択します。

ユーザーは Google アカウントを使用してログインできます。OAuth で初めてログインすると、インスタンスの作成時に設定された OAuth 同意画面を受け入れるように求められます。

次のステップ