人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Plaggerの設定を終了し、RSSフィードの抽出および結合、WebPageからLINKの抽出とRSSFeedへの変換
を実施しています。
インターネットサイトの抽出は成功したのですが、社内Windowsドメイン環境にあるIIS上のWebPage
から情報(RSSFeed)を取得しようとすると、401 認証エラーになってしまいます。

CPANの設定も確認し、http_proxyの設定には社内のproxyサーバ(http://IPアドレス:ポート番号)
とproxy user/proxy password には、ドメイン認証可能なユーザとパスワードを設定したのですが
うまくいきません。

どなたかご存知の方がいらっしゃいましたら、ご回答よろしくお願いいたします。

●質問者: bowseven
●カテゴリ:インターネット ウェブ制作
✍キーワード:CPAN IIS LINK password Plagger
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● りゅう
●35ポイント

若干情報が足りませんが、以下の前提で回答します。


・IIS上のサイトにはWindows統合認証が設定されている

・プロキシサーバには認証がかかっていない

・401エラーを出しているのはプロキシサーバではなくIIS


まず、Windows統合認証はBASIC認証とはまた別の仕組みであるため、BASIC認証用の設定をしても認証は通りません。

次に、proxy user/proxy passwordはプロキシの認証に対するものなので、そこに設定したユーザー名/パスワードはIISには渡っていません。

そのため認証が通らず401エラーになっているのだと思います。


plaggerにはWindows統合認証に対応したプラグインというのは無いようなので、

フィードのあるフォルダだけWindows統合認証とBASIC認証を両方有効にして、

BASIC認証で認証するようにするのが現実的な解決方法だと思います。


IISでのBASIC認証の設定方法については以下を参照してください。

http://technet.microsoft.com/ja-jp/library/cc759649.aspx


plaggerでのBASIC認証のやり方についてはPlagger::Plugin::UserAgent::AuthenRequestのコメントにある使い方を参照してください。UserAgent::AuthenRequestでググればいくつか例が見つかるはずです。

http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin...

◎質問者からの返答

回答ありがとうございます。(前提はすべてあっています)

>plaggerにはWindows統合認証に対応したプラグインというのは無いようなので、

探したのですが、こちらでも発見できずでした。

IISにBASIC認証の設定を追加する方法は、セキュリティの面から抵抗されそうですが、

これからいただいた情報を元に確認します。

情報収集と加工に際してPlaggerは有効に利用可能だと思うのですが、同じような問題に

ぶつかったとき、「Windows統合認証に対応したプラグイン」を作った方ってどこかにいないですかね。


2 ● りゅう
●35ポイント

度々失礼します。

PlaggerはLWPを使ってフィードを取得しているのですが、なんとLWPは普通にWindows統合認証に対応しているようです。なんというかさすがです。

http://search.cpan.org/~gaas/libwww-perl/lib/LWP/Authen/Ntlm.pm


ただ、プロトコルの都合上LWP::UserAgentにkeep_aliveオプションを指定しないと動作しません。

残念ながらPlaggerに標準添付のプラグインにはそのオプションを指定できる機能を持ったものはないようですので、せっかくなので作ってみました。


package Plagger::Plugin::UserAgent::KeepAlive;
use strict;
use warnings;
use base qw/Plagger::Plugin/;

use List::Util qw/first/;

sub register {
 my($self, $context) = @_;
 $context->register_hook(
 $self,
 'useragent.init' => \&set_keep_alive,
 );
}

sub set_keep_alive {
 my($self, $context, $args) = @_;

 my $keep_alive = $self->conf->{keep_alive};

 if ($keep_alive) {
 $context->log(info => "Set keep alive to $keep_alive");
 $args->{ua}->conn_cache({ total_capacity => $keep_alive });
 }
}

1;

上記のプラグインをPlaggerのプラグインディレクトリ内のUserAgentディレクトリにKeepAlive.pmとして設置し、

設定ファイルに以下の内容を追加すればWindows統合認証で認証出来るようになるはずです。

host,username,passwordの設定は適宜変更してください。


 - module: UserAgent::KeepAlive
 config:
 keep_alive: 1

- module: UserAgent::AuthenRequest
 config:
 host: example.com:80
 auth: nltm
 realm: 
 username: domain\username
 password: password
◎質問者からの返答

教えていただいたとおり、C:\Perl\site\lib\Plagger\Plugin\UserAgent\KeepAlive.pmを作成

IISの設定を「ディレクトリセキュリティ(タグ)→認証とアクセス制御→編集→総合Windows認証のみチェック」

「Webサイト(タグ)→TCPポートに88を設定」

ntlm_test.yaml

global:

plugin_path:

- C:\Perl\site\lib\Plagger\Plugin

assets_path: C:\Perl\site\lib\Plagger\assets

timezone: Asia/Tokyo

log:

level: debug

plugins:

- module: UserAgent::KeepAlive

config:

keep_alive: 1

- module: UserAgent::AuthenRequest

config:

host: *****:88

auth: ntlm

realm: test

username: domain/userId

password: Password

- module: Subscription::Config

config:

feed: http://*****:88/wiki.xml

- module: Publish::Feed

config:

dir: C:\www

filename: ntlm_test.rss

format: RSS


plagger -c ntlm_test.yaml 実行結果

=== 省略 ===

Plagger::Plugin::Aggregator::Simple [info] Fetch http://*****:88/wiki.xml

Plagger::Plugin::UserAgent::KeepAlive [info] Set keep alive to 1

Plagger::Plugin::UserAgent::AuthenRequest [info] Adding credential to test at *****:88

Plagger::Cache [debug] Cache MISS: Aggregator-Simple|http://*****:88/wiki.xml

Plagger::Plugin::Aggregator::Simple [error] GET http://*****:88/wiki.xml failed: 401 Unauthorized

Plagger [error] http://*****:88/wiki.xml is not aggregated by any aggregator


これだけやっても認証エラーになってしまいます。

IISの設定から総合Windows認証をはずして、匿名アクセスを有効にすると、エラーなくRSSフィードの取得が

できるのですが。

また、基本認証でも同く認証エラーです。

何かお気づきの点がありましたら、教えてもらえると助かります。

勉強不足で、ソースの囲み方がわかりません。べたで貼り付けています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ