230 likes | 487 Views
Leveraging User Profiles and My Sites in SharePoint 2010 and 2013. Beatrice Baciu - Architect Derek Cash-Peterson - Practice Director. http://thebookofsharepoint.blogspot.com/. @BeatriceBaciu. @spdcp. http://spdcp.com. The Challenge. Centralize all profile data Searching profile data
E N D
Leveraging User Profiles and My Sitesin SharePoint 2010 and 2013 Beatrice Baciu - Architect Derek Cash-Peterson - Practice Director
http://thebookofsharepoint.blogspot.com/ @BeatriceBaciu @spdcp http://spdcp.com
The Challenge Centralize all profile data Searching profile data Integrate with other systems of record
Agenda How does the user profile service work? The benefits of the user profile service. How does the user profile relate to MySites? Configuring user profile service Ways to develop against the user profile service in 2010 & 2013
What We Are Not Talking About Enterprise Social Tagging/Notes Basic configuration of User Profile Service
How Does the User Profile Service Work SharePoint BCS User ProfileService Application External System FIM C# Direct Active Directory Import Active Directory ?
Benefits of the User Profile Service Allows centralized location for all user properties Aggregation of user properties regardless of source Out-of-the-box storage of links to user mysites Individual MySite provides indivudal location to manage and store documents, links, etc. Easy consumption of data in code
How does the user profile relate to MySites There is a link to the users MySite in the User Profile MySite provides user with an interface to edit profile data MySite Provides an individual repository for users that is security trimmed Aggregation of all user profile properties in one source
User Profile Service Demo Configuration with ADFS and a custom database
Recap Use AD/ADFS as primary sync connection Use BCS to import additional profile properties Use property mapping to aggregate the User Profile If using SPD, the primary key will be used as the identifier; modify the BDCM file yourself and use a unique logical key Permissions in BDC
Troubleshooting Connections Disappear: consider restarting the User Profile Synchronization Service Random Sync issues: consider restarting the SharePoint Timer Service when MySite gets created, user profile gets created if not there
Limitations BDC cannot be the primary sync connection Duplicate profiles Once sync connection is deleted, profiles need to be purged via PS
User Profile Service Data Access via REST GET All current user properties http://siteurl/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='domain\username Get specific property of current userhttp://siteurl/_api/SP.UserProfiles.PeopleManager/GetMyProperties?$select=PictureUrl,AccountName Get all properties for a specific userhttp://siteurl/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='domain\username’ Get specific property for a specific userhttp://siteurl/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor(accountName=@v,propertyName='LastName')?@v='domain\username‘
User Profile Service Data Access via REST POST Provision user MySitehttp://siteurl/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/GetUserProfile/CreatePersonalSiteEnqueue Set current user’s profile picturehttp://siteurl/_api/SP.UserProfiles.PeopleManager/SetMyProfilePicture NOTES Changing user’s profile properties is not implemented in REST or CSOM Deletion of user profiles is not implemented in REST or CSOM o365 authentication uses account names like @v='i:0%23.f|membership|user@siteurl.onmicrosoft.com‘
User Profile Service Data Access via REST • varinputParameters= { • “props”: • { • "__metadata": { "type": "SP.UserProfiles.GetUserProfilePropertyFor" }, • "accountName": "demo\bbaciu", • "propertyName": [“FirstName”] • }}; • varrequestHeaders= { • "Accept": "application/json;odata=verbose", • "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()}; • jQuery.ajax({ • url:_spPageContextInfo.webAbsoluteUrl + • "/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor", • type:"POST", • data: JSON.stringify(inputParameters), • contentType : "application/json;odata=verbose", • headers: requestHeaders, • success:function(data){ • //read property • }, • error:function(jqxr,errorCode,errorThrown){ • //handle error • } • });
User Profile Service Data Access via CSOM • SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js'); • function getUserProperties() • { • vartargetUser = "domainName\\username”; • varclientContext = newSP.ClientContext.get_current(); • varpeopleManager = newSP.UserProfiles.PeopleManager(clientContext); • personProperties = peopleManager.getPropertiesFor(targetUser); • clientContext.load(personProperties); • clientContext.executeQueryAsync(onRequestSuccess, onRequestFail); • } • function onRequestSuccess() • { • //we distinguish between user properties and user profile properties • varmessageText = " \"DisplayName\" property is " + personProperties.get_displayName(); • messageText += "<br />\"Department\" property is " + • personProperties.get_userProfileProperties()['Department']; • }
Recap How the user profile service works. The benefits of the user profile service. How does the user profile relate to MySites? Configuring user profile service Ways to develop against the user profile service in 2010 & 2013
Thank You! Beatrice Baciu@BeatriceBaciuhttp://thebookofsharepoint.blogspot.com/ Derek Cash-Peterson@spdcphttp://www.spdcp.com BlueMetal Architects www.bluemetal.com Blog.bluemetal.com @bluemetalinc