ページの先頭です。本文を読み飛ばして、このサイトのメニューなどを読む

サイト内の現在位置です:

TOP  >  フォーラム  >  XOOPS関連  >  外部認証モジュール  >  OpenID認証で必ず「認証エラー; 無効なOpenIDです。」

スポンサード リンク

OpenID認証で必ず「認証エラー; 無効なOpenIDです。」

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-18 16:54 | 最終変更
miniHORI  新米   投稿数: 6
お世話になります。 m(__)m

readme.txtを見て設定しているつもりですが・・・
OpenID認証で必ず「認証エラー; 無効なOpenIDです。」となり、認証できません。
紐付けも同じ状態です。

OpenIDが間違えているのかと思い、ココで試してみましたが、OpenIDは間違えていませんでした。

設定で気になる点は、
 XSNSをインストールしていると言う事とCERTに関係する部分です。

XSNSに関しては、
 過去の記事を読み、Preload.class.phpの36行目を修正しました。(修正個所は、1行のみです)

CERTに関係する部分ですが、
 OpenID:CURL関数を使用しない  いいえ
 OpenID:CURL関数で使用するCERTファイル  (空白)

XOOPSの環境下は、
 Windows2000 Server
IIS 5.0
PHP 5.2.6

なにか設定が足りないのでしょうか?
CERTファイルって、どこに置いて、どのような設定をすればよいのでしょうか?
(設定とかしなくても動くの・・・?)

何が原因なのかサッパリな状態なので、すみませんが可能な限り詳しく教えてください。 m(__)m

よろしくお願いします m(__)m
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-18 23:23
kisara  管理人   投稿数: 78
miniHORIさん、こんにちは。

ちょっとすぐには原因は分かりませんね…
とりあえず何点か確認させてください。

・XOOPSのサーバからインターネットへの接続が可能かどうか
ドキュメントには記述してませんでしたが、XOOPSが稼動しているサーバからインターネットへ接続できる必要があります。

・使おうとしているOpenIDのプロバイダ
mixiだったりするとCERTファイルの指定が必要になるようです。
何箇所かのOpenIDを試したりできるでしょうか?

・インストールしているモジュール一覧
今のところ他モジュールとの相性問題はXSNSで確認していますが、今回の症状とは違うようです。


CERTファイルについてですが、

http://curl.haxx.se/docs/caextract.html

こちらからcacert.pemというファイルを入手し、XOOPSのサーバにアップロードしてください。
XOOPS_TRUST_PATHあたりが良いでしょう。
そのファイルのパスをCERTファイルの項目へ設定します。
なるべくCERTファイルを指定した方が良いです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-19 18:51
miniHORI  新米   投稿数: 6
こんにちは、お世話になります。 miniHORIです。 m(__)m

引用:
・XOOPSのサーバからインターネットへの接続が可能かどうか
ドキュメントには記述してませんでしたが、XOOPSが稼動しているサーバからインターネットへ接続できる必要があります。

この点については、確認済みです。
問題ないようです。


引用:
・使おうとしているOpenIDのプロバイダ
mixiだったりするとCERTファイルの指定が必要になるようです。
何箇所かのOpenIDを試したりできるでしょうか?

mixiで試してました。
mixiの場合、どのCERTファイルが必要なのでしょうか?
可能であれば、教えてください。


引用:
・インストールしているモジュール一覧
今のところ他モジュールとの相性問題はXSNSで確認していますが、今回の症状とは違うようです。

ありがとうございます。



引用:
CERTファイルについてですが、

http://curl.haxx.se/docs/caextract.html

こちらからcacert.pemというファイルを入手し、XOOPSのサーバにアップロードしてください。
XOOPS_TRUST_PATHあたりが良いでしょう。
そのファイルのパスをCERTファイルの項目へ設定します。
なるべくCERTファイルを指定した方が良いです。

説明の中に、Windows環境では・・・と言う内容があった気がしますが、
WindowsのIIS環境でもCERTファイルの項目指定は有効なのでしょうか?
Windows環境下の場合は、C://XOOPS_TRUST/cacert.pem って感じ
指定すればよいのでしょうか?


すみませんが、ご指導お願いします。 m(__)m
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-19 23:08 | 最終変更
kisara  管理人   投稿数: 78
引用:
この点については、確認済みです。
問題ないようです。

了解です。

引用:
mixiで試してました。
mixiの場合、どのCERTファイルが必要なのでしょうか?
可能であれば、教えてください。

mixiでも同じです。
http://curl.haxx.se/docs/caextract.html
こちらからダウンロードしてください。

cacert.pem (~200KB)
cacert.pem.gz (~90 KB)
cacert.pem.bz2 (~90 KB)

とありますが、圧縮されているだけですべて同じファイルです。
よく分からなければ cacert.pem をダウンロードしてください。


引用:
説明の中に、Windows環境では・・・と言う内容があった気がしますが、
WindowsのIIS環境でもCERTファイルの項目指定は有効なのでしょうか?
Windows環境下の場合は、C://XOOPS_TRUST/cacert.pem って感じ
指定すればよいのでしょうか?

とりあえず、Win32、XAMPP環境での動作確認までは出来てませんでした。
しかし、Win32環境でCERTファイルを指定してmixiへのhttpsアクセスができるようになることはPHP単独の動作として確認できています。

miniHORIさんの環境がよく分からないので、とりあえずcドライブのルートにcacert.pem を置いてしまって設定項目に

c:\\cacert.pem と指定してみてください。
(\一つでもいいかもしれませんが念のため。)

追記:\は一つで大丈夫でした。

追記:先程Win32のXAMPP環境で上記の通り動作確認できました。

追記:証明書についてはこちらをご確認ください。

あとは、ライブドアやはてなあたりのOpenIDで動作するか分かればCERTファイルの問題とほぼ断定できます。

でわ
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-20 10:42
miniHORI  新米   投稿数: 6
こんにちは、お世話になります。 miniHORIです。

引用:
あとは、ライブドアやはてなあたりのOpenIDで動作するか分かればCERTファイルの問題とほぼ断定できます。

はてなで確認した結果、紐付けは問題なくできました。
OpenIDでのログインは、デバックモードオフにも関わらず、以下の警告が表示されますが、ログインできました。

URLと各値は、編集しています
PHP Warning: parse_url(/user.php?op=login&exauth=openid&janrain_nonce=2008-10-20T01%3Aaa%3Aaaaaaaaaa&openid1_claimed_id=http%3A%2F%2Fwww.hatena.ne.jp%2Faaaaaaaa%2F&openid.mode=id_res&openid.identity=http://www.hatena.ne.jp/aaaaaaaa/&openid.return_to=http://wt.test.com/user.php%3Fop%3Dlogin%26exauth%3Dopenid%26janrain_nonce%3D2008-10-20T01%25aaaa%25aaaaaaaaaaa%26openid1_claimed_id%3Dhttp%253A%252F%252Fwww.hatena.ne.jp%252Faaaaaaaa%252F&openid.assoc_handle=9999999999:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaa&openid.signed=mode,identity,return_to&openid.sig=aaaaaaaaaaaaaaaaaaaaaaaaaa%3D) [function.parse-url]: Unable to parse URL in C:\html\modules\legacy\kernel\Legacy_Controller.class.php on line 383 


以上の警告を表示させない方法は無いでしょうか?
何となく、フルパスではなく、/user.php? としているのが問題のような気もしますが。。。


あと、mixiでは無理でした
ココのページではmixiでも使えるようですが・・・
何が違うのでしょうか?
cacert.pemは、ダウンロードして、設定しましたが、現象変わりません


すみませんが、ご指導お願いします。 m(__)m
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-21 0:51
kisara  管理人   投稿数: 78
引用:
はてなで確認した結果、紐付けは問題なくできました。

はてなが大丈夫でmixiがNGということはCERTファイル関係が原因とほぼ断定できると思います。

引用:
以上の警告を表示させない方法は無いでしょうか?

これは最近こちらでは再現しなくなってたので、解決したかと思ってましたが…
ちょっと検証してみます。

引用:
cacert.pemは、ダウンロードして、設定しましたが、現象変わりません

あとは一つづつつぶしてみますか。
ちなみに、そのサーバでコンソール実行できたりしますか?
できるのであればいろいろと試してもらえますか?

とりあえず、可能であれば以下のPHPスクリプトをCドライブのルートにcacert.pemを置いた状態で実行してエラーになるかどうか試してみてください。
最低限の状態でCERTファイルが使えるか試してみましょう。

test.php
<?php

$c = curl_init();

$url = 'https://mixi.jp/';

curl_setopt($c, CURLOPT_URL, $url);

$path = "c:\\cacert.pem";
curl_setopt($c, CURLOPT_CAINFO, $path);

curl_exec($c);

$code = curl_getinfo($c, CURLINFO_HTTP_CODE);

if (!$code) {
echo "error\n";
}

>php test.php
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-21 13:33 | 最終変更
miniHORI  新米   投稿数: 6
こんにちは、miniHORIです。

mixiの場合にNGになる障害については直りました。

php5でcurlを使う場合ですが・・・
デフォルト状態では、php.iniのcurlのDLLに関する行がコメントアウトされています。「;extension=php_curl.dll」この行のコメントを外し、「extension=php_curl.dll」にし、Webサービスを再起動させる事によって解決しました。

と、言う事で、このモジュールを利用する場合の設定内容に、php5の場合、curlを使える設定「;extension=php_curl.dll」行を「extension=php_curl.dll」行に編集すると言う内容を追加した方がイイのではないでしょうか?



「はてな」でも「mixi」でも、警告が表示されます。。。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-21 22:21
kisara  管理人   投稿数: 78
ども、きさらです。

とりあえず、一番の問題が解決してなによりです。

Win32のCURLの設定は確かに分かりづらいかもしれませんね。
無意識に設定してたので原因とは思いつきませんでした。
次回にはある程度ドキュメントに書いておこうかと思います。

警告の件はこれから見てみます。
こっちででないのはなんでだろう…

でわ
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-22 11:10
miniHORI  新米   投稿数: 6
お世話になります。 miniHORIです。 m(__)m

イロイロすみません。m(__)m

最低限、警告がページ内に表示されないようになれば良いのですが。。。
f(^^;


あと、気づいた点ですが
「以下の外部認証システムの認証IDでログインできるようにします。」
のページで表示されるOpenIDの文字がOpenIDIDになってます。
m(__)m
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-23 0:04 | 最終変更
kisara  管理人   投稿数: 78
引用:
最低限、警告がページ内に表示されないようになれば良いのですが。。。

ではちょっとXCLにパッチを当てて暫定対応してみますか。

Legacy_Controller.class.php の 383行目のparse_urlの頭に@をつけてワーニングを抑制してみてください。

@parse_url 

な感じです。

ちゃんとした対応は後々してみます。

ところで、XCLのバージョンはいくつでしょうか?
ここらへん、2.1.4から2.1.5にバージョンアップするにあたり変更があったような気がします。

引用:
のページで表示されるOpenIDの文字がOpenIDIDになってます。

これは把握してました(^^;;
他のプラグインとの兼ね合いでちょっと変な表記になってしまってます。
対応しようとは思ってましたが、ちょっと後回しになってます。申し訳ない。
なるべく早めに対応したいと思います。

でわ
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-23 10:57 | 最終変更
miniHORI  新米   投稿数: 6
こんにちは、お世話になります。 miniHORIです。 m(__)m

Legacy_Controller.class.phpを修正したら、警告メッセージは出なくなりました。

あと、「OpenID の認証ページへ移動します」と表示される部分に以下のメッセージが表示されます。これは、気にしていなかったのですが・・・
出るのはヘン?

Successfully fetched 'https://id.mixi.jp/ナイショ': GET response code 200 Successfully fetched 'https://mixi.jp/xrds_signon.pl': GET response code 206 


すみませんが、確認をお願いします。
 m(__)m
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-23 21:52
kisara  管理人   投稿数: 78
引用:
あと、「OpenID の認証ページへ移動します」と表示される部分に以下のメッセージが表示されます。これは、気にしていなかったのですが・・・
出るのはヘン?

ちょっと変ですねぇ…
これは本来ログファイルに出力して欲しいところです。

php.iniの設定のエラー出力の設定の影響でしょうか。

error_reporting
display_errors
display_startup_errors

あたりの設定値を確認してみてください。

error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off

うちではこんな感じです。

そういえば、parse_urlの件もこれで解決するような気が…
投票数:2 平均点:10.00

  条件検索へ


ログイン

外部認証ログイン

OpenID


Twitter

管理者連絡先

関連サイト

アニメ・ゲーム・コミックの発売日なら 予定表.com

ページの終端です。ページの先頭に戻る