web-dev-qa-db-ja.com

WordPress MultiSite Active Directoryの統合とサイトのプライバシー

セットアップの概要は次のとおりです。

  • WordPress 3.4.2のマルチサイトインストールがあります。
  • Active Directory Authentication Integration プラグインをインストールして、ユーザーが自分のAD資格情報を使用できるようにしました。これにより、ADサイトを各サイトに割り当てることができるため、サイト管理者が手動でアクセス許可を割り当てる必要がなくなります。
  • Network Privacy プラグインをインストールしたため、コンテンツを表示するには特定のサイトにログインする必要があります。匿名ユーザーにはログインページのみが表示されます。

多くの点で、このセットアップは機能します。ただし、1つの問題が発生しているため、これをプライマリWordPressマルチサイトインストールに展開できません。

  • ボブはADの「ITサポート」グループのメンバーです。
  • ボブは、ADの「ドメインユーザー」グループのメンバーでもあります。
  • メインサイト(www.mysite.com)は、「Domain Users」メンバーのみがログインできるようにロックされています。
  • サブサイト(www.mysite.com/itsupport)は、「IT Support」メンバーのみがログインできるようにロックダウンされています。
  • ボブはwww.mysite.comにアクセスし、認証を求められます。彼は自分のAD資格情報を入力し、サイトに入れます。
  • Www.mysite.comにログインしたので、ボブはリンクをクリックしてwww.mysite.com/itsupportにアクセスし、自分がサイトのメンバーではないというエラーを受け取ります。
    • このサブサイトのWordPressデータベースにユーザーエントリが作成されていないようです。
  • ボブはwww.mysite.comからログアウトします。
  • ログアウトしたので、ボブはwww.mysite.com/itsupportに直接アクセスし、認証を求められます。彼はAD資格情報を入力し、サイトに入ることが許可されます。
    • このサブサイトに対して、WordPressデータベース内のユーザーエントリがこの時点で作成されているようです。
  • 彼がログアウトしてwww.mysite.comにログインすると、問題なくitsupportサイトに移動できます。

両方のサイトのボブのユーザーエントリを削除し、ネットワークプライバシープラグインを無効にすると、ボブはwww.mysite.comにログインし、itsupportサイトに移動できます。しかし、彼のユーザーエントリを削除し、ネットワークプライバシープラグインを再度有効にすると、問題が再発します。

他のプライバシープラグインでも同じ問題が発生しましたが、どのプラグインを思い出せません。

問題を特定できる場合、または類似の設定を行っている場合は、ADグループを使用して特定のサイトをロックダウンできるという基本的な基準を満たす限り、何でも試してみます。

19
Phil Erb

別のアプローチを試してください。プラグインを使用する代わりに、次の回答で説明するように、wordpressを少し変更することをお勧めします。

https://stackoverflow.com/a/39195424/3157038

そのため、次のようにwordpressインストールをセットアップする必要があります。

  • mysite.com
    • ルート:*/domains/mysite.com/public_html
    • db:user_mysite
    • テーブルのプレフィックス:root_
  • mysite.com/itsupport
    • ルート:*/domains/mysite.com/public_html/itsupport
    • db:user_mysite
    • テーブルのプレフィックス:itsupport_

私がリンクした回答で指定された構成に加えて、wordpressインストールの両方のwp-configファイルに次を追加します。

define( 'CUSTOM_USER_TABLE', 'mysite_users );
define( 'CUSTOM_USER_META_TABLE', 'mysite_usermeta' );
1
Fleuv

マルチサイトインストールがある場合は、ITテクニカルサポートサイトをサブドメインに切り替える必要があります。

Cookieログインの不一致が発生している可能性があります。ドメインのルートに設定されているため、両方のサイトで同じです。したがって、support.example.comを設定すると、example.com/supportよりも明確になります。

私が完全に誤解していない限り、その場合、別のプラグインを試してコンテンツをユーザーに制限し、これをサブサイトとして実行しないでください。

0
keepkalm