1

認証が必要なXMLRPCリクエストを作成する必要がありますが、XMLRPCの認証側で限られたドキュメントが見つかりました。これについて行くための最良の方法は何ですか?現在、以下のコードを使用していますが、それでも認証に失敗します。クライアントを指定してから、セカンダリ認証メソッドを呼び出す別の方法はありますか?

client = XMLRPC::Client.new(@xmlrpc_url, "/xmlrpc.php", "443", nil, nil, @username, @password, true, 900)
4

2 に答える 2

0

IXR http://scripts.incutio.com/xmlrpc/basic-server-construction.phpを見ると、基本認証を行う方法が示されていますが、あまり安全ではないようです

于 2010-11-15T19:21:06.357 に答える
0

...以下のコードを使用していますが、まだ認証エラーが発生します

リモート Web サーバーがリソース の HTTP 基本認証を受け入れていること、および/xmlrpc.phpさらに と を受け入れていることを再確認してください。@username@password

docsによると、RPC の XMLRPC 呪文は、次のような基本認証で何かを生成しますclient.call("bwizzy")

POST /xmlrpc.php HTTP/1.1
User-Agent: XMLRPC::Client (Ruby 1.9.1)
Content-Type: text/xml; charset=utf-8
Content-Length: 88
Connection: keep-alive
Authorization: Basic c3RhY2s6b3ZlcmZsb3c=
Accept: */*
Host: localhost

<?xml version="1.0"><methodCall><methodName>bwizzy</methodName></params></methodCall>

(これらのヘッダーの順序について私に文句を言わないでください-それは私がネットワークで見ているものです!:))

現在、XML-RPC 自体は認証を提供していないため、いくつかの一般的なオプションがあります。

  1. 現在使用しているように、典型的な「Web 認証」手法
    の HTTP 認証スキームを使用します。信頼できるクライアント側の証明書。Cookie 認証トークン。ただし
    、一般的な Web 認証技術には一般的なリスクがあります。ここで詳細なガイダンスについては、SO を調べてください。

  2. ユーザー定義の認証をサポートするように RPC 関数を拡張します。
    たとえば、RPC 呼び出しbwizzyは、引数としてユーザー名とパスワードを取る場合があります。
    または、ログイン RPC 関数が、Cookie として使用される期限付きのトークンを生成する場合があります。
    このアプローチは侵襲的です。現在、RPC 呼び出しは認証を認識している必要があり、エラーが発生しやすくなっています。認証を自分で実装する必要があります。

  3. XML-RPC 自体を拡張する
    XML RPC 呼び出しは、SOAP のデジタル署名など、それ自体で署名するか、署名して暗号化することができます。

于 2009-09-03T04:42:49.037 に答える