署名付き埋め込みの 404、権限、コンテンツへのアクセスに関するトラブルシューティング

ユーザーが埋め込みコンテンツにアクセスしようとすると、次のエラー メッセージが表示されることがあります。

リクエストされたダッシュボードが見つかりません。存在しないか、閲覧権限がありません。

このページでは、このエラーのトラブルシューティングを行い、今後このようなエラーを回避するための方法を説明します。これにより、デベロッパーとユーザーの無駄な時間や労力を軽減できます。

エラーのトラブルシューティング

エラー メッセージでは、検証すべき次のステップが示されています。基本的に、署名付き埋め込み URL の作成と埋め込みユーザーの認証は成功しましたが、次の 2 つのうちのいずれかの問題が発生しています。

  • コンテンツへのパスが中断されている。
  • 埋め込み URL で指定された権限とコンテンツ アクセスでは、埋め込みユーザーは埋め込みコンテンツを表示できない。

[管理] パネルの [プラットフォーム] セクションの [埋め込み] ページの埋め込み URI バリデータは、埋め込み URL のトラブルシューティングによく使用されるツールです。ただし、バリデータが検証するのは埋め込み URL が有効であることと、認証ステップを完了できるかどうかのみです。そのため、2 つの問題のどちらが発生しているのかを確認するには、次のトラブルシューティングの手順を実行します。

  1. コンテンツ パスが正しいことを確認する。
  2. コンテンツが存在することを確認する。
  3. 埋め込み URL の権限を確認する。
  4. ユーザーのコンテンツ アクセスを確認する。

1. コンテンツパスが正しいことを確認する

このメソッドを使用して、コンテンツへのパスが中断されているかどうかを判断します。署名付き埋め込み URL を生成する方法によって、コンテンツ パスを指定できる場所は異なります。ほとんどのスクリプトには、パスを定義するセクションがあります。たとえば、123 という名前のダッシュボードを埋め込むには、パス /embed/dashboards/123 を使用します。

署名付き埋め込みドキュメント ページの埋め込み URL のセクションの例を使用して、パスが正しく定義されていることを確認します。

Create Signed Embed Url API エンドポイントを使用して URL を生成する場合、同じダッシュボードの [ターゲット URL] パラメータは次のようになります。

https://instance_name.looker.com<:optional_port>/dashboards/123

埋め込み URL 生成スクリプトでパスが正しく定義されていることを再度確認します。

2. コンテンツが存在することを確認する

コンテンツ パスが正しく定義されていることを確認したら、そのパスにコンテンツが存在することを確認するよう管理者に依頼してください。デフォルトでは、管理者はコンテンツへのアクセスと権限の制限を回避して、たとえばデベロッパーがコンテンツを表示できないようにすることが可能です。管理者がそのパスのコンテンツを表示できない場合、そのパスにコンテンツは存在しません。

管理者がそのパスのコンテンツを表示できる場合、埋め込みユーザーに適切な権限またはコンテンツ アクセスが付与されていない可能性があります。このケースに該当するかどうかを確認するには、管理者は [管理] パネルの [ユーザー] ページでインライン [Sudo] オプションを選択してユーザーを見つけることができます。

別のユーザーとして Sudo を実行すると、管理者は特定の権限、コンテンツ アクセス、ユーザー属性によってユーザーに表示される内容を確認できます。埋め込みユーザーとして sudo を実行している間に、管理者がコンテンツを表示できなくなった場合は、そのユーザーの権限とコンテンツ アクセスのトラブルシューティングのためにさらに追加の手順を行う必要があります。

コンテンツが存在し、埋め込みユーザーにそのコンテンツが表示されないことを確認したら、次のステップでは埋め込み URL の権限とユーザーのコンテンツ アクセスを確認します。これらのいずれかが正しく構成されていない場合、ユーザーに埋め込みコンテンツが表示されない可能性があります。

3. 埋め込み URL の権限を確認する

次のステップでは、埋め込み URL で指定された権限によって、埋め込みユーザーに埋め込みコンテンツの表示が禁止されているかどうかを判断できます。Looker の権限は付加的であるため、ユーザーにコンテンツが表示されるようにするには多くの権限の組み合わせが必要です。たとえば、埋め込みユーザー定義のダッシュボードを表示する場合、埋め込みユーザーには少なくとも access_datasee_lookssee_user_dashboards 権限が必要です。このステップでは、URL 定義にユーザーを埋め込む権限を再確認し、権限の依存関係が不足しているかどうかを判断します。次に、埋め込み URL でユーザーに割り当てられているロールを確認します。

埋め込みユーザーのロールは、次の 2 つの方法のいずれかで作成できます。署名付き埋め込み URL の権限とモデルセットへのアクセス権を使用する方法、または、ユーザーが割り当てられているグループ(ロールが関連付けられている場合)を使用する方法です。この 2 つの方法のいずれかで作成されたロールは、通常の Looker 環境のロールと同じように付加的です。URL の仕様で、埋め込みユーザーが割り当てられているグループ(およびグループまたはグループから継承されたロール)を確認します。

ヒント: 埋め込みユーザーの権限とモデルアクセス情報を 1 か所(Looker グループのロール割り当て、または署名付き埋め込み URL 仕様)に保持すると、ユーザーの問題をトラブルシューティングするときに確認する必要がある余分な変数の数が軽減されます。たとえば、企業が、埋め込みユーザーの権限を割り当てるときにグループ ID に関連付けられたロールを活用している場合、署名付きスクリプトで権限を定義するだけでなく、埋め込みユーザー情報が Looker と親アプリケーション(署名付き URL スクリプトを経由)の両方に保存されます。場合によっては、埋め込みユーザーのロールを管理する Looker 管理者が、親アプリケーションの埋め込み URL 生成スクリプトにアクセスできず、完全なトラブルシューティングができない場合があります。 その場合は、権限とモデル パラメータに空の配列を渡し、グループの割り当てのみでロールを管理すると便利な場合があります。

次に、指定のロールまたは継承されたロールと権限がユーザーに正しく割り当てられていることを確認します。そのためには、[管理] パネルのユーザーページでユーザーを探し、[表示] を選択します。

留意すべき点は、埋め込みユーザーが通常の Looker ユーザーが持つすべての権限にアクセスできるわけではないということです。署名付き埋め込みドキュメント ページの埋め込み権限の全リストをご覧ください。

4. ユーザーのコンテンツ アクセスを確認する

埋め込みユーザーの権限とロールの割り当てが正しいことを確認したら、ユーザーのコンテンツ アクセスを確認する必要があります。これを行うには、次の情報を検証します。

  • 埋め込みコンテンツはどのフォルダに保存されるか。
  • 埋め込みユーザー、または埋め込みユーザーが割り当てられたグループに、このフォルダへのアクセス権(View or Manage, Edit)があるか。

コンテンツが保存されているフォルダを確認する最も簡単な方法は、通常の Looker 環境でコンテンツを表示して、コンテンツ ヘッダーでフォルダ名を確認します。そのフォルダに移動したら、右上の [アクセスを管理] の下にある歯車アイコンを選択します。特定の埋め込みユーザーにフォルダに対する View アクセス権を付与すると、コンテンツ アクセスの問題が 404 エラーの原因かどうかをすぐに判断できます。

埋め込みユーザー(または署名付き埋め込みグループ ID によって割り当てられたグループ)にアクセス権がない場合、ユーザーにはフォルダに保存されているコンテンツが表示されません。管理者(または、フォルダに対する Manage Access, Edit 権限が付与されている非管理者)は、この時点でコンテンツ アクセス設定を変更することで、埋め込みユーザーまたはユーザー グループを追加できます。

ダッシュボードが複製されて複数のフォルダに存在する場合、一般的な問題が発生することがあります。ダッシュボードの各コピーには一意の ID があるため、埋め込まれているダッシュボードに、ユーザーがアクセスすると想定されるダッシュボードと同じ ID があることを確認してください。ダッシュボードの URL の ID は、次の形式で確認できます。

~/embed/dashboards/<specific_content_id>

クローズド システム

クローズド システムは、コンテンツ アクセスを確認するうえで特別なケースです。クローズド システムは個々のグループで保存されたコンテンツをサイロ化します。すべての Powered by Looker によるデプロイ(埋め込み分析)には、ベスト プラクティスとしてクローズド システムを実装することが推奨されます。このシステムの主なメリットは、すべてのユーザーのグループが完全に削除され、すべての個人フォルダが限定公開に設定されるため、インスタンス内の他のユーザーやコンテンツが閲覧できなくなります(すべてのユーザーがグループを共有しない場合)。これにより、複数のクライアント向けのマルチテナント インスタンスを効果的に作成し、明示的にアクセス権限を付与しない限り、他のユーザーがコンテンツや情報にアクセスできないようにします。

該当する埋め込みユーザーが適切な Looker グループに含まれていることを再度確認します。そうでない場合、組織のコンテンツを閲覧できなくなります。

インスタンスに対してクローズド システムを有効にする場合は、Google Cloud セールス スペシャリストにお問い合わせいただくか、サポート リクエストをオープンしてください。