User Profiles and User Information List Synchronization

 

    Lately I have been getting a lot of questions about where user data is stored and how it is synchronized within SharePoint 2007. This inspired me to write this blog post about User Profiles and the User Information List or UserInfo table. I will also do a future post on what happens when a user profile is deleted from MOSS 2007.

     

    User Profiles

    The user profile store in MOSS 2007 contains information about users. User profiles can be created by importing users from a user account directory, or they can be created manually. In most environments Active Directory will be used as the source for creating user profiles. In the MOSS 2007 Shared Service Provider an LDAP import query can be configured that will create user profiles for accounts that are returned from Active Directory by the LDAP query. The user profile imports can be scheduled to  run on a regular basis and they can be either  incremental or full.

    Once a user profile is created additional information about the user can be added to the user profile properties by the user itself, an administrator, a Business Data Catalog data source or an LDAP directory.

    By default data from user profiles is shown in the People Search results, on the My Site and in the User Information list of MOSS and WSS sites.

     

    User Information List

    All MOSS 2007 and WSS 3.0 sites have a user information list. The information in the user information list is stored in the UserInfo table in the content database of the site. A user gets added to the user information list  when he or she has accesses the site for the first time. In the user information list a user's email address, login name and name are stored. MOSS will make sure that user profile property information for those fields for users that are added to the user information list is sent to the user

    information list.  The image below shows an overview of the user profile architecture in MOSS 2007.

     

     User Profile Architecture

     

    Synchronizing user profile data to the user information list

    Keeping the information in the user information lists up to data is a task that is handled by the Profile Synchronization and the Quick Profile Synchronization timer jobs. By default the first job runs once every hour, the second one runs every couple of minutes and is incremental. The first time user data is replicated from the user profile to the user information list of a site a full update is needed. So the Profile Synchronization job needs to run in order to get the data replicated to the site and this may take up to an hour. If information about a user is already stored in the user information list and the information changes in the user profile it will be synchronized with the data in the site collection by the  Quick Profile Synchronization job.

     

    Profile Sync Jobs

     

    You can also kick off the profile synchronization jobs by running the stsadm sync command.

     

     stsadm -o sync

     

    If you believe that information is not synced between the user profiles and the user information lists in one or more sites you can request a list of content databases that have not been synchronized for x number of days by using the following stsadm sync command.

     

    stsadm -o sync -listolddatabases <x number of days>

     

    If one or more content databases show up in this list you can clean up the sync list so they can be added to the list again.

     

    stsadm -o sync -deleteolddatabases <x number of days>

     

    You can also use the sync command to change the schedule for the synchronization job.

    For more information on the stsadm sync command have a look here http://technet.microsoft.com/en-us/library/cc263196.aspx.

Comments -
  1. Gravatar

    Hi,
    Nice post. Maybe it's good to also tell about the differences between the 2 user profiles (the WSS Profile and Moss Profile) and the way you can access them from User -> my settings page and Moss through the People Search or Mysite. In my experience a lot of customers get confused between the differences and why they are not the same and can vary with different information... Always difficult to explain is my experience :-)

      
  2. Gravatar

    Hi Peter,

    The WSS Profile which you refer to is actually the information from the User Information List displayed in an application page (_layouts/userdisp.aspx). It shows you the information that is stored for you in the user information list on the site where you are at the moment you click the My Settings link.

      
  3. Gravatar

    Thanks for this, Mirjam. I get asked about this a lot, so it's nice to have a plain-English explanation. Cool graphic, too!

      
  4. Gravatar

    Hi. I have been working with this during the last week and I have made a discovery that I haven't been able to read find anywhere or google. In our setup we had set the content databases to Offline to prevent having more sitecollections in them. But when a site content db is offline, it will not have the userinfo synchronized.

    - Kaj Bonfils / eqa

      
  5. Gravatar

    Hi Kaj,

    You are right. If you take a content database offline you are basically pausing it. So SharePoint can't use the content database when it's offline. This doesn't only mean that no new sites can be created in that content database, it also means that SharePoint can't use the database for synchronizing user data.

    Regards,
    Mirjam

      
  6. Gravatar

    Hi Bart,

    The _catalog/users list is displaying the user information list. The people.aspx page is used for setting permissions, this page always has an appendix behind the aspx? (like membership=5) and as far as I know never displays the complete user information list. However I do think that the information displayed there is obtained from the user information list.

    Cheers,
    Mirjam

      
  7. Gravatar

    Hi Mirjam,

    Thak's for this fantastic post. In my opinion it's very helpfull for our "Worldwide SharePoint Community". Some times somebedy (as me) have problems with synchronisation mosss platforms users and for example AD and managers want synchronization. Especialy (in my cases) with temporary workers stored in AD. Thank's again.

    PS. Beautiful name

      
  8. Gravatar

    I do import userprofiles from an AD using an LDAP connection.
    I added LDAP connection and Memebership providers to all required config files (Extranet, Central Admin, SSP). When I login into my site using windows authentication and go to Mysettings, I could see the all the atrributes values (say Department = IT, phone = 1234567890). Now when I login into my application using FBA, go to Mysetting .. could not see the attribute values (Department,Phone..) I could just see username and Account... Also when I go to SSP--> View user Profile --> I see the imported data there ... I tried doing sync etc etc
    I appreciate if someone can help me here...

      
  9. Gravatar

    Hi Mehul P,

    A user profile is connected to a user account. Since your forms based account is a different account than your AD account (even if the username is the same!) that account will have it's own user profile.
    So...if you have an AD account and a forms based account you have 2 user profiles.

    Hope this helps.

    Mirjam

      
  10. Gravatar

    HI,

    This is really very nice post.

    I have one problem. In my case title in User Information List is mapped to User Emp ID in User Profile. I want to change that mapping so that Title should map to Job Title in User Profile. Is it possible to do like this? Can you please help?

      
  11. Gravatar

    Hello,
    I am trying to map a user pofile property to a user information site.
    How can i do that.Thx for replying.

      
  12. Gravatar

    Hi Joseph,

    If you want a user profile property to show up in the user information lists of site collection you can enable replication for this property in the user profile property management page in the Shared Service Provider.

    Mirjam

      
  13. Gravatar

    Hi Shekhar,

    The behaviour you're describing is probably caused by a property mapping. If you go into the Search Administration from the Shared Service Provider site you can select Managed Properties. Look for the Title property and see what Crawled properties are mapped to it. You will probably find the Emp ID property in here. Remove this. Add the Job Title property to the mappings. That should fix your problem.

    Hope this helps.

    Mirjam

      
  14. Gravatar

    hi
    with stsadm command is it possible to migrate 'user database' from FBA in WSS to Active Directory in MOSS??
    Do you have any article which lists the things i have to take care of or issues which I may face.

    and are there any free tool available to migrate the user database from wss to moss?

    thx
    saumil
    india

      
  15. Gravatar

    Hi Saumil,

    There is no simple solution or STSADM command to migrate users from FBA to Active Directory. The best way to do this is probably be starting with an export of users from FBA to, for instance, an XML document. Next you can use PowerShell to create all FBA users in AD. You could use the Quest PowerShell AD tools to help you with that.
    If your FBA web application isn't already extended to a web application that uses Windows Authentication you will have to extend it to do so.
    After that you will have to recreate the permissions the FBA users had for the AD users. There is no quick or easy way to do this. I'm afraid you will have to write a custom script to do this.

    The upgrade from WSS to MOSS has nothing to do with this. You can do that separately. I would strongly advice to do one step at a time. And not upgrade the environment and migrate the users at the same time.

    Hope this helps.

      
  16. Gravatar

    Hi,

    It's a great explanation. However, I still couldn't resolve my problem although I had tried out what you had described to run command stsadm -o sync to sync user profiles from AD to MOSS. I couldn't search the user profiles which existed in my SSP from my site when I tried to add the user into my Peoples & Groups. Do you have any idea how to resolve it?

    Thanks & regards,
    shuyi

      
  17. Gravatar

    I have an public site using FBA with a user store of over 17,000 users where we have added only about 200 of those users into SharePoint groups. Occasionally one of their emails changes, and I need that to change in SharePoint, but it will not do that automatically. Is there a way OOTB to do that? Using profile sync in Central Admin? Thanks!

      
  18. Gravatar

    Hi Brendan,

    Unfortunately there is no out of the box way to do this. You can manually or through code create user profiles for FBA users, but the profile sync won't work for them.
    You will have to develop some sort of custom solution I'm afraid. Maybe BCS or something like Nintex Workflow could help you.

    Mirjam

      
  19. Gravatar

    Hi

    It is a nice post and helped me to understand the difference. But It didn't solve my purpose. I changed the mapping of Office field in User profiles to Company as it was office location before and after syncronization , in user information list it is showing both Company name and Office location. any clues??????

      
  20. Gravatar

    Very useful! Thanks a lot!

    One question though. How come there's no "Add this"-like functionality, would be very useful :)

      
  21. Gravatar

    Hi Mirjam,
    thanks for your nice post - makes understanding things going on.
    I have still a Problem: Syncronisation from AD to the User Profile Sore Works fine, but the QuickSync to the User Information List in my Sites is not synched with the User Profile Store.
    I tried several times to delete the 'olddatabases' - this works - no olddatabases are present after doing so, but each time , the sync-timerjob runs, there are newly created 'olddatabases'.
    In my understanding, this means that the synch to the content-dbs is not working, and contolling User-Infornmation confirms this.
    But what can I do to solve this issue?
    Any Help would be appreciated!
    Thanks in advance
    Andreas

      
  22. Gravatar

    Hi Andreas,

    I have no idea what's wrong with your databases. I hope you can find the answer somewhere else.
    You could try posting your question on the SharePoint forums:
    social.msdn.microsoft.com/.../sharepoint2010

    Mirjam

      
  23. Gravatar

    Hi Mirjam,

    Very clear post. Thanks.
    I have one question though. I am experiencing an odd behaviour of our user profiles. We have 500+ user profiles and they all have a mysite. When I use people search to look up a person I see all the details that the user has filled in like job title, name etc. But when I click on the name I am directed to his mysite (mysite/Person.aspx) and it doesn't show any of the fields. All the details are gone. How is this possible or what do I have to do? I've already ran a stsadm -o sync command. Didn't help.

    Thanks, Kevin

      
  24. Gravatar

    Hi Mirjam,

    We are running MOSS 2007 & occasionally we encounter a situation where a 'terminated user' within Active Directory does not get removed from My Site using the 'user profile import'. Any ideas why ?

    Since I haven't figured out the reason, I usually manually delete the user from within SSP.

    Thanks,
    Ravi

      
  25. Gravatar

    Hi Kevin,

    User Profile fields aren't published on the my site by default.
    On the user profile property page you can on a per property basis select "Show in the profile properties section of the user's profile page".
    If you select that the properties should show up on the user's person.aspx page.

    Mirjam

      
  26. Gravatar

    Hi Ravi,

    The thing responsible for deleting user profiles for deleted users is the User Profile Clean Up job. This is a timer job that runs every hour. Once this job has run it will remove the user as the site collection admin of his my site and instead set the secondary site collection admin as the admin. It won't delete the my site. However it will delete the user's user profile (or at least it should).

    Hope that helps.

    Mirjam

      
  27. Gravatar

    Hi Mirjam, I have managed extract user information from the list by using the people picker function, however the location information is not listed which is important for my needs, is there a way how to have this in the default information?

      
  28. Gravatar

    Hi Kris,

    You can get properties to appear in the user information list by going into the User Profile Service Application in Central Administration and clicking on Manage User Properties. Got to the property that you want to appear in the user information list and select Edit. Now select Replicable in the Policy Settings.

    After the "User Profile Service Application - User Profile to SharePoint Full Synchronization" or the "User Profile Service Application - User Profile to SharePoint Quick Synchronization" timer jobs have run the property should show up in the user information lists.
    However I don't think you'll be able to use it in the peope picker.

      

Leave a Reply

 


Please add 8 and 4 and type the answer here: