web-dev-qa-db-ja.com

Drupal 7マルチサイトフレームワークを使用したReSTful APIおよび認証戦略の使用

私の状況

公開インターフェースを備えた小さなアプリがあります。このAPIをモバイル環境で、そして最終的にはパブリックAPIとしても使用できるようにすることに興味があります。セキュリティやパフォーマンスなどを優先してシンプルにしたい。

私の計画

なぜDrupalなのか?まあ、私はDrupalを知っており、2つのサイトがあるセットアップを想定できます。www.mygui.com(デフォルト)とapi.mygui.com(API)。すべてのデータベース構造は、 defaultサイトで行われる作業。 Drupal Services Module (および他のいくつかの必要なコアモジュール)を使用して[〜#〜] api [〜#〜]サイトJSONとdrupal_internal_apiを使用して、データベースへの認証済み更新を許可する予定です。

私の問題

トークンを使用するプロトタイプ(drupalではない)をすでに持っています。私はサービスに不慣れで、そのすべての制限と機能をまだ本当に知りません。これは有望ですが、まだパイプラインにあります Drupal Services Auth Token Module 。優れた認証戦略に関するアドバイスやリソースが必要です。たとえば、どちらが最適ですか。 「API Uer」の役割を割り当ててユーザーベースを同じにするか、[〜#〜] api [〜#〜] 地点? APIユーザー名は長期的な設定であり、APIユーザーが新しいアプリのリリースの準備ができるまでユーザー名/パスワードまたはトークンを変更してはならないことに注意してください。 [〜#〜] api [〜#〜]サイトの認証情報を管理するための素敵なGUIをdefaultサイト?

5
Akahadaka

これは確かにマルチサイトなしで達成できます。つまり、常に同じサイトにAPIを格納し、パスapi.mysite.comをmysite.com/apiにプロキシすることで、ユーザーから見えないようにすることができます。 (ウェブホストがmod_proxyをサポートしているか、このタスクに使用できる外部プロキシーがあることを確認してください)

実際の認証に関しては、トークンを気にしません。資格情報を使用します。このようにして、人々はセッションを取得して維持できます(settings.phpのsession_lifetimeに基づいて、セッションの長さに応じてどれだけ長くしたいか)-最初にログインパスを呼び出した後、APIを何度も繰り返し呼び出すことができます。割り当てられた一意のセッションを渡すことにより。

シングルサイトアプローチを採用し、Webプロキシマジックを使用して、別のドメインのように見せます。簡単です。

0
webkenny