web-dev-qa-db-ja.com

ワードプレスの投稿を表示するためのActive Directory(AD)グループ認証?

Active Directory認証を使用してワードプレスサイトを設定しようとしています。出てきた1つの質問は、カテゴリ/投稿/ブログの閲覧を特定のADグループに制限する機能です。

私はこれが行われたのを見たことがなく、この機能を約束していると思われるプラグインを見つけることができませんでした。最善の選択肢は、read_private_posts機能を持つ役割をユーザに割り当てることですが、これがうまくいくかどうかはわかりません。

3
dadver

私はこれが間違いなく実行可能であるべきだと思います。私は最初にLDAP認証プラグインの一つを手に入れようと思います - Simple LDAP Login または LDAP LoginのようにPassword and Role Manager - 作業してから、コンテンツ認証を処理するための小さなカスタムプラグインを作成します。

これがカスタムプラグインのメインロジックの概要です。

function checkContentAuthorization( $content )
{
    $authorization = array(
        'ldap group 1' => array(
            'authorizesCategories'  = array( 1, 14, 83 ),
            'authorizedPosts'       = array( 53, 48, 23, 432 )
        ),
        'ldap group 2' => array(
            'authorizesCategories'  = array( 54, 9, 34 ),
            'authorizedPosts'       = array( 48, 13, 29, 93 )
        ),
    )

    if( is_category() )
    {
        if( !in_array( $currentCategoryID, $authorization[ currentLDAPUser->groupName ][ 'authorizedCategories' ] )
            $content = 'Access denied';
    }
    elseif( is_single() )
    {
        if( !in_array( $currentPostID, $authorization[ currentLDAPUser->groupName ][ 'authorizedPosts' ] )
            $content = 'Access denied';
    }

    return $content;
}
add_filter( 'the_content', 'checkContentAuthorization' );

明らかにそれはバージョンを落としたものであり、記入するべき多くの詳細があります、しかし実際にプラグイン自体を書くことは少なくとも半日かかるでしょう。しかし、それであなたは正しい方向に向けられるでしょう。

1
Ian Dunn

Wordpressのロールシステムはどういうわけか制限されているので、それが仕事をすることを期待しないでください。コアWPデータ構造に対して直交して編成されている可能性があるアカウント情報の他の構造と組み合わせる場合は特にそうではありません。

最初に認証部分から始めて、サインオンがいつ、どこでコンテンツアクセスを制限するかを確認するようにします(これが要求したとおりに読み取り専用である限り)。

0
hakre