サービス基本認証の使用方法


10

サービス基本認証モジュールの使用方法

サービスにhttp基本認証を追加したい。インストールして、エンドポイント構成で有効にしました。エンドポイント構成で、この「HTTP基本認証Services_basic_authには使用可能な設定がありません」が表示されました。設定ページはどこですか?

回答:


11

モジュールはdrupalアカウントに対してWebサービス呼び出しを認証します。

  1. モジュールを有効にする
  2. drupalユーザーをセットアップする
  3. ユーザーの資格情報を使用してWebサービスを呼び出します。

基本認証では、SSLが使用されていない場合、資格情報が傍受される可能性があることに注意してください。

モジュールは標準のPHP認証ヘッダーを使用し、特定の役割や権限を確認せずに標準のdrupalログインフォームを送信します。したがって、どのdrupalユーザーでも機能します。

curlまたはwget を使用してテストWebサービス呼び出しを行い、テストします。curl stackoverflow応答を使用した呼び出しで、PHPを使用して呼び出す方法の説明もあります。


これは、単一のURL呼び出しでこの構造を使用することとは完全に異なりますか? myusername:mypassword@example.com/callback
Citricguy

@Citricguyは違いません。この構文は、URIスキームen.wikipedia.org/wiki/URI_schemeによって提供されます。私はそのようにはしません。一部のRESTサービスはブラウザーでテストでき、資格情報がブラウザーの履歴に記録されるのではないかと心配になります。httpsで資格情報は暗号化されます。これはhttpライブラリにも依存します。phphttpはOKかもしれません。php.net/manual/en/features.http-auth.php#44686のコメントを参照してください。Microsoftブラウザーはこの構文をサポートしなくなったため、JavaScriptを使用して呼び出しを行うと、機能しない場合があります。一部のAPIは、この方法で使用するのですgoo.gl/eS9mqv
Interlated

申し訳ありませんが、呼び出しの実装方法は呼び出しに影響を与えません。したがって、u:p@host.comを使用してテストすると、問題なく機能します。そのような実装には問題があるかもしれません。テストを合理化するために、できるだけ早くURLではなくヘッダーを考えます。
2014

4

上記のモジュールは、基本アクセス認証手法を使用してサービスコールを認証するために使用されます。次のように、Authorizationヘッダーをサービスコールに追加することにより、Drupalユーザー名とパスワードを使用してサービスコールを認証します。

ユーザーエージェントがサーバー認証資格情報を送信する場合、Authorizationヘッダーを使用できます。

Authorizationヘッダーは次のように構成されています。

ユーザー名とパスワードは文字列「username:password」に結合されます

結果の文字列リテラルは、Base64のRFC2045-MIMEバリアントを使用してエンコードされますが、76文字/行に限定されません。次に、エンコードされた文字列の前に認証方法とスペース、つまり「Basic」が挿入されます。

たとえば、ユーザーエージェントがユーザー名として「アラジン」を使用し、パスワードとして「オープンセサミ」を使用する場合、ヘッダーは次のように形成されます。

承認:基本的なQWxhZGRpbjpvcGVuIHNlc2FtZQ ==

以下の例は、curlを使用した呼び出しです。

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
はい、すでに読んでいますが、それを実装する方法がわかりませんか?モジュールのインストール後に何をすべきか?どんな助けも素晴らしいでしょう。ありがとう
Rijalul fikri 14

2
  1. モジュールが有効になったら、構造>サービスに移動します
  2. エンドポイントを選択して[ 編集 ]をクリックします ここに画像の説明を入力してください

  3. https://addons.mozilla.org/fr/firefox/addon/restclient/などのツールを使用して、クライアントをテストします。

ここに画像の説明を入力してください

注: オプションのHTTP基本認証がこのエンドポイントのリソースの呼び出しにマークされていても、401ではなく200を返していたため、問題が発生していました。つまり、モジュールがエンドポイントを保護できませんでした。

問題は次の場所で発生します。

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

モジュールのパッチを実行して解決しました:

https://www.drupal.org/node/2734207


1

何が悪いのでしょうか:すべての設定を行った後:

  1. services-basic-authenticationモジュールを有効にする
  2. たとえば、サービスAPIエンドポイントを作成します。
  3. 編集ページの「HTTP基本認証」チェックボックスを設定します
  4. ユーザーを作成する

また、「公開されたコンテンツの表示」権限を無効にしない場合、どのユーザーもサービスAPIエンドポイントにアクセスして結果を返すことができます。


0

Services Basic Authenticationモジュールをインストールしたら、サーバーのREST設定に移動します。

/admin/structure/services

Editオプションを入力すると、下部にチェックボックスがあります:

HTTP basic authentication

それを有効にして、[保存]ボタンをクリックします。


HTTP基本認証に使用するユーザー:パスワードは何ですか?
AshwinP 2015年

-1

コンテンツアクセスモジュールを使用することを忘れないでください。

MPDの要求ごとに詳細を追加します。

コンテンツアクセスモジュールを使用していない場合は、他のユーザーが作成したものも含め、すべてのコンテンツが表示されます。たとえば、ユーザーAは、ユーザーBが表示することを想定していない個人データを保存しています。サービス基本認証モジュールは認証を有効にしますが、コンテンツアクセスを強制しません。コンテンツアクセスモジュールはそれを実施します。コンテンツアクセスコントロールを使用していない場合は、ユーザーを認証しても意味がありません。


このモジュールがユーザーのニーズをどのように解決できるかを詳しく説明できますか?
mpdonadio

元の回答で私の更新を参照してください。
techwestcoastsfosea 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.