...以下のコードを使用していますが、まだ認証エラーが発生します
リモート 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 自体は認証を提供していないため、いくつかの一般的なオプションがあります。
現在使用しているように、典型的な「Web 認証」手法
の HTTP 認証スキームを使用します。信頼できるクライアント側の証明書。Cookie 認証トークン。ただし
、一般的な Web 認証技術には一般的なリスクがあります。ここで詳細なガイダンスについては、SO を調べてください。
ユーザー定義の認証をサポートするように RPC 関数を拡張します。
たとえば、RPC 呼び出しbwizzy
は、引数としてユーザー名とパスワードを取る場合があります。
または、ログイン RPC 関数が、Cookie として使用される期限付きのトークンを生成する場合があります。
このアプローチは侵襲的です。現在、RPC 呼び出しは認証を認識している必要があり、エラーが発生しやすくなっています。認証を自分で実装する必要があります。
XML-RPC 自体を拡張する
XML RPC 呼び出しは、SOAP のデジタル署名など、それ自体で署名するか、署名して暗号化することができます。