home ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング 認証
menu
close
settings
Looker keyboard_arrow_down
language keyboard_arrow_down
English
Français
Deutsch
日本語
search
print
Looker documentation will be moving to cloud.google.com in mid-2022!
All the information you rely on will be migrated and all docs.looker.com URLs will be redirected to the appropriate page.
シングルサインオン(SSO)埋め込み

これらの機能の利用を希望する場合は、Lookerアカウントマネージャーにご連絡ください。

シングルサインオン(SSO)埋め込みは、埋め込まれたプライベートのLook、Explore、ダッシュボード、またはLookMLダッシュボードの情報をユーザーに提供する手段です。この際、別途Lookerにログインするようユーザーに要求しません。代わりに、ユーザーはあなたのアプリケーションを介して認証されます。

SSO埋め込みは、iFrameで使用される特別なLooker URLを作成することで機能します。このURLには、共有したい情報、システムにおけるユーザーのID、そのユーザーに付与する権限を含めます。その後、URLに、Lookerから提供されたシークレットキーを使用して署名します。

パブリック埋め込みについては、Lookのパブリック共有、インポート、埋め込みドキュメンテーションページの中のiframeタグによるパブリック埋め込みのセクションを参照してください。

SSO埋め込みの適切なホスティング

add

Looker 22.0以降、Looker管理者はサードパーティのCookieを必要とせずに、埋め込まれたLookerコンテンツを使用可能にするEmbed Cookieless Authenticationラボ機能を有効にできます。

一部のブラウザ(Safari、または広告やトラッキングのブロック機能がインストールされたブラウザ)では、サードパーティのCookieをブロックするCookieポリシーがデフォルトで適用されています。Looker管理者がEmbed Cookieless Authenticationラボ機能を有効にしている場合、埋め込まれたLookerコンテンツを介したユーザー認証とナビゲーションのためにサードパーティのCookieを手動で有効にする必要はありません。Embed Cookieless Authenticationが有効になっていると、ダッシュボード、Look、Explore間のナビゲーションのような特定のタイプのナビゲーションで、進む矢印や戻る矢印などのブラウザナビゲーションコントロールが機能しません。

Embed Cookieless Authenticationラボ機能が有効でない場合、Lookerはユーザー認証にCookieを使用します。この場合、これらのブラウザでは、ドメインをまたいだ埋め込みiFrameの認証の試みは失敗します(ただし、ユーザーがブラウザのCookieプライバシー設定を変更している場合はその限りではありません)。例えば、https://mycompany.comに情報を埋め込む場合は、Lookerがサブドメイン上にあることを確認する必要があります(https://analytics.mycompany.comなど)。

インスタンスがLookerによってホストされている場合は、Lookerサポートにお問い合わせの上、必要なDNS構成を設定してください。Lookerのヘルプセンター[Contact Us]をクリックしてサポートリクエストを開きます。

顧客がホストするLookerインスタンスがある場合、SSO埋め込みを使用するアプリケーションがLookerインスタンスと同じベースドメイン上にあることを確認してください。

クローズドシステムを使用したクライアント可視性の制御

SSO埋め込み構成では一般的に、Lookerユーザーはそれぞれの顧客にデータを提供していますが、さまざまな会社やグループのクライアントを扱っていて、これらのクライアントが互いの認識できないようにします。このようなシナリオでは、顧客の情報を保護するため、Lookerをクローズドシステム(マルチテナントインストールとも呼ばれる)として設定することを強くお勧めします。クローズドシステムでは、コンテンツがサイロ化されるので、異なるグループのユーザーが相互を認識することができなくなります。したがって、外部ユーザーにインスタンスへのアクセスを許可する前に、[Closed System]オプションを有効にすることをお勧めします。

詳細については、アクセスレベルの設計と設定および組み込み型アナリティクスのセキュリティに関するベストプラクティスドキュメンテーションページを参照してください。

Lookerのシークレットキーの生成

SSO埋め込み要求が正当なものであり、他の誰かによって偽装されたものでないことを検証できるように、最初に「埋め込みシークレット」を生成する必要があります。その手順は次のとおりです。

  1. Lookerの[管理]セクションにある[埋め込み]ページに移動します。
  2. [Embed SSO Authentication]ドロップダウンから[Enabled]を選択し、[更新]をクリックします。
  3. [Reset Secret]ボタンをクリックして埋め込みシークレットを生成します。このシークレットは、リセットしない限り再度Lookerから取得できないため、必ず安全な場所にコピーしておいてください。キーをリセットすると、古いキーを使用する埋め込みがすべて解除されます。

シークレットキーにアクセスできる人であれば、ユーザーや権限を問わず、Lookerインスタンスが接続されているモデルにアクセスするためのURLを作成できます。埋め込みLookerインスタンスに対する管理者資格にするのと同様にSSO埋め込みシークレットを保護してください。SSO埋め込みを使用しない場合は無効にするようにしてください。

埋め込みURLの構築

適切なURLを構築するには、コードを書いて、URLをシークレットキーで適切にエンコーディングし、他のセキュリティ関連項目を生成できるようにする必要があります。SSOの例をまとめたGitHubリポジトリで、いくつかのスクリプト例を参照できます。以降のセクションでは、これらのスクリプトに指定する必要がある情報について説明します。

必要なLooker情報の収集

URLを構築する際には、まず、含める必要があるすべての情報を決定します。次のものが必要になります。

埋め込みURL

埋め込みたいLook、Explore、ダッシュボードのURLを取得します。その後、次のようにドメインを削除し、パスの前に/embedを追加します。

項目 通常のURLパターン 埋め込みURL
Look https://instance_name.looker.com/
looks/4
/embed/looks/4
Explore https://instance_name.looker.com/
explore/my_model/my_explore
/embed/explore/my_model/my_explore
ユーザー定義ダッシュボード https://instance_name.looker.com/
dashboards/1
/embed/dashboards/1
ユーザー定義レガシー
ダッシュボード
https://instance_name.looker.com/
dashboards-legacy/1
/embed/dashboards-legacy/1
LookMLダッシュボード https://instance_name.looker.com/
dashboards/my_model::my_dashboard
/embed/dashboards/my_model::my_dashboard
レガシーLookML
ダッシュボード
https://instance_name.looker.com/
dashboards-legacy/my_model::my_dashboard
/embed/dashboards-legacy/my_model::my_dashboard

埋め込まれたコンテンツは、コンテンツの実働バージョンを常に反映しています。コンテンツに影響を与えるものの、プロダクションにまだデプロイされていない、開発モードで加えられた変更すべては、埋め込みでは表示されません。

権限

権限セットによって、ユーザーまたはグループが実行できる操作が定義されます。権限を適用するには、次の2通りの方法があります。

ユーザーに付与する権限を決定します。次のリストは、SSO埋め込みに使用可能なすべての権限を示しています。次のリストに記載されていない権限はSSO埋め込みではサポートされていません。

権限 依存する権限 タイプ 定義
access_data なし モデル固有 データにアクセスすることをユーザーに許可します(Look、ダッシュボード、Exploreを閲覧するために必要です)。
see_lookml_dashboards access_data モデル固有 LookMLダッシュボードを閲覧することをユーザーに許可します
see_looks access_data モデル固有 Lookを閲覧することをユーザーに許可します
see_user_dashboards see_looks モデル固有 ユーザー定義型ダッシュボードを閲覧したり、埋め込みからフォルダを参照したりすることをユーザーに許可します
explore see_looks モデル固有 Exploreページを閲覧することをユーザーに許可します
create_table_calculations explore インスタンス全体 Exploreから表計算を作成するために必要です
create_custom_fields explore インスタンス全体 追加事項22.4Exploreからカスタムフィールドを作成するために必要です
save_content see_looks インスタンス全体 ダッシュボードやLookを変更して保存することをユーザーに許可します
send_outgoing_webhook see_looks モデル固有 任意のウェブフックへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します
send_to_s3 see_looks モデル固有 Amazon S3バケットへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します
send_to_sftp see_looks モデル固有 SFTPサーバーへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します
schedule_look_emails see_looks モデル固有 ユーザーが自分のメールアドレス(「email」というユーザー属性で設定)、またはメールのドメイン許可リストで設定された制限範囲内にあるメールアドレスに、ダッシュボードやLookの配信をスケジュールすることを許可します。create_alerts権限を持つユーザーが、メールのドメイン許可リストで設定された制限範囲内のメールアドレスに、アラート通知を送信することを許可します。
schedule_external_look_emails schedule_look_
emails
モデル固有 任意のメールアドレスへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。create_alerts権限を持つユーザーが、任意のメールドメインにアラート通知を送信することを許可します。
send_to_
integration
see_looks モデル固有 追加事項6.22ユーザーが、Lookerのアクションハブを通じてLookerコンテンツLookerと統合されたサードパーティサービスに配信することを許可します。この権限は、データアクションには関連していません。
create_alerts see_looks インスタンス全体 追加事項6.22ユーザーが、ダッシュボードタイルに関するアラートを作成して、指定した条件を満たすか超えたときに通知を受け取ることを許可します。ユーザーは、自身のアラートと他のユーザーのPublicアラートを編集、複製、削除できます。ユーザーのSlackワークスペースがLookerインスタンスに接続されていない場合、ユーザーはSlackに通知を送信するアラートを作成できません。
download_with_limit see_looks インスタンス全体 クエリの結果を制限付きでダウンロードすることをユーザーに許可します。
download_without_limit see_looks インスタンス全体 クエリの結果を制限なしでダウンロードすることをユーザーに許可します。
see_sql see_looks モデル固有 クエリ用のSQL、およびクエリの実行で発生したSQLエラーを見ることをユーザーに許可します。
clear_cache_refresh access_data モデル固有 追加事項21.14ユーザーは、キャッシュをクリアし、埋め込みダッシュボード、レガシーダッシュボード、ダッシュボードタイル、Look、Exploreを更新できます。この権限を有効にするには、まずキャッシュのクリアと権限の更新ラボ機能が有効になっている必要があります。
see_drill_overlay access_data モデル固有 完全なExploreページに移動することなくドリルダウンすることをユーザーに許可します。
embed_browse_spaces なし インスタンス全体 コンテンツブラウザを有効にして、ユーザーが埋め込みからフォルダを参照できるようにします。embed_browse_spaces権限を付与された埋め込みユーザーは、個人用の埋め込みフォルダおよび所属組織の[共有]フォルダ(存在する場合)にアクセスできます。

embed_browse_spaces権限は、save_content権限を持つユーザーに付与して、そのユーザーがコンテンツの保存先を選択する際にフォルダを参照できるようにすることが推奨されます。

ユーザーがフォルダ内のコンテンツを閲覧するためには、see_lookssee_user_dashboardssee_lookml_dashboardsの各権限も必要になります。
embed_save_shared_space なし インスタンス全体 追加事項21.4save_content権限を持つユーザーは、[保存]ダイアログボックス内から組織の[共有]フォルダ(ある場合)に移動することができます。save_content権限は持っていてもembed_save_shared_space権限を持たないユーザーは、コンテンツを個人用の埋め込みフォルダにのみ保存できます。

embed_save_shared_space権限がコンテンツアクセス権限より優先されることはありません。例えば、ユーザーが共有フォルダに保存できるようにするには、それらのユーザーに共有フォルダに対するManage Access, Editのアクセス権がやはり必要です。さらに、embed_save_shared_space権限がなくても、共有フォルダに対するsave_content権限とManage Access, Editアクセス権を持っているユーザーは、埋め込みダッシュボードの[Explore from here]オプションを使用するなどして共有フォルダに移動する代替手段があれば、そこにコンテンツを保存することができます。

モデルアクセス

ユーザーにアクセス権限を付与するLookMLモデルを決定します。これは単にモデル名のリストになります。

ユーザー属性

ユーザーが設定する必要があるユーザー属性を決定します(存在する場合)。Lookerからのユーザー属性の名前と、ユーザーがその属性に対して設定する必要がある値が必要になります。

グループ

ユーザーが属している必要があるグループを決定します(存在する場合)。グループ名ではなくグループIDが必要になります。SSO埋め込みユーザーをLookerグループに追加することによって、Lookerのフォルダへのユーザーアクセスを管理できます。SSO埋め込みユーザーは、Lookerグループのメンバーに共有されているあらゆるフォルダにアクセスできるようになります。

また、external_group_idパラメーターを使用して、標準のLookerグループに対する外部グループを作成することもできます。その場合、同じexternal_group_idを持つSSO埋め込みユーザーは、外部グループに固有の「グループ」という共有フォルダにアクセスできるようになります。

埋め込みのロール

permissionsパラメーターとmodelsパラメーターによって、埋め込みのユーザーのロールが作成されます。このロールは、Lookers [Admin]セクションのUsersページに、[Embedded Role]として表示されます。埋め込みURLでpermissionsmodelsgroup_idsのパラメーターすべてが指定されると、group_idsパラメーターでリストされているグループにすでに割り当てられているロールに対して埋め込みのロールが付加的になります。これは、Lookerですべてのロールが付加的であるという点で標準ロールと同じです。

例えば、LookerにグループID 1の既存のグループがあり、そのグループにはmodel_oneという名前のモデルに関してexplore権限がすでに与えられている場合に、以下のパラメーターを使用して埋め込みURLを作成するとします。

この場合、埋め込みのユーザーはmodel_oneのデータを表示および探索する権限を継承します。加えて、前述のパラメーターを使用して作成された埋め込みのロールでは、model_twoのデータを表示する権限も付与されます。

埋め込みURLの作成

SSO埋め込みURLの書式は次のとおりです。

https://ホスト/login/embed/埋め込みURL?パラメーター&signature=署名

ホスト

ホストは、Lookerインスタンスがホストされている場所です。例えば、analytics.mycompany.comです。ポート転送を有効にしていない場合は、analytics.mycompany.com:9999のように必ずポート番号を含めてください。

埋め込みURL

埋め込みURLは前述のとおり決定します。書式は次のようになります。

したがって、最終的なURLにはパターン/embed//embed/が含まれることになります(これは正しい表記です)。

埋め込みJavaScriptイベントを使用する場合は、次のように埋め込みURLの末尾に必ずembed_domain(iFrameが使用されているドメイン)を追加してください。

/embed/looks/4

/embed/looks/4?embed_domain=https://mywebsite.com

embed_domainは埋め込みURLの後、任意のパラメーターの前に追加されます。それで、nonce=62のような既存のパラメーターがある場合、embed_domainの追加は次のようになります。

/embed/looks/4?nonce=626

/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626

埋め込みSDKを使用する場合は、次のように必ずembed_domainを追加し、さらに埋め込みURLの末尾にsdk=2を指定してください。

/embed/looks/4

/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2

sdk=2パラメーターを指定することで、LookerにSDKの存在が認識され、SDKによって提供される追加機能を利用できるようになります。このパラメーターは署名付きSSO URLの一部であることから、SDK自体がこのパラメーターを追加することはできません。

パラメーター

次のURLパラメーターを使用して、SSO埋め込みに必要な情報を指定します。

パラメーター 値が必須かどうか 説明 データタイプ
nonce はい ランダムな任意の文字列。ただし、255文字未満にし、1時間以内に繰り返し使用することはできません。

これにより、攻撃者が正規ユーザーのURLを再送信して情報を不正に収集するのを防ぎます。
JSON文字列 "22b1ee700ef3dc2f500fb7"
time はい UNIXタイムスタンプとしての現在時刻。 整数 1407876784
session_length はい ユーザーに許容されるLookerへの継続ログイン時間(0〜2,592,000秒(30日))。 整数 86400
external_user_id はい Lookerを埋め込むアプリケーションの各ユーザーの識別子。Lookerはexternal_user_idを使用してSSO埋め込みユーザーを識別するため、各ユーザーに割り当てられた一意のIDが必要です。

任意の文字列を使ってユーザーのexternal_user_idを作成できます。ただし、そのユーザーにとって一意である必要があります。各IDは、権限、ユーザー属性、モデルのセットに関連付けられています。1つのブラウザが一度にサポートできるのは、1つのexternal_user_idまたはユーザーセッションだけです。ユーザーの権限やユーザー属性の中間セッションを変更することはできません。

セキュリティのために、異なるインタラクティブユーザーの異なる埋め込みセッションで同じexternal_user_idを使用しないようにしてください。さらに、異なる権限、ユーザー属性の値、モデルアクセスを持つ1人のユーザーに同じexternal_user_idを使用していないでください。

同じexternal_user_idを複数のユーザー、または複数の権限、ユーザー属性、モデルのセットを持つユーザーに使用すると、データがアクセス権限のないユーザーに対して表示される可能性があります。
JSON文字列 "user-4"
permissions はい ユーザーに付与する権限のリスト。

指定可能な権限のリストについては、このページの権限セクションを参照してください。
文字列の配列 [
  "access_data",
  "see_looks"
]
models はい ユーザーにアクセス権を付与するモデル名のリスト。 文字列の配列 [
  "model_one",
  "model_two"
]
group_ids いいえ ユーザーがメンバーとなっている必要のあるLookerグループのリスト(存在する場合)。グループ名ではなくグループIDを使用します。 整数の配列 [4, 3]
external_group_id いいえ Lookerを埋め込んでいるアプリケーションのユーザーが属しているグループの一意の識別子(必要な場合)。

コンテンツの保存および外部グループIDの共有の権限を持つユーザーは、「Group」というLookerの共有フォルダにコンテンツを保存して編集できるようになります。
JSON文字列 "Accounting"
user_attributes いいえ ユーザーに必要なユーザー属性のリスト(存在する場合)。ユーザー属性の名前とそれに続く属性値のリストを指定します。

LookMLモデルがローカライズされている場合は、埋め込みURLのlocaleユーザー属性を使用して、埋め込みの言語を指定できます。例えば、パラメーターuser_attributes { "locale" : "fr_FR" }を含めると、埋め込みではフランス語を言語としてロードします。
文字列のハッシュ {
  "vendor_id" : "17",
  "company" : "xactness"
}
access_filters はい Looker 3.10では、このパラメーターは削除されますが、URLでは引き続き必要です。access_filters={}のように、access_filtersを空のプレースホルダーとともに使用します。 空のプレースホルダー {}
first_name いいえ ユーザーの名。空白のままにした場合、first_nameには前回のリクエストからの値が保持されるか、過去に名が設定されていない場合は「Embed」が挿入されます。 JSON文字列 "Alice"
last_name いいえ ユーザーの姓。空白のままにした場合、last_nameには前回のリクエストからの値が保持されるか、過去に姓が設定されていない場合は「Embed」が挿入されます。 JSON文字列 "Jones"
user_timezone いいえ ユーザー固有のタイムゾーンを有効にしている場合は、埋め込みLookまたはダッシュボードの[タイムゾーン]ドロップダウンにある[ビューアのタイムゾーン]オプションの値を設定します。このパラメーターは、コンテンツが表示されるタイムゾーンを直接変更するものではありません。ユーザーがドロップダウンから目的のタイムゾーンを選択する必要があります。

有効な値については、SSO埋め込みタイムゾーンのリファレンスドキュメンテーションページを参照してください。

チャットチーム情報:埋め込んだコンテンツをデフォルトでビューアのタイムゾーンに変換したい場合には、次のいずれかの方法を使います。

  • ?query_timezone=user_timezoneパラメーターを埋め込みURLに追加します。例:

    /embed/dashboards/1?query_timezone=user_timezone
  • 埋め込みダッシュボードまたはLookのデフォルトタイムゾーン[Viewer Time Zone]に設定して保存すると、埋め込みユーザーにも非埋め込みユーザーにもデフォルトでユーザーのタイムゾーンが使用されます。
  • JSON文字列またはnull "US/Pacific"

    または

    null
    force_logout_login はい 通常のLookerユーザーがLookerにすでにログインしていて、SSO埋め込み項目を閲覧している場合は、次のいずれかを選択できます。

    1)現在の資格情報のまま項目を閲覧する。

    または

    2)一度ログアウトし、SSO資格情報でログインし直す。
    Boolean(trueまたはfalse) true

    前述のパラメーターはいずれも必須ですが、「値が必須かどうか」列が「いいえ」になっているパラメーターには空の値を使用してもかまいません。例えば、group_ids []user_attributes {}のようにすることができます。

    署名

    署名を生成するには、次の手順に従います。

    1. 次のパラメーター値をこの順序で収集します。
      • ホスト - 後にlogin/embed/を付ける(例:analytics.mycompany.com/login/embed/
      • 埋め込みURL
      • ノンス
      • 現在時刻
      • セッションの長さ
      • 外部ユーザーID
      • 権限
      • モデル
      • グループID
      • 外部グループID
      • ユーザー属性
      • アクセスフィルタ(空のプレースホルダーが必要です)
    2. ホストと埋め込みURL以外のすべての値をJSONとして書式設定します。
    3. 値を改行(\n)で連結します。
    4. Looker埋め込みシークレットを使用して連結文字列にHMAC署名を追加します。

    エンコーディング

    最後のステップはURLエンコーディングです。

    想定されるすべてのパラメーターを使用して適切に書式設定したエンコーディングの埋め込みURLは、次のようになります。

    https://analytics.mycompany.com/login/embed//embed/dashboards/1?
    nonce="22b1ee700ef3dc2f500fb7"&
    time=1407876784&
    session_length=86400&
    external_user_id="user-4"&
    permissions=["access_data","see_user_dashboards","see_looks"]&
    models=["model_one","model_two"]&
    group_ids=[4,3]&
    external_group_id="Allegra K"&
    user_attributes={"vendor_id":"17","company":"xactness"}&
    access_filters={}&
    first_name="Alice"&
    last_name="Jones"&
    user_timezone="US/Pacific"&
    force_logout_login=true&
    signature=123456789ABCDEFGHIJKL
    

    URLに/embed//embed/が含まれていますが、前述のとおり、これは正しい表記です。

    エンコーディングのURLは、次のようになります。

    https://analytics.mycompany.com/login/embed/%2embed%2Fdashboards%2F1?
    nonce=%2222b1ee700ef3dc2f500fb7&%22&
    time=1407876784&
    session_length=86400&
    external_user_id=%22user-4%22&
    permissions=%5B%22access_data%22%2C%22see_user_dashboards%22%2C%22see_looks%22%5D&
    models=%5B%22model_one%22%2C%22model_two%22%5D&
    group_ids=%5B4%2C3%5D&
    external_group_id=%22Allegra%20K%22&
    user_attributes=%7B%22vendor_id%22%3A%2217%22%2C%22company%22%3A%22xactness%22%7D&
    access_filters%7B%7D%26%0A
    first_name=%22Alice%22&
    last_name=%22Jones%22&
    user_timezone=%22US%2FPacific%22&
    force_logout_login=true&
    signature=123456789ABCDEFGHIJKL
    

    create_sso_embed_url APIエンドポイントの使用

    Looker APIにはcreate_sso_embed_urlエンドポイントが含まれています。これは、埋め込むコンテンツのURLを含む一連のSSO埋め込みパラメーターを取得し、エンコードされ、暗号的に署名された完全なSSO URLを返します。

    このAPIエンドポイントをWebサーバーから使用するには、Webサーバーが管理者権限でLooker APIに認証されるようにする必要があります。Webサーバードメインも、Embed Domain Allowlistにリストされている必要があります。

    また、Lookerインスタンスのこのエンドポイントを使用するSSO URLを生成するAPI ExplorerLooker MarketplaceのLookerインスタンスにAPI Explorerをインストールできます。または、Looker開発者ポータルでパブリックバージョンを閲覧できます。生成されたSSO URLは、正確にコピーする必要があり、一度だけ使用できます。そうでない場合はエラーになります。API Explorerは、トラブルシューティングのため、SSO URLを生成し、手動で作成したSSO URLと比較するためにも使用できます。

    Looker APIに関する詳細は、Looker APIの基本情報ドキュメンテーションページを参照してください。

    埋め込みURLのテスト

    最終的なURLをテストする場合は、Lookerの[管理]セクションの[埋め込み]ページにある[Embed URI Validator]にURLを貼り付けます。このオプションは、想定したデータや権限が正しく設定されているかどうかを判別するためのものではなく、認証が正しく機能するかどうかを検証するためのものです。

    Top