it-swarm.com.de

Active Directory (AD) -Gruppenauthentifizierung zum Anzeigen von WordPress-Beiträgen?

Ich versuche, eine WordPress-Site mithilfe der Active Directory-Authentifizierung einzurichten. Eine der aufgeworfenen Fragen ist die Möglichkeit, das Lesen von Kategorien, Posts und Blogs auf bestimmte AD-Gruppen zu beschränken.

Ich habe das noch nie gesehen und konnte keine Plugins finden, die diese Funktionalität versprechen. Es scheint, dass die beste Option darin besteht, nur einer Gruppe von Benutzern eine Rolle mit der Funktion read_private_posts zuzuweisen, aber ich bin nicht sicher, ob dies den Trick schafft.

3
dadver

Ich denke, das sollte auf jeden Fall machbar sein. Ich denke, ich würde zuerst versuchen, eines der LDAP-Authentifizierungs-Plugins zu erhalten - wie Einfache LDAP-Anmeldung oder LDAP-Anmeldung Password and Role Manager - funktioniert, und schreiben Sie dann ein kleines benutzerdefiniertes Plugin, um die Inhaltsautorisierung zu verwalten.

Hier ist eine grobe Übersicht über die Hauptlogik des benutzerdefinierten Plugins:

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' );

Das ist natürlich eine abgespeckte Version und es gibt eine Menge Details zu ergänzen, aber das eigentliche Schreiben des Plugins würde mindestens einen halben Tag dauern. Das sollte Sie jedoch in die richtige Richtung weisen lassen.

1
Ian Dunn

Das Rollensystem in Wordpress ist in gewisser Weise eingeschränkt. Erwarten Sie also nicht, dass es den Job erledigt. Vor allem nicht, wenn Sie es mit einer anderen Kontoinformationsstruktur kombinieren, die orthogonal zu den WP Kerndatenstrukturen organisiert sein kann.

Ich würde zuerst mit dem Authentifizierungsteil beginnen und wenn die Anmeldung funktioniert, um zu sehen, was und wo der Inhaltszugriff eingeschränkt werden soll (solange dies nur zum Lesen gedacht ist, wie Sie es gewünscht haben).

0
hakre