User Profiles (+ people search) with LDAP

    Contributors

    Views: 

     

    Introduction

    Collaboration inside MindTouch does not currently provide much context for users within the system. User profiles (via LDAP) is a feature that will piggyback off of the wealth of data inside an enterprise's LDAP system to display information about users inside MindTouch. Further iterations will see this data be pulled closer to MindTouch (with a possibility of storing/querying this data in MindTouch while synchronizing data with LDAP) in later versions. 

    Purpose

    LDAP has been a very common mechanism for storing directory information about users inside enterprises. A company's directory is a repository of information on people, departments, devices, places, configuration, statistics, etc of company assets. Many mid-larger sized companies spend a considerable amount of effort ensuring the directory has up to date information on the above assets through manual processes such as input by HR, IT, and automated scripts. Having access to this data allows reports to be generated and queries to be performed making MindTouch a central component of an intranet. 

    This feature will allow contributors to a system to discover and connect with other LDAP users inside MindTouch.

    Target Audience

    • Intranet MindTouch users benefit by having home pages populated via template from established information. Having access to an employee directory within MindTouch will allow them to find information about their coworkers without leaving MindTouch. Combining content and people search will provide for a simple and consistent way to find commonly needed information in a company intranet. Connecting the users with MindTouch contributions will provide more context of changes inside MindTouch pages.

    Status

    Under specifications development. This spec has been superceded by two new specs: User Dashboards and ELM.

    Functional Use Cases

    Note: All functional use cases are dependent upon the specific implementation of LDAP within each organization. Some of these use cases make the assumption that a standard Active Directory schema is used

    Employee wants to discover information about a user who has contributed to a page

    An employee has stumbled upon a rather useful page about content on a page. Currently, besides the username, it is hard to make a determination of who contributed to the page. With data from LDAP, the employee finds additional information, including their department, their physical address, their email address, and other contact information. Using this information, the employee is able to further inquire and collaborate on content and coworker contributions.

    ldap_query.gif

    While this view provides a brief overview of a user who has changed the page, it does not provide a fuller context of the user's position inside the MindTouch ecosystem. The expanded profile view provides more information (and serves as a dashboard for MindTouch-specific activity): 

    ldap_query_full.gif

    This page can also start mashing up data from the applications written on top of MindTouch, providing a single activity stream.

    Employee wants to find a phone number for a coworker

    The employee knows their coworkers last name and types it into the search box. As the search results come up, a message and link are displaying asking if the user wants to search the company intranet instead. User is redirected to search results matching people and allows further customization of the search.

    Finding a coworker with expertise

    The advanced search in the people directory will allow finding employees with knowledge of a certain project or technology. This information is often times maintained in directories for larger corporations via groups which can be searched and filtered by an employee looking for someone with specific knowledge.

    Functional Specification

    Phase 1 Goal

    • The brief user contextual popup
    • The expanded user profile view

    profile service flow.png

    New query capabilities of the enterprise LDAP module

    Queries can be performed using this feature through a variety of means.

    • A standard HTTP GET feature is exposed to allow queries to be submitted with XML results returned. This can be used directly through a web browser or within JS powered mashups.
    • Simple DekiScript features exposed similar to those provided by the MySql allowing tables, lists, and single value results to queries. These results can be combined with templates to present clean and consistent output. This may not be necessary for phase1
    LDAP profile service

    Returns combined MindTouch and LDAP user details in a consistent format for search queries

    • Based on a MindTouch username, return MindTouch user details available from GET: users/{id} as well as a predetermined set of LDAP fields
    • Based on a search query, return the same details as above for MindTouch users and users in LDAP matching the query.
      • Matching MindTouch users that are local or not linked to an LDAP authentication provider will not return LDAP details
      • Matching LDAP users that have not yet logged in to MindTouch to create an account will return LDAP details.
      • The LDAP search will query based on a configurable parameterized search string with the query terms substituted
    • All queries also exposed as DekiScript functions to aide in template building
    UI User Summary Contextual Popup
    • Hovering over a username will bring up a popup displaying information in the attached screenshot. Specific fields are not yet final.
    • A template is used to render the popup view
    • The template retrieves user details via a DekiScript call to the LDAP Profile Service
    UI User Profile view
    • New user pages are by default rendered via a template displaying information in the attached screenshot. Specific fields are not yet final.
    • The template retrieves user details via a DekiScript call to the LDAP Profile Service
    UI User search
    • User search is done explicitly by clicking the "People" tab from the current search results view.
    • Search results contain similar info as the user summary contextual popup and will be rendered by PHP(?)
    • Search results are paged

    Open Questions

    • Should a defined set of attributes be copied from LDAP to user properties? 
      • Disadvantages
        • Profile data will not be as real time. Updates can happen every login. Though this data is rarely modified anyway in LDAP.
      • Advantages
        • Performance improved since there's no need to hit LDAP to populate the user info popup or the user profile page. Reducing load on the LDAP server may be a consideration for larger organizations. This may be alleviated by caching data at the profile service.
        • Paves a way to a more generalized and user customizable profile where the profile data is user editable by modifying properties
    • Implement user context popup in php rather than as a dekiscript powered page thats invoked through php
      • Advantages
        • There's currently no way to upgrade page contents or templates between releases. This may be simplified with a php script replaced in the filesystem.
      • Disadvantages
        • The context popup can be customized by the admin and tailored to the company without leaving the site just like other pages.
    •  
    Tag page

    Files 4

    FileVersionSizeModified 
    Viewing 7 of 7 comments: view all
    The folks at BAH hook into their PeopleSoft deployment for this kind of functionality. PeopleSoft is pervasive. Is this compatible? Has anyone investigated this?
    Posted 08:21, 10 Sep 2009
    AaronF, I currently pull info out of our pervasive database that is housed on a windows server from my MindTouch Core installation on Linux. I simply created a .NET webservice that I can call from Dekiscript that runs out and query the database and then delivers the results in XML. I'm not sure if this is something that can help you but I'm willing to share if needed.
    Posted 14:09, 10 Sep 2009
    This would be a killer feature for enterprises, particularly those who are squarely in the AD camp. Judging from the popularity of the AD authentication extension I suspect many would be in a similar position to us, where AD is an untapped resource for wiki data.

    We're in the interesting situation where authentication is via AD, but we also have other directory systems that are accessible via LDAP so this would be a killer feature for us when/if it's implemented.
    Posted 21:21, 6 Oct 2009
    To anybody who is tracking this, we're starting to get a sense of which way we want to take this feature, and have started cutting down the functional use cases. The original use cases by Max are still very good; if you want to view them, see: http://developer.mindtouch.com/index.php?title=Deki/Specs/LDAP_Query_Spec&revision=16#section_5 to see the version of this page prior to my updates. edited 17:05, 9 Oct 2009
    Posted 17:05, 9 Oct 2009
    Seems like a very nice function for the wiki. Can't wait till we can try this out.
    Posted 02:43, 18 Nov 2009
    @royK @maxM How does this service provide for user to enter data about themselves? Most often LDAP updates are wall off from users which would limit them being able to change their profile information, add areas of expertise, or other anecdotal information.
    Posted 08:24, 4 Dec 2009
    AD is generally walled off for users, but is OFTEN used as an authoritative source for basic info, including addresses, phone numbers, et cet. Two things I would like to see added: one is an extension to take the LDAP data and create a user directory listing (in the style of a phone list). The other is the ability to, using the "reports to" fields, auto-generate an org chart from the LDAP data. (This is currently possible using Visio, but it's a royal pain in the posterior.)
    Posted 07:07, 7 Jul 2010
    Viewing 7 of 7 comments: view all
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by