1

CakePHP フレームワークを使用して徐々に再構築しようとしている Wordpress サイトがあります。Wordpress サイトのさまざまな部分を段階的に置き換えるため、両方のフレームワークが並行して実行されている間、両方のフレームワーク間で承認できるように、ある種のシングル サインオンを実装する必要があります。

これを行う方法については、非常に優れた戦略があります。wp_usersつまり、Wordpress 用のテーブル ( ) と Cake 用の別のテーブル( )の 2 つの異なるテーブルにすべてのユーザー行を複製しますusers。[詳細はこちら(興味がある場合)]

つまり、Wordpress または Cake でユーザーを作成すると、他のテーブルにも同じユーザーが作成されます。これは「ほとんど無害」です...

私たちは、Wordpress と Cake の間の異なるパスワード ハッシュ戦略に苦労しています。同じユーザー パスワードを両方のテーブルに保存するには、それぞれのフレームワークがチェックできるようにパスワードをハッシュする方法を理解する必要があります。

Wordpress は、非常に高度なハッシュ アルゴリズムであるPHPassを使用します。Cake は (デフォルトで) より伝統的なアルゴリズムの選択肢を提供しているようです: SHA1、md5、blowfish... オプションのソルティング付き。 DB のハッシュ バージョン。このハッシュ化されたバージョンのパスワードは、Wordpress のすべての認証プロトコルを複製する方法を見つけられない限り (新しい Cake ユーザーにとってはやや困難に思えます)、ほとんど役に立ちません。

この問題に対するエレガントな解決策はありますか?

4

1 に答える 1

0

CakePHP への移行が完了するまで、Wordpress または CakePHP でユーザー管理を一元化することをお勧めします。

CakePHP 2.3 の時点で、bcrypt/blowfish がパスワードのハッシュのために公式にサポートされています。 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#using-bcrypt-for-passwords

ただし、すでにシングル サインオンが機能している場合は、パスワードの同期しばらくそのままにしておくのはどうでしょうか? CakePHP への移行が完了したら、次のオプションを検討してください。

  • パスワードをリセットするための一意のリンクを含む電子メールをすべてのユーザーに送信します。パスワードをリセットすると、実際には CakePHP でハッシュされたパスワードが作成され、新しいアカウントが有効になります。その後、一意のリンクは無効にする必要があります(リンクが一定期間後に期限切れになることも確認してください)
  • CakePHP と PHPass はどちらも bcrypt/blowfish を使用するため、移行が完了するとハッシュ化されたパスワードを CakePHP にコピーできる場合があります。ただし、PHPass のパスワードとソルトが「どのように」保存されるかを決定する必要があります (フィールドを分離するか、区切り文字を含む単一のフィールドを使用するか)。データベースから適切な「ソルト」を選択する独自のAuthorize オブジェクトを作成する必要がある場合があります
于 2013-04-02T22:17:48.490 に答える