使い方 Services Basic Authentication モジュール?
サービスにhttp基本認証を追加したい。インストールして、エンドポイント構成で有効にしました。エンドポイント構成で、この「HTTP基本認証Services_basic_authには使用可能な設定がありません」が表示されました。設定ページはどこですか?
モジュールは、drupalアカウントに対してWebサービス呼び出しを認証します。
基本認証では、SSLが使用されていない場合、資格情報が傍受される可能性があることに注意してください。
モジュールは標準の PHP認証ヘッダー を使用し、特定の役割や権限を確認せずに標準のdrupalログインフォームを送信します。したがって、すべてのdrupalユーザーが機能します。
テスト用のWebサービスを作成 curlで呼び出す またはwgetでテストします。 PHP in call with curl stackoverflow answerで呼び出す方法についての説明もあります。
上記のモジュールは、 Basic access authentication テクニックを使用してサービスコールを認証するために使用されます。Drupalユーザー名とパスワードを使用して、サービスコールにAuthorizationヘッダーを追加することにより、サービスコールを認証します次のように
ユーザーエージェントがサーバー認証資格情報を送信する場合、Authorizationヘッダーを使用できます。
Authorizationヘッダーは次のように構成されています。
ユーザー名とパスワードは文字列「username:password」に結合されます
結果の文字列リテラルは、Base64のRFC2045-MIMEバリアントを使用してエンコードされますが、76文字/行に限定されません。認証方法とスペース、つまり「Basic」がエンコードされた文字列の前に配置されます。
たとえば、ユーザーエージェントがユーザー名として「アラジン」を使用し、パスワードとして「オープンセサミ」を使用する場合、ヘッダーは次のように形成されます。
承認:基本的なQWxhZGRpbjpvcGVuIHNlc2FtZQ ==
以下の例は、curlを使用した呼び出しです。
curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice
https://addons.mozilla.org/fr/firefox/addon/restclient/ などのツールを使用して、クライアントをテストします。
注:オプションHTTP基本認証がこのエンドポイントのリソースを呼び出すとマークされていたとしても、問題が発生しています401の代わりに200を返していました。つまり、モジュールがエンドポイントを保護できませんでした。
問題は次の場所で発生します。
https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4
モジュールのパッチを実行して解決しました:
何が悪いのでしょうか:すべての設定を行った後:
また、「公開されたコンテンツの表示」権限を無効にしない場合、どのユーザーもサービスAPIエンドポイントにアクセスして結果を返すことができることに注意してください。
Services Basic Authentication
モジュールをインストールしたら、RESTサーバーの設定に移動します。
/admin/structure/services
Edit
オプションを入力すると、下部にチェックボックスがあります:
HTTP basic authentication
それを有効にして、[保存]ボタンをクリックします。