チケット #181 (assigned 不具合) — at バージョン 10

登録: 17 年

最終更新: 17 年

サインイン時「許可しない」を押すと「エラー」の表示が出る

報告者: atsuko 担当者: y-yamagiwa
優先度: 備忘録 マイルストーン: Problems
コンポーネント: OpenID server バージョン:
キーワード: 関係者: yy
GanttChart表示: OFF 依存TaskNo:
開始予定日: 2008/06/26 終了予定日: YYYY/MM/DD

説明 (最終更新者: y-yamagiwa) (diff)

サインイン時「常に許可」「今回だけ許可」「許可しない」の画面が出た時,「許可しない」を選ぶとサービスによっては「エラー」の表示が出ます.

たとえば,内部向けサービス  http://dbclstar.dbcls.jp/kiban/pubmed_recom.cgi で OpenID サーバでログインし,許可しないを押すと,以下のようなメッセージが出ます. ちなみに他の OpenID サービス(myOpenID)では出ないです.


エラー

システムで問題が発生しました。

こちらから トップページに移動できます。

また、問題が続くようでしたら、 管理者(info@…)までご連絡下さい。

チケットの履歴

更新者: y-yamagiwa (17 年 前)

  • 開始予定日YYYY/MM/DD から 2008/06/26 に変更されました。
  • ステータスnew から assigned に変更されました。

更新者: y-yamagiwa (17 年 前)

OpenIDサーバの簡易モードでの認証の対応に一部問題があったため修正いたしました。
現在SVNにコミット済みであり、デプロイ待ちとなっております。

この修正により、簡易モードでの動作はOpenIDの仕様どおりとなります。
下記に簡易モードでのOpenIDサーバの動作を明記します。
1.OpenID Serverにサインイン済み and ずっと許可にするに設定済みの場合にのみ、Server は ok とだけ返す
2.それ以外の場合、サインイン画面や確認も行わずに NG とだけ返す

またクライアント側の動作として、エラーとなる以下のクライアントについて、 ログをチェックしたところ常に簡易モードにてアクセスしておりました。
 http://dbclstar.dbcls.jp/kiban/pubmed_recom.cgi

簡易モードは上記OpenIDの動作を利用する場合のみ使用する事となっておりますので、 サインイン画面、確認画面が必要な場合は、クライアントからのアクセスを通常モードに切り替えていただくようにご検討をお願いします。

更新者: yy (17 年 前)

「OpenID コンシューマ開発チュートリアル」にあるPerlコードのサンプルを参考として処理をしております。 「簡易モード」、「通常モード」という概念について認識しておりませんが、どのような処理をすべきなのでしょうか?

http://kiban.dbcls.jp/eiwa19pj/wiki/OpenIDServerConsumerTutorial#Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7OpenID%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B2

更新者: y-yamagiwa (17 年 前)

PerlでのOpenID 認証機能を CGI で利用する手順について、簡易モード(checkid_immediate)または通常モード(checkid_setup)の実行サンプルが以下で紹介されています。
 http://www.atmarkit.co.jp/fsecurity/rensai/openid03/openid03.html

恐れ入りますが、上記サンプルを参考にしていただいてクライアント側の修正をお願いできますでしょうか?
対象は、「IdPへの問い合わせ機能の実装」になります。

更新者: yy (17 年 前)

実行サンプルにつきお知らせ頂き、ありがとうございます。 早速 delayed_return に関する記述を追加しました。

デプロイが行われた後に、問題のないことを確認します。

更新者: y-yamagiwa (17 年 前)

18時35分にOpenIDサーバをデプロイいたしました。
動作をご確認いただけますでしょうか?

更新者: yy (17 年 前)

ご対応ありがとうございます。

1. OpenIDサーバーへのサインインの状態に関わらず、「許可しない」を選択した時に「エラー」表示はなされなくなりました。

2. 簡易モード(delayed_return => 0)において、OpenIDサーバーにサインインしていない状態でのOpenIDサーバの動作が、お知らせ頂いた仕様と違うようです。(利用者名及びパスワードの入力画面が表示された。delayed_return の値に関わらず、同じ画面が表示されます。)

以上、問題ないでしょうか?

更新者: y-yamagiwa (17 年 前)

恐れ入りますが、簡易モードでのログイン手順をお教え願えますでしょうか?

こちらで操作しましたが、サインインしていない状態でログインする場合はすべて通常モードでのログインとなっておりました。
確認後、ご連絡いたします。

更新者: yy (17 年 前)

1. openid.dbcls.jp において、yayamamo アカウントのサインアウトをします。

2.  http://dbclstar.dbcls.jp/kiban/pubmed_recom.cgi にアクセスします。

3.  http://openid.dbcls.jp/user/yayamamo/ をOpenIDとして入力します。

この時、pubmed_recom.cgi において、delayed_return => 0 としておきました。 下記コードをご参照ください。

my $csr = Net::OpenID::Consumer->new(
    ua => LWP::UserAgent->new,
    cache => Cache::File->new(cache_root => "/tmp/openid", default_expires => '6000 sec'),
    args => $query,
    consumer_secret => sub { $_[0] },
);

if ($query->param('openid-url')) {
    my $claimed_url = $query->param('openid-url');
    my $identity = $csr->claimed_identity($claimed_url)
        or show_login_form($query, '入力されたIDは不適切です。');
    my $check_url = $identity->check_url(
        return_to  => URI->new($query->url."?verify=1")->as_string,
        trust_root => $query->url,
        delayed_return => 0,
        );
    print $query->redirect(-uri => $check_url);
}elsif( ...

更新者: y-yamagiwa (17 年 前)

  • 説明 が変更されました (diff)

上記手順にて、OpenIDサーバ側の動作を確認いたしました。
結果から申し上げますと、サーバ側の動作としては問題がありません。

まず、手順2にてクライアントより簡易モードにて認証が来ております。
その後、エラーとなった場合にクライアント側からすぐに通常モードにて認証が来ておりました。
そのためOpenIDサーバがサインイン画面を表示しております。

クライアント側の動作に関しましてはご使用のライブラリによる部分になりますので、サーバ側としては要求どおりの動作を行っております。
クライアントとしての動作に問題がありませんでしたら、この問題はfixedとさせていただきたいと考えております。

Note: チケットについてのヘルプは TracTickets を参照 して下さい。