A(nother) Guide For Using Active Directory With JM

Overview[/b]

This guide will show a convenient way in which a medium-sized organization could use Active Directory (AD) to work with Jive Messenger’'s LDAP authentication and groups. After completing this guide, you will be able to control from AD which users are allowed to access Jive Messenger (JM) and which security or distribution groups will show up in JM, although group sharing will still need to be configured in the JM Admin Console.

Some of these principles may be useful for non-AD systems, but I focus solely on AD for this guide.

Laying The Groundwork[/b]

For this guide, I will use the following AD Organizational Unit (OU) structure:

dc=example,dc=com

|-> ou=Groups

`-> ou=Persons

|-> ou=HR

|-> ou=IT

`-> ou=Sales[/code]

Note that I don’‘t use the Users container that AD uses by default. The reason is that I like to have my AD tree structure match my corporate tree structure, and the Users container is really not an OU, so you can’‘t create OUs underneath it. If you organization is small enough that creating all those extra containers is more trouble that it’‘s worth, then don’'t feel like you need to complicate things. This general setup will work with everything left in the Users container.

In the Groups OU, we will use the following groups:

JabberAccess - group members will be shown in JM

HR - members of the Human Resources department

IT - members of the Information Technology department

Sales - members of the Sales department[/code]

JM XML Configuration[/b]

For this guide, we will use the following example XML configuration segments in JM:

<!-- Group Settings -->
<groupSearchFilter><![CDATA[
  (&
    (objectClass=group)
    (memberOf=cn=JabberAccess,ou=Groups,dc=example,dc=com)
    (member=)

)

]]>[/code]

Let me take a moment to explain the search filters. The authentication search filter (searchFilter[/b]) reads like this:

if (the LDAP object is of type Person) and

(the user is a member of the JabberAccess group) and

(the user account is not disabled) and

(the sAMAccountName, ie. the username, is equal to the given username)

then give this user access to JM[/code]

The group search filter (groupSearchFilter[/b]) similarly reads as:

if (the LDAP object is a Group) and

(the group is a member of the JabberAccess group) and

(the given user is a member of this group)

then show this group with whatever members are listed in the member fields[/code]

The other thing to note is that I leave the user that JM uses to connect to AD in the Users container in AD. This is a personal preference, so feel free to put it anywhere you please.

Enabled Jabber Access In AD[/b]

Once JM is configured as shown above, we are ready to start enabled access within AD. To give users access to JM, simply add them to the JabberAccess[/b] group. Once you have given your users access to JM, add the security or distribution groups you wish to display in JM to the same JabberAccess[/b] group that you added your users to.

Note that users who are not members of the JabberAccess[/b] group but are members of their department group will NOT[/b] show up in JM. The only members of a departmental group that will show up in JM are users who are also members of JabberAccess[/b].

Enabling Group Sharing in JM[/b]

Once your users and groups show up the JM Admin Console, you simply need to enable group sharing for each group and decide who should see the shared groups. It’'s that easy!

Looking Forward[/b]

One useful feature that may[/i] be implemented in the future is automatic sharing of groups. If we could setup JM to share new groups automatically, there would be no need to login to the JM Admin Console at all in order to create new shared groups. If a JIRA issue is created for such a feature or if the feature is implemented, I’'ll update this post.

If you find any errors in this guide, please speach up. Thanks

Cameron

Bumping this back to the top now that 2.2.0 is out. Let me know if you have any questions.

Your setup sounds very simular to mine and we have a problem of users online/offline statuses are not being sent to other users in the group. Also, if we change a users group member ship JM is not propogating it to the clients. we waited 4 hours one time to see if it ever would update thr group roster but it didnt. Have you had any issues like this?

Poppa Smurf,

I’‘ve been following your thread, but I have not had time to do a lot of user testing with 2.2 yet. Our production server is 2.1.5, and I don’‘t know that I will have time to do any substantial bug testing for the next week or two (we’‘re a university, and the fall semester is fast approaching). I will definately test for that bug if it’‘s not fixed by the time I’'m back into JM stuff. Thanks