web-dev-qa-db-ja.com

別のサイトに埋め込まれたコンテンツを安全に認証する方法は?

パスワードで保護されたコンテンツをiframeを使用して2番目のドメインに埋め込む必要があります。コンテンツ自体は、iframeを介してサードパーティのサイトに表示されるビューであり、コンテンツは、カスタムページと、ディスプレイを処理するテンプレートで準備されます。ユースケースは、ユーザーがログインする必要なく他のサイトにビューを表示することです。私の調査によると、Oauthまたはサービスは良い候補のようですが、両方の経験はあまりなく、サービスを使用して単一のビューを表示することは複雑すぎるようです。とにかく、私はこの件に関する良いドキュメントの方法をあまり見つけていませんので、これを実装する方法の入門的な概要を望んでいます。したがって、drupal別のサイトのコンテンツ。ユーザーの資格情報をフレームのsrc = urlで公開したくないので、別の認証メカニズムを使用する必要があることはわかっています。EntityIframeモジュールを見てきましたが、これらの機能の一部を持っているように見えますが、モジュールは主にdrupal-to-drupalで動作し、モジュールがコンシューマー/プロバイダーの通信を処理する方法を分解することができませんでした。

したがって、これを調査した結果、oauthを構成し、トークンをiframe内のURLに渡す必要があります。私が不明確なのは、oauthページへのアクセスと、iframeに提供されるトークンの生成方法。

2
nizz0k

1-最初のサイトでコンテンツ構造を適切に構築し、 admin/structure/views/add からビューを作成します。これは、最初のサイトコンテンツを消費するクライアントのように機能する、2番目のサイトに必要なデータを返します。

2-ダウンロードして有効化 Services モジュールおよびサブモジュールを有効化Rest ServerおよびサブモジュールOAuth認証これで、他のサイトで使用される保護されたリソースを作成できます。

4- admin/structure/services/add からエンドポイントを作成し、ケースとして認証タイプを選択します "OAuth Authentication" 「2番目のサイトがデータを消費する」というクライアントの認証が必要な場合に適合します。

3-ダウンロードして有効にする Services views モジュールは、サービスを介して消費および管理されるリソースとしてビューを公開するのに役立ちます。

4-ボタン追加をクリックしてサービスを選択する前に作成したビューから、ビューが-の下のサイトの通常のリソースとして表示されます admin/structure/services/list リソースの編集をクリックして、ビュー名で名前が付けられていることを確認して有効にし、必要な認証と承認を選択します。

これで、認証されたクライアントクライアントサイトまたはアプリは、http:// YOUR_SITE_DOMAIN/END_POINT/VIEWS_SERVICES_URLからそのリソースを消費できます。

要件の最後で最も重要な部分は、認証方法を構成し、それをテストすることです。以下の役立つツールと記事をお勧めします。

Chrome RESTクライアント拡張機能 Webサービスをテストします。

サービスモジュールに関する非常に役立つ記事

別の役立つ記事

3
Mohammed Gomma

最初のサイトでサービスを作成し、jsonとしてrestを介してビューのデータをエクスポートしてから、2番目のサイトでそれを取得して表示するほうが安全です。 RESTサービスではoauthメソッドとリクエストトークン、またはユーザー名とパスワードを実装できます。このリンクが役立つはずです redcrackle.com/blog/rest-export-views -drupal-8

0
Malek Massoudi

ここで Drupal Services、RESTサーバーと3-legged OAuth チュートリアルを試すことができます。この部分に注意してください:

$oauth->fetch("$api_url/node/1");

これは、GETリクエストを作成するためのものです。 POSTリクエストを作成したい場合は、次のようになります。

 $oauth->fetch("$api_url/user/vote.json",array('nid'=>10),OAUTH_HTTP_METHOD_POST);
0
user72672