ユーザーガイド 基本情報 ヘルプセンター ドキュメンテーション コミュニティ トレーニング
Looker
  
English
Français
Deutsch
日本語
シングルサインオン(SSO)組み込み

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

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

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

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

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

一部のブラウザでは、「サードパーティ」のCookieをブロックするCookieポリシーがデフォルトで適用されています(このドキュメンテーションの執筆時点でInternet ExplorerやSafariが該当します)。Lookerはユーザーの認証にCookieを使用するため、これらのブラウザでは、ドメインをまたいだ組み込みiFrameの認証の試みは失敗します(ただし、ユーザーがブラウザのCookieプライバシー設定を変更している場合はその限りではありません)。例えば、https://mycompany.comに関する情報を組み込む場合は、Lookerがサブドメイン上にあることを確認する必要があります(https://analytics.mycompany.comなど)。

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

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

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

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

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

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

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

  1. Lookerの[管理]セクションにある[埋め込み]ページに移動します。
  2. [Embed Authentication]ドロップダウンから[Enabled]を選択し、[更新]を押します。
  3. [Set 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
LookMLダッシュボード https://instance_name.looker.com/
dashboards/my_model::my_dashboard
/embed/dashboards/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から表計算を作成するために必要です。
save_content see_looks インスタンス全体 ダッシュボードやLookを変更して保存することをユーザーに許可します。
send_outgoing_webhook see_looks モデル固有 任意のWebhookへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。
send_to_s3 see_looks モデル固有 Amazon S3バケットへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。
send_to_sftp see_looks モデル固有 SFTPサーバーへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。
schedule_look_emails see_looks モデル固有 独自のメールアドレス(「email」というユーザー属性で設定)、またはメールのドメインホワイトリストに設定された制限範囲内にあるメールアドレスへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。
schedule_external_look_emails schedule_look_
emails
モデル固有 任意のメールアドレスへのダッシュボードやLookの配信をスケジュールすることをユーザーに許可します。
send_to_
integration
see_looks モデル固有 追加事項6.22 LookerのAction Hubを介して、Lookerと統合されたサードパーティサービスにデータを配信したり、データの配信をスケジュールしたりすることをユーザーに許可します。この権限は、データアクションには関連していません。
create_alerts see_looks インスタンス全体 追加事項6.22 ダッシュボードタイル上にアラートを作成して、指定した条件を満たすか超えたときに通知を受け取ることをユーザーに許可します。
download_with_limit see_looks インスタンス全体 クエリの結果を制限付きでダウンロードすることをユーザーに許可します。
download_without_limit see_looks インスタンス全体 クエリの結果を制限なしでダウンロードすることをユーザーに許可します。
see_sql see_looks モデル固有 クエリ用のSQL、および実行中のクエリから発生したSQLエラーを確認することをユーザーに許可します。
see_drill_overlay access_data モデル固有 完全なExploreページに移動することなくドリルダウンすることをユーザーに許可します。
embed_browse_spaces なし インスタンス全体 コンテンツブラウザを有効にして、ユーザーが組み込みからフォルダを参照できるようにします。embed_browse_spacesが付与された組み込みユーザーは、個人用の組み込みフォルダおよび組織用の共有フォルダ(存在する場合)にアクセスできます。

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

ユーザーがフォルダ内のコンテンツを閲覧するためには、see_lookssee_user_dashboardssee_lookml_dashboardsの各権限も必要になります。

モデルアクセス

ユーザーにアクセス権を付与する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を組み込むアプリケーションでユーザーを示す一意のID。Lookerでは、この値を使用してSSO組み込みユーザーが識別されます。

この文字列を作成する際には任意の値を使用できます。ただし、この値は、所定の権限セット、ユーザー属性、モデルに対して一意である必要があります。例えば、同じユーザーが2つのコンテキストでそれぞれ異なる権限を持つ場合、2つの異なる外部ユーザー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(必要な場合)。

コンテンツの保存および外部グループ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またはダッシュボードの[タイムゾーン]ドロップダウンにある[ビューアのタイムゾーン]オプションの値を設定します。このパラメーターは、コンテンツが表示されるタイムゾーンを直接変更するものではありません。ユーザーがドロップダウンから目的のタイムゾーンを選択する必要があります。

有効な値については、タイムゾーンのページを参照してください。
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 Whitelistにリストされている必要があります。

また、使用しているLookerインスタンスのインタラクティブなAPIドキュメントを使用して、このエンドポイントでSSO URLを生成することもできます。生成されたSSO URLは、正確にコピーする必要があり、一度だけ使用できます。誤って使用するとエラーになります。インタラクティブなAPIドキュメントは、トラブルシューティングのため、SSO URLの生成、および手動で作成したSSO URLとの比較にも使用できます。

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

組み込みURLのテスト

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

Top