Bug(バグ) #2087
OpenPNE2系からコンバートした環境でかんたんログインできない携帯機種がある
100%
Description
Overview (現象)¶
OpenPNE2の時にかんたんログインを設定しておき、そのSNSをOpenPNE3系(3.4 or 3.6)にコンバートした場合、設定した携帯機種でかんたんログインできない。
au(misora)はかんたんログインできるが、softbankとdocomoの携帯でかんたんログインできない。
本来はかんたんログインできるのが正しい仕様である。
もちろん、コンバート後かんたんログインを再設定すれば再びかんたんログインできるようになる。
再現バージョン¶
- OpenPNE3.6beta10-dev
- OpenPNE3.4.12-dev
再現した携帯機種¶
- Docomo SH-05A,P901is
- softbank 840P
再現手順¶
- OpenPNE2.14で携帯(au、docomo、softbank)を登録する
- かんたんログインできるようにしておく(個体識別番号を登録しておく)
- 手順1で登録したSNSをOpenPNE3.6(または3.4)にコンバートする
- 手順1で登録した携帯でかんたんログインを試みる
- auはかんたんログインできる
- docomoとsoftbankはかんたんログイン出来ずにログイン失敗しましたのページに遷移する
Causes (原因)¶
OpenPNE 2 では端末付与型の携帯電話個体識別番号を優先して取得しているにも関わらず、 OpenPNE 3 ではゲートウェイ付与型の携帯電話個体識別番号を優先して取得し、かんたんログインに使用しているため。
Way to fix (修正内容)¶
ゲートウェイ付与型の携帯電話個体識別番号のみ取得や、端末付与型の携帯電話個体識別番号のみの取得がおこなえるようにし、かんたんログインなどそれらの区別が必要な場面において柔軟に対応できるようにした。
この変更を利用したかんたんログイン自体の実装の修正については、 opAuthMobileUIDPlugin 側で実施した。 http://redmine.openpne.jp/issues/2220
Related issues
Associated revisions
added test for fallback uid (fixes #2087)
divided opWebRequest::getMobileUID() into retriving normal uid part, retriving fallback uid part and hashing uid part (refs #2087)
changed to retrieve only non-fallback mobile uid in OpenPNE 3 core because fallback uid is just for keeping BC reason (refs #2087)
changed not to retrieve fallback uid in member/registerMobileToRegisterEnd (oversight in my 89da5b0c commit) (fixes #2087)
added importing configuration for keeping backward compatible with a legacy (insecure) implementation of mobile uid authentication on upgrade from OpenPNE 2 (refs #2087)
changed opWebRequest::getMobileFallbackUID() to return both of OpenPNE 3 format ID and OpenPNE 2 format one (fixes #2087)
History
#1 Updated by isao sano over 13 years ago
参考情報¶
概要¶
2系と3系で取得される固体識別番号が異なる
手順¶
1. 2.14で固体識別番号(暗号化済)を取得。→文字列Aとする
2. 2.14から3.6にバージョンアップ
3. 手順2の環境で固体識別番号を再度紐付け(かんたんログイン設定をしなおす)
4. 手順3で設定しなおされた固体識別番号(暗号化済)を取得。→文字列Bとする
5. 文字列Aと文字列Bが異なる
再現が確認される機種¶
- docomo P901i
- softbank 840P
※au iida misoraでは再現しませんでした
補足情報¶
取得された固体識別番号(暗号化済)docomo | softbank | |
2.14 | 5de30a19ba0bc737419cc01d93ac02a4 | 28789694a6c9d6345c1376ec9e9d8c0c |
↓ | ↓ | ↓ |
3.6beta9 | 03dcc4cd5fd99292fd57ead077bf2d76 | d9624ba8ecb57d2409eb596e95fd1f35 |
関連しそうな情報¶
- ドコモとソフトバンクは端末側とゲートウェイ側で別の個体識別番号を持っているので、2系と3系で別のものを優先して取得しているのではないか?
- 個体識別番号の件、分岐条件の順序が違うからじゃないか?
#2 Updated by Kousuke Ebihara over 13 years ago
- Project changed from OpenPNE Security Issue to OpenPNE 3
#3 Updated by Kousuke Ebihara over 13 years ago
- Priority changed from Normal(通常) to High(高め)
#4 Updated by Kousuke Ebihara over 13 years ago
- Target version set to OpenPNE 3.7.0
#5 Updated by Kousuke Ebihara over 13 years ago
- 3.6 で発生するか set to Yes
#6 Updated by Shingo Yamada over 13 years ago
- Assignee set to Kousuke Ebihara
#7 Updated by Kousuke Ebihara over 13 years ago
- コアと opAuthMobileUIDPlugin の両方の変更が必要
- ゲートウェイからきた ID のみを取得するオプションと、両方取得するオプションの両方を追加する
- 新規セットアップ時のデフォルトは前者で、アップデート時のデフォルトは後者
#8 Updated by Kousuke Ebihara over 13 years ago
opAuthMobileUIDPlugin 側にチケットを作成しました。 http://redmine.openpne.jp/issues/2220
#9 Updated by Kousuke Ebihara over 13 years ago
- Status changed from New(新規) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴 ae8664d1d5568a4c22dbacc64e4318abbbed71e2 で適用されました。
#10 Updated by Rimpei Ogawa about 13 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
本チケットの対象範囲からは若干外れるかもしれませんが、コアの member/configUID アクション(「かんたんログイン設定」というページ)や opAuthRegisterForm での携帯電話個体識別番号の登録時に getMobileUID() を引数なしで呼び出すために端末付与型のIDを登録できてしまう状態になっています。
修正前のコードも端末付与型のIDを登録できていた状態でしたが、特に opAuthMobileUIDPlugin が #2220 の修正適用後のバージョンでインストールした環境では、登録時に端末付与型のIDのみを送信するとユーザー側には携帯電話個体識別番号の登録が正常に完了したように見えるにもかかわらず、かんたんログインはできない状態となってしまいます。
#2220 で opAuthMobileUIDPlugin に端末付与型の携帯電話個体識別番号を取得しないようにするオプションを追加していますが、携帯電話個体識別番号の登録処理がコアにある現状では、プラグイン側の設定に従ってコアの挙動を変えるのは不自然であるためコア側の設定項目として持つ方法も検討すべきかもしれません。
ただ、OpenPNE2からのアップグレード以前に携帯電話個体識別番号を登録していたユーザーの救済目的で端末付与型のIDを利用したいだけであれば、新規に登録する携帯電話個体識別番号で端末付与型のIDを登録できる必要はないため、認証時の取得設定によらず登録時には端末付与型のIDは取得しないようにする方法も考えられます。
#11 Updated by Shingo Yamada about 13 years ago
- 360対象 set to beta13
#12 Updated by Kousuke Ebihara about 13 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
89da5b0c6632cfac9c668df9da331aca3a037332 で http://redmine.openpne.jp/issues/2087#note-10 の指摘事項に対応しました。
ただ、OpenPNE2からのアップグレード以前に携帯電話個体識別番号を登録していたユーザーの救済目的で端末付与型のIDを利用したいだけであれば、新規に登録する携帯電話個体識別番号で端末付与型のIDを登録できる必要はないため、認証時の取得設定によらず登録時には端末付与型のIDは取得しないようにする方法も考えられます。
コアに設定項目を持ってくるかどうかは悩みどころでしたが、後方互換性維持以外の目的で端末付与型の ID を使用する理由はないため、シンプルにこの方針を採用する方向で対応しました。
#13 Updated by Rimpei Ogawa about 13 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
note-10 のコメントで漏れていましたが、 member/registerMobileToRegisterEnd アクション内にも mobile_uid を登録している処理があり、ここでも端末付与型の ID を取得しない対応が必要です。
apps/mobile_frontend/modules/member/actions/actions.class.php
141 $member->setConfig('mobile_uid', $request->getMobileUID());
#14 Updated by Kousuke Ebihara about 13 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
更新履歴 05c7f459f684fbe3c3c9dbd43e8f8c2ce4a04784 で適用されました。
#15 Updated by Maki Takahashi about 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
note-13 での指摘が修正されていること、
および他にmobile_uidを登録しているが対応から漏れているものがないことを確認いたしました。
#16 Updated by Shingo Yamada about 13 years ago
- Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
- % Done changed from 70 to 50
BPチケット側で「差し戻し」となています。
本チケットのステータスも変更します。
#17 Updated by Kousuke Ebihara about 13 years ago
http://redmine.openpne.jp/issues/2205#note-11 より指摘内容を転記します。
テスト実施しましたが、修正が必要な点がありましたので確認お願いします。 h3. 2.12→3.6アップグレード後、かんたんログイン確認 * *試験手順* 1.OpenPNE2.12で携帯端末を登録する 2. かんたんログインできるように個体識別番号を登録する 3.手順1で登録したSNSをOpenPNE3.6にアップグレードする 4.手順1で登録した携帯端末で、かんたんログインする * *試験結果* OpenPNE3.6にアップグレード後、docomo、SoftBank端末で、かんたんログインできない。 * *修正方針* OpenPNE3.6にアップグレード後、docomo、SoftBank端末で、かんたんログインできるように修正お願いします。 h3. 2.14→3.6アップグレード後、かんたんログイン確認 * *試験手順* 1.OpenPNE2.14で携帯端末を登録する 2. かんたんログインできるように個体識別番号を登録する 3.手順1で登録したSNSをOpenPNE3.6にアップグレードする 4.手順1で登録した携帯端末で、かんたんログインする * *試験結果* OpenPNE3.6にアップグレード後、docomo、SoftBank端末で、かんたんログインできない。 * *修正方針* OpenPNE3.6にアップグレード後、docomo、SoftBank端末で、かんたんログインできるように修正お願いします。
#18 Updated by Kousuke Ebihara about 13 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
0601f3e2 で、 OpenPNE 2 からアップグレードをおこなった際に互換性維持のための設定値を有効にしていなかったのを修正しました。
本件の対応中に、 OpenPNE 2 からのアップグレード時に「認証に使用する ID の設定」が「携帯電話個体識別番号のみによって認証をおこなう (非推奨)」に設定されていなかった問題を発見したため、併せて対処しました。
#19 Updated by Maki Takahashi about 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
修正確認いたしました。問題ないと思います
#20 Updated by Kousuke Ebihara about 13 years ago
- Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
- % Done changed from 70 to 50
OpenPNE 2 と OpenPNE 3 とで端末付与型の ID としてみなす範囲が異なっており、 OpenPNE 2 からコンバートした環境でログインがおこなえない状態になっていました。
具体的には、まず、 docomo の端末付与型 ID(icc\w{20})の場合、 OpenPNE 2 では先頭の icc からを ID として扱っていたのに対し、 OpenPNE 3 では (PEAR::Net_UserAgentMobile では) icc に後続する文字列のみを ID として扱っていました。また、 SoftBank の端末付与型 ID (SN.+)の場合も、 OpenPNE 2 では先頭の SN を含んだ文字列を、 OpenPNE 3 では SN に後続する文字列のみを ID として取り扱っていました。
docomo と SoftBank の端末付与型の ID は、 icc や SN といったプレフィックスがついたものとそうでないものの 2 種類を取得、マッチングするように修正する必要があります。
#21 Updated by Kousuke Ebihara about 13 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
#22 Updated by Kousuke Ebihara about 13 years ago
https://github.com/ebihara/opAuthMobileUIDPlugin/commit/4c320320554171a96d13526c26a791591da72936 で opAuthMobileUIDPlugin 側の修正をおこないました(#2220)。
#23 Updated by Maki Takahashi about 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
修正確認いたしました。
#24 Updated by isao sano almost 13 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テスト完了致しました。
問題ありませんでしたので、ステータスをFixedに致します。
#25 Updated by kaoru n about 9 years ago
- 3.8 で発生するか set to Unknown (未調査)