Bug(バグ) #2414
完了
「Cookie 内のユニークな ID」が携帯を機種変したときのメルアド・パスワードログイン時に生成されない
Ryosuke Kunitada さんが約13年前に追加.
約9年前に更新.
説明
2011/7/26にOpenPNE3.6beta11で確認した内容です。
その後修正されているなら閉じてください。
■1■挙動について
opAuthMobileUIDPluginの、
「認証に使用する ID の設定」
で、
- Cookie 内のユニークな ID のみによって認証をおこなう
- Cookie が利用できる端末の場合は Cookie 内のユニークな ID を用い、それ以外の端末では携帯電話個体識別番号によって認証をおこなう
を選択してる場合に、
cookieのop_mobile_uidがなんらかの方法で削除(20年たったり、その他)されたら、
/member/configUID のURLから、Cookie再発行するしかない挙動な感じがします。
それだと、
機種を変えてメルアド・パスワードログインした場合に、
op_mobile_uidのcookieが発行されず、毎回メルアド・パスワードログインをすることになるので、
使い勝手が悪いとおもいます。
メルアド・パスワードログインした場合にop_mobile_uidのcookieが発行される仕様を検討して欲しいです。
関連するチケット
2 (0件未完了 — 2件完了)
下記については #2415 にて対応します
■2■文言について
# Cookie 内のユニークな ID のみによって認証をおこなう
# Cookie が利用できる端末の場合は Cookie 内のユニークな ID を用い、それ以外の端末では携帯電話個体識別番号によって認証をおこなう
にしてる場合の、
/member/configUID
での、
「携帯個体識別番号を登録します。パスワードを入力して、「確定」ボタンを押してください。」
って文言の、
「携帯個体識別番号を登録」
というのが適切じゃない気がします。管理画面での文言に沿うなら、
「Cookie 内のユニークな ID を登録します。」
ではないでしょうか?こちらも検討して欲しいです。
- 担当者 を Minoru Takai にセット
- 対象バージョン を v1.3.3 にセット
- ステータス を New(新規) から Accepted(着手) に変更
チケットのステータスを変更していませんでしたが、対応中です。
apps/mobile_frontend/modules/member/actions/actions.class.php
92- $member = $this->getUser()->getMember();
93- $member->setConfig('mobile_uid', $request->getMobileUID(false));
94- if ($cookieUid)
95- {
96- $member->setConfig('mobile_cookie_uid', $cookieUid);
97- }
かんたんログイン設定の action 内で mobile_cookie_uid を設定する処理を lib/user/opSecurityUser.class.php の login() メソッドに追加します。
- プロジェクト を opAuthMobileUIDPlugin から OpenPNE 3 に変更
- 対象バージョン を削除 (
v1.3.3)
かんたんログインに使われる mobile_uid などの設定はコア側で行なわれています。この修正もコア側へのものとなるためプロジェクトを変更します。
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 対象バージョン を OpenPNE 3.7.0 にセット
- 進捗率 を 0 から 50 に変更
- 3.6 で発生するか を Yes にセット
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 進捗率 を 70 から 50 に変更
docomo, Softbank の端末で以下の手順でテストを行いました。
期待結果は手順7を終えた時点で「ログインすることができる」でした。
しかし、かんたんログイン機能でログインすることができませんでした。 (追記2011/10/07 14:19)
0. このテストはSSLを使用したテスト環境でテストを行なってください
1.プラグイン設定 => 認証プラグイン設定 => opAuthMailAddressPluginの設定(/pc_backend.php/opAuthMailAddressPlugin)”
で「PCメールアドレスと携帯メールアドレスの両方を受け付ける」 を選択.
2.プラグイン設定 => 認証プラグイン設定 => opAuthMobileUIDPluginの設定(/pc_backend.php/opAuthMobileUIDPlugin)
で「Cookie 内のユニークな ID のみによって認証をおこなう」を選択.
3.docomo(Softbank) 端末 A を用いて,メールアドレスとパスワードを用いてログインする.
4.「かんたんログイン設定」でパスワードを入力し「確定」押下.
5.端末 A の SIM を挿したdocomo(Softbank) 端末 B を用いて,メールアドレスとパスワードを用いてログインする.
6.ログアウトする.
7. SNSに遷移し、かんたんログインを行う
さらに、au(iida) 端末で SSL用テスト環境 にアクセス出来ませんでした。
「このサイトは安全でない可能性があるため接続できません(証明書不一致)」
というアラートが出ました。
以上、ご確認よろしくお願いいたします。
- ステータス を Rejected(差し戻し) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
note-10 について回答します。
その前にまず、テスターテストで何を確認しようとしたのかを示します。
- テスト手順
- 携帯端末 A を使い、SNSにアクセスし、メルアド+パスワードでログイン(とりあえずログインする)
- 「かんたんログイン設定」を行い、端末 A にかんたんログイン設定を明示的に行う
- 端末 A でログアウトする(以降は端末 A で操作はしない)
- (端末 A と同じキャリアの)端末 B で、先程と同じメルアド+パスワードでログインする
- 端末 B で一旦ログアウトする
- 端末 B で「かんたんログイン」を試みる
- このテストの意味
- このチケットの修正により、「ログイン直後に『かんたんログイン設定』が行われる」ので、それをテストする
しかしこのテストは誤っています。
- このチケットでの修正内容
- cookie が使える端末に限って、ログイン直後に「かんたんログイン」に使われる cookie を発行する
note-10 でテストが失敗した理由は、端末 B が cookie が使える端末ではなかったためです。また、このシナリオは間違ってはいませんが前半が冗長です(端末 A でかんたんログイン設定を予め行なっておく必要性はありません。また、わざわざ SIM カードを移す必要もありません)。
さらに、au(iida) 端末で SSL用テスト環境 にアクセス出来ませんでした。
「このサイトは安全でない可能性があるため接続できません(証明書不一致)」
というアラートが出ました。
- なぜ SSL 環境を前提としたテストになっているのでしょうか
- SSL 環境では、そこが本当に信用できるかを示す正当(有効)な SSL 証明書が使用されているべきですが、この証明書がない場合にアクセスできないクライアントが存在し、 au 端末でアクセスできないのはこれが原因です。(また、正当な証明書であっても、クライアントが正しいものであると解釈できない場合にも同様の問題が生じます。現状のワイルドカード証明書などが該当します。)
なぜ SSL 環境を前提としたテストになっているのでしょうか
SSLの時のテストを入れたのは、
auのcookieはhttpのときはEZサーバーに保存されるが、SSLのときはcookieが端末に保存されるという挙動の違いがあるのでその部分を確認しようと思ったからです。
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テスト完了しました。
ステータスをFixedに致します。
- 3.8 で発生するか を Unknown (未調査) にセット
他の形式にエクスポート: Atom
PDF