So Welcome on one of the many technical blogs out there on the web. So what is special about this blog? Well absolutely nothing :) ... This is the place where I store handy information I don't want to forget, while hoping that in the process I'm also helping some other poor soul on the web that is facing similar issues, or is interested in similar topics.
So who am I?
My name is Mark Priem, I was build in 1981 and live in the Netherlands together with my two sons, Roan and Levi, and my Wife Mylene (note the capital W... You know who's boss now), who I all love to death.
Aside from spending as much time as possible with my family I enjoy sports and socializing face to face and online. Your average Joe right? The little time that is left I spend on technology; My main focus currently is SharePoint and cloud solutions, which I work with on a daily basis as part of my Job, Consultant at Microsoft. As I'm a Microsoft Certified Master in SharePoint 2010 I think I can say I know a thing or two about SharePoint, which I hope has a positive effect on the quality of my posts.
If however you find any misinformation or plain wrong content, please let me know. We all make mistakes right? :)
Please enjoy your stay and let me know what you think by commenting to my posts.
Thanks!
Mark
In deze vijfde post in de User Profile Service series ga ik in op de 'My Sites'. Eerdere posts in deze serie:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-import.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-export.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/08/sharepoint-2010-social-tags-notes-en-user-ratings.aspx
In het aantal en type componenten rondom 'My Sites' is eigenlijk weinig veranderd in 2010. Onderstaande afbeelding geeft deze schematisch weer.
Het begint bij de gebruiker die via browser of client applicatie verbinding maakt met bijvoorbeeld een teamsite binnen een web applicatie. Door vervolgens de standaard 'My Site' web control te gebruiken, wordt er een call naar de User Profile Service gemaakt om de 'Trusted My Site Host location' voor de gebruiker op te halen. Deze wordt vervolgens doorgestuurd naar een lokale of remote 'My Site Host'.
De 'My Site Host' is gebaseerd op de SPSMSITEHOST site definitie en bevat een default.aspx pagina die content toont vanuit de desbetreffende My Site, en profiel van de gebruiker. Deze pagina wordt standaard getoond, en bevat de 'What's New' webpart, welke een News Feed toont met recente activiteiten van de gebruiker en directe collega's. Ook host deze site de profiel pagina (person.aspx), waar gebruikers de profielen van henzelf en anderen kunnen zien, en mogelijk wijzigen, wanneer zij kiezen voor de 'My Profile' link . Door middel van de 'My Content' link, komt men op hun eigen 'My Site' uit.
De 'My Site', gebaseerd op de SPSMSITE site definitie, is een persoonlijke site voor de gebruiker. De gebruiker is hiervan 'site owner' en 'site collection administrator', en kan er dus mee doen wat hij/zij wil.
Een laatste component wat in een lokale deployment meespeelt is de 'Timer Service'. Deze beheert via de 'My Site Cleanup' en 'User Profile Service – My Site Suggestions Email Job' timer jobs de My Sites. Zo zorgt de Cleanup job ervoor dat, na verwijdering van een profiel uit de Profile Database, de manager van deze persoon de volledige rechten krijgt, en een email notificatie. De Suggestions job stuurt periodiek een email met bepaalde 'suggesties' rondom Keywords en Collega's wanneer het profiel langer dan een maand niet van updates is voorzien.
In een global deployment wordt een gebruiker op basis van zijn of haar 'Trusted My Site Host location' mogelijk doorgestuurd naar een remote farm. Het probleem hierbij is dat Social- en Profiel Data dynamisch is, en verschilt per farm. Om dit tegen te gaan is er – net als in 2007 – de optionele 'User Profile Replication Engine' welke gebruikt wordt om Social Data als Tags en keywords, en profiel data te repliceren tussen twee User Profile Service Applications.
Zoals gezegd spelen er twee belangrijke sites mee, namelijk de 'My Site' zelf en de 'My Site Host'. Zoals gezegd is de 'My Site' zelf redelijk basic gebleven, en is er niet heel veel gewijzigd ten opzichte van 2007. Het is een simpele site met een tweetal document libraries 'Shared Documents' en 'Personal Documents'. Deze zijn bedoeld voor het opslaan van privé documenten, en documenten die gedeeld kunnen worden met anderen. Het grote verschil met 2007, is dat de MySite root site, eigenlijk niet direct toegankelijk is voor anderen, ook al heeft 'NT AUTHORITY\AUTHENTICATED USERS' read rechten op de site. Gebruikers worden door een speciaal web control doorgestuurd naar de Person.aspx profiel pagina van de 'My Site Host', welke geaggregeerde data laat zien van de eigenlijke 'My Site'. Via het breken van de overerving van rechten (Limited Access) kan je wel direct rechten toekennen aan lijsten en items, die wel direct toegankelijk zijn (een veelgebruikte toepassing zullen Discussion Boards zijn). De My Site root zal alleen direct gebruikt worden door de eigenaar van de site.
De 'My Site Host' pagina, waarvan er 1 per User Profile Service is, heeft wel een flinke facelift ondergaan. Het is bijna een Social Portal geworden. Het bestaat uit een aantal onderdelen:
De structuur van de 'My Site Host' is hieronder schematisch weergegeven.
De 'News Feed' pagina, is de default pagina, welke de recente activiteiten van jouw collega's bevat. Deze activiteiten worden bepaald op basis van jouw subscriptions. Deze zijn te wijzigen door te kiezen voor My Interests of Newsfeed Settings binnen deze webpart. In beide gevallen wordt je profiel in edit mode geopend (/_layouts/EditProfile.aspx). In de Newsfeed Settings sectie kan je de instellingen aanpassen. De meeste instellingen spreken voor zich. Je kunt bij Interests opgeven welke interests jij hebt. Mocht er iemand in zijn profiel dezelfde interests toevoegen, wordt jij daarvan op de hoogte gesteld via de activity web parts. Deze activiteiten worden op basis van changelogs in de Profile- en Social databases gecreëerd door de User Profile Service - Activity Feed Job timer job en opgeslagen in de Social database.
Vanuit de 'News Feed' pagina kun je naar de Profiel pagina, door te kiezen voor My Profile of naar je eigen 'My Site' door te kiezen voor My Content.
De profiel pagina is de meest uit het oog springende. Deze heeft echt een flinke facelift ondergaan ten opzichte van SharePoint 2007. Ik zal niet alle pagina's in detail behandelen, maar de nieuwe person.aspx en /_layouts/thoughts.aspx verdienen wel extra aandacht. Alle pagina's die gekoppeld zijn aan het profiel gebruiken een custom masterpage die je profiel foto, met een call-out (die vrij aan te passen is. Hoe cool zou het zijn, als dat gekoppeld werd aan OCS J) , en een aantal tabbladen welke verwijzen naar de verschillende overige pagina's.
De person.aspx pagina is de pagina achter 'Overview', welke de Ask Me About, Recent Activities, My Organization Chart, In Common with You en Note Board web parts laat zien. De 'Ask Me About' web part laat het gelijknamend veld in jouw profiel zien. Wanneer iemand een link klikt, worden ze doorverwezen naar het 'Note Board' onderaan de overview pagina, waar dan een berichtje achtergelaten kan worden wat begint met 'Question about Sharepoint:', waarbij Sharepoint dan de link in de 'Ask Me About' was, waarop geklikt werd.De 'Recent Activities' spreekt voor zich, en is een overzicht van jouw recente activiteiten.De 'My Organization Chart' is een tree view van de organisatie, gebaseerd op de 'Manager', 'Direct Reports' en 'Department' velden uit Active Directory. Deze kan je verder manipuleren door je 'Colleagues' aan te passen onder de 'Colleagues' tab.De 'In Common with You' web part laat gedeelde managers, collega's en site memberships zien. Tenslotte kun je in het 'Note Board' web part een notitie achterlaten.
De 'Tags & Notes' tab, vind ik persoonlijk een hele leuke tab. Hier kun je al je Tags en Notities centraal managen:
Je kunt op deze manier content terugvinden op basis van Tags (alhoewel Search hiervoor toch wel een betere oplossing is), en je kunt je Tags verwijderen of 'Private' maken. Door middel van de Refine by … web parts kun je heel gemakkelijk de Tags en Notes anders sorteren. De Add Sharepoint Tags and Note Tool werkt een beetje omslachtig, maar is een handige tool. Wanneer je deze als bookmark toevoegt aan bijvoorbeeld Internet Explorer (in mijn geval Tag Site), kun je heel gemakkelijk externe sites taggen. Er wordt dan een javascript aangeroepen die de url van de pagina meeneemt en toevoegt aan de tag. Het allerleukste heb ik tot het laatst bewaard. Als je goed kijkt naar deze 'Tags & Notes' pagina, zie je dat alle tags in de Activities for: web part hyperlinks bevatten. Wanneer je dan vervolgens zo'n tag aanklikt, kom je op de Tag Profile pagina (/mysitehost/tagprofile.aspx), waar je een overzicht ziet van alle plekken waar deze tag gebruikt is.Zo kun je zien in welke term set de tag is opgenomen, waaar de tagged items zijn, en de tag meteen toevoegen in jouw profiel. Zo kun je zorgen dat je op de hoogte gehouden wordt, van waar die tag gebruikt wordt, of toevoegen aan de 'Ask About Me'. Ook kun je op deze tag weer een Notitie achterlaten. Ik kan mij niet echt voorstellen waarom je dit zou willen, maar het kan. Tenslotte kun je nog kiezen voor See all results for this tag in search. Het resultaat mag duidelijk zijn. Meer hierover in mijn volgende blog post series over Search.
De overige tabbladen op de profiel pagina's vind ik minder interessant. Zo is de 'Organization' tab een pagina met een SilverLight control die hetzelfde laat zien als de 'My Organization Chart' web part op de 'Overview' tab, maar dan als mooie SilverLight animatie. Verder hebben we nog de 'Colleagues' en 'Memberships' tabbladen die – hoe kan het ook anders – collega's en site memberships tonen (alleen waar je lid bent van site members, geen andere Sharepoint groups), en de mogelijkheid bieden deze te manipuleren. Tenslotte is er nog de 'Content' tab, die we reeds besproken hebben in het stukje over de 'My Site'. Deze bevat een overzicht van recente blog posts, en content waar jij eigenaar van bent, op sites binnen jouw memberships.
Als je mijn blog post series hebt gevolgd, weet je al wat nodig is om 'My Sites' te hosten. Om toch het een en ander samen te vatten. Heb je voor de 'My Sites' het volgende nodig.
Alle web applicaties die verbonden zijn met de Service Application proxy group waar deze 'User Profile Service' onder valt kunnen nu gebruik maken van de functionaliteiten van de 'My Sites'.
De overige configuratie die gedaan kan worden rondom 'My Sites' is niet veel gewijzigd in 2010. Via Configure Trusted Host Locations geef je 'My Site Host' locaties op die je kunt gebruiken in Audiences om gebruikers naar andere 'My Site Hosts' te sturen, in omgevingen waar meerdere SharePoint farms draaien. Published links to Office client applications en Configure Personalization Site stellen je in staat om links naar interne of externe links toe te voegen aan hetzij de 'My Site Host' toplink bar, ofwel aan de Office client applicaties. In combinatie met audiences, kan je deze links targetten op groepen gebruikers.
De volledige blog serie bestaat uit:
Nu SharePoint 2010 Forefront Identity Manager gebruikt voor profiel synchronisatie, is het tijd voor ons SharePoint admins om wederom een nieuw product te leren, althans in den basis.
Forefront Identity Manager of FIM, is onderdeel van een bredere set aan tools binnen het Identity Management werkgebied. Het biedt synchronisatiemogelijkheden van Identity Informatie tussen verschillende bronnen, en zit daar als controlerend component met bijgeleverde metabase tussen. Zo is het mogelijk informatie over personen vanuit bijvoorbeeld HR systemen te synchroniseren naar bijvoorbeeld AD, SQL of LDAP. Verder biedt het ook nog de mogelijkheden om nieuwe objecten aan te maken om zo opgenomen te worden in een breder provisioning proces, met daaraan gekoppelde functionaliteit om bijvoorbeeld wachtwoorden te synchroniseren.
Omdat FIM binnen SharePoint bedoeld is voor profiel synchronisatie, zal ik laatstgenoemde functionaliteiten buiten beschouwing laten. Deze blog post richt zich puur op synchronisatie van gebruikers informatie. Ook zal ik het alleen het standaard Active Directory scenario belichten. De principes hierachter zijn gelijk voor andere sources.
(voor informatie over de User Profile Service binnen SharePoint zie: http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/SharePoint-2010-user-profile-service.aspx)
FIM bestaat normaal gesproken uit een aantal onderdelen, namelijk:
Wanneer je binnen SharePoint een User Profile Application provisioned, en vervolgens de User Profile Synchronization Service start binnen Central Admin (Services on Server), zal SharePoint FIM configuren. Hierbij worden alleen de FIM Service en FIM Synchronization Service geconfigureerd. De beide portals komen niet beschikbaar.
De belangrijkste concepten rondom de FIM Synchronization Service zijn de management agents, connector space en Metaverse:
Vermoedelijk ben je nu nog steeds erg verward… Misschien dat het volgende plaatje wat meer duidelijkheid schept:
Wat hier geschetst wordt is in een notendop wat de Synchronization Service doet:
* Heel belangrijk in dit concept is dat er in een dergelijk scenario altijd maar 1 master source is voor een bepaald attribuut. Een username kan dus maar op 1 data source gewijzigd worden. Uiteraard kan je ervoor kiezen een username niet te synchroniseren naar een bepaald data source, door het bijvoorbeeld helemaal niet mee te nemen in de configuratie, of alleen voor een initiële provisioning te kiezen. Je kunt het username dan wel gewoon wijzigen, zonder de kans dat het overschreven wordt door een wijziging in de master source.
Voordat we over gaan tot inzage in de configuratie tool, laat ik alvast even heel duidelijk zijn:
Bij FIM binnen SharePoint 2010 doe je de configuratie vanuit SharePoint. Afblijven dus verder!!!
De configuratie tool voor FIM is echter wel handig bij troubleshooten, vandaar wat meer uitleg. De tool die je gebruikt voor het configureren van de FIM services rondom synchronisatie is de Synchronization Service Manager , en te vinden onder 'C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\miisclient.exe'.
Deze tool bestaat uit een aantal onderdelen:
In de volgende paragraven zal ik elk van deze onderdelen iets meer belichten.
De Operations tab zul je veel gebruiken als SharePoint beheerder bij het troubleshooten van issues. Dit geeft een veel uitgebreider overzicht weer van de status van de verschillende operaties als binnen de User Profile Service. Selecteer gewoon een regel en zie wat voor informatie deze geeft. Het geeft bijvoorbeeld weer welke wijzigingen er gemaakt zijn, en – nog belangrijker – welke dus niet.
De Management Agents tab toont de verschillende Management Agents. Voor SharePoint 2010 zijn het er standaard 3 nadat je een profile import connection voor AD hebt gemaakt:
De management agents worden voorgeconfigureerd bij het deployen van de User Profile Service en het aanmaken van de Import connections. De configuratie is de bereiken door het context menu van een management agent op te vragen:
Properties bevat de meeste configuratie. De configuratie van deze management agents wordt voor een groot deel bepaald door Rules Extentions, welke opgenomen zijn in de Configure Extention Settings sectie, wanneer je de properties opvraagt van de management agent. Dit is een binary (Microsoft.Office.Server.UserProfiles.ActiveDirectoryMAExtension.dll bijvoorbeeld voor AD types) die het overgrote deel van de configuratie van de management agent bepaald. Nogmaals: niet aan de configuratie komen dus!!
Configure Run Profiles bevat de configuratie van de eigenlijke Operations die je terug ziet in het Operations configuratieonderdeel. Een management agent die geen run profiles heeft, doet dus niets. SharePoint stuurt het aftrappen van deze run profiles dus aan. Dat is wat je ziet in de logs.
Een run profile bevat 1 of meerdere stappen. Een stap voert 1 operatie uit. Je kunt kiezen uit de volgende operaties:
Operatie
Omschrijving
Delta Import (stage only)
Importeert gewijzigde objecten uit de data source naar de connector space.
Full Import (stage only)
Importeert alle objecten uite de data source naar de connector space.
Delta Import and Delta Synchronization
Importeert gewijzigde objecten uit de data source naar de connector space. Vervolgens wordt na het processen van de verschillende rules, de gewijzigde data gesynchroniseerd de MetaVerse.
Full Import and Delta Synchronization
Importeert alle objecten uit de data source naar de connector space. Vervolgens wordt na het processen van de verschillende rules, alleen gewijzigde data gesynchroniseerd de MetaVerse.
Full Import and Full Synchronization
Importeert alle objecten uit de data source naar de connector space. Vervolgens wordt na het processen van de verschillende rules, alle data gesynchroniseerd de MetaVerse.
Delta Synchronization
Na het processen van de verschillende rules, wordt de gewijzigde staged data gesynchroniseerd de MetaVerse.
Full Synchronization
Na het processen van de verschillende rules, wordt alle staged data gesynchroniseerd de MetaVerse.
Export
Data uit de connector space wordt weggeschreven naar de data source. Dit is altijd een delta; alleen gewijzigde data wordt weggeschreven.
Ook hier mag je eigenlijk niets wijzigen.
Om te troubleshooten zijn er een aantal onderdelen waar je waardevolle informatie vandaan kunt halen of extra logging kunt aanzetten:
De Metaverse Designer heb je echt niets te zoeken. Je kunt hier het schema zien van de metaverse, maar meer informatie valt er niet te halen.
De Metaverse Search kan erg handig zijn. Je kunt hiermee in de Metaverse zoeken en nagaan of jouw verwachte objecten aanwezig zijn met de juiste attribuut waarden:
Het zoeken spreekt voor zich. Na het zoeken dubbelklik je een result en krijg je een uitgebreid overzicht op de Attributes tab van hoe het object is opgenomen in de Metaverse:
Op de Connectors tab krijg je een overzicht van de connector spaces waar dit object mee gejoined is. Wanneer je vervolgens een management agent selecteert, kun je kiezen voor Properties, waarna je een overzicht krijgt van hoe het object er in de connector space uitziet. Verder bevat dit scherm informatie over wanneer het type object en wanneer de laatste wijzigingen zijn geweest in de connector space. Op zich handige informatie, maar de meest handige functionaliteit hier is Preview. Onder aan het scherm is een Preview knop. Wanneer je deze gebruikt kom je in een venster waar je een Full of Delta synchronisatie kunt simuleren van die management agent (ofwel synchronisatie vanuit de connector space richting de metaverse). Je krijgt dan een compleet overzicht van wat er zou gebeuren als je nu zou synchronizeren. Je kunt bijvoorbeeld ook checken wat voor resultaten dat zou hebben voor de Export operaties van andere management agents. In mijn geval heb ik voor het schrijven van http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/SharePoint-2010-profiel-synchronisatie-export.aspx het property department gewijzigd zodat deze vanuit SharePoint zou synchen met AD. Je ziet in onderstaand voorbeeld dat mijn FULL synch zou zorgen dat de AD management agent bij de Export operatie het attribute department gaat proberen te exporteren, maar dat de Final Value (Unchanged) is. Het is dus ondertussen niet gewijzigd.
In joiner kun je zoeken naar objecten in connector spaces die niet gekoppeld zijn aan objecten in de metaverse. Ik kan niet zo snel een situatie bedenken dat je hier graag zou willen kijken. Je zou hier hoogstens even kunnen kijken of bepaalde objecten gefilterd zijn door rules door te zoeken op Filtered Disconnetors. Echter, aangezien rules nagenoeg allemaal gebaseerd zijn op Rules Extentions, valt er verder weinig aan te troubleshooten. Misschien dat na gelang de tijd vordert zich nieuwe toepassingen aandoen, maar vooralsnog zou ik Joiner links laten liggen.
Naast de eerder genoemde plekken waar je relevante informatie kunt vinden, is er binnen deze tool ook nog de mogelijkheid op twee plekken wat extra logging aan te zetten:
Dit is het tweede deel in de serie over de User Profile Service. Deze post behandelt profiel synchronisatie. Het behandelt het importeren van profieldata. Voordat je deze post leest, lees eerst de volgende blog posts:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspx
Profiel synchronisatie zorgt voor het vullen en actueel houden van profiel data. Zoals gezegd in eerdere blog posts gaat dat nu via de FIM services.
Voordat we kunnen na gaan denken over het synchroniseren van profieldata, moeten we eerst de User Profile Service Application aanmaken en configureren. Hiervoor is het eerst nodig om een My Site infrastructuur klaar te zetten, om de volledige functionaliteit te kunnen benutten.
Nu de service application aangemaakt is, moet er een synchronisatie connectie aangemaakt worden naar Active Directory. Om dit voor elkaar te krijgen:
De Service Application is nu klaar. Wat rest is om de User Profile Service en User Profile Synchronization Service services te starten op een Sharepoint server, maar voordat we dat doen, moet er nog iets heel belangrijks gebeuren: VOEG HET FARM ACCOUNT TOE AAN DE LOCAL ADMINISTRATORS VAN DESERVER WAAR DE SYNCHRONISATIE SERVICE GAAT DRAAIEN EN HERSTART DAAR DE TIMER SERVICE. Vergeet dit absoluut niet, want anders gaat de provisioning stuk en kan je opnieuw beginnen. Je kunt na de provisioning het account weer weghalen.
De service wordt nu provisioned, wat inhoudt dat FIM geconfigureerd wordt. Dit houdt dus ook in dat op dat moment de SQL tabellen en stored procedures worden aangemaakt in de Synchronisatie database. Dit is het punt waar, als je tegen fouten aan zou lopen, je er tegen aan loopt. Als je in eerdere stappen bijvoorbeeld onvoldoende rechten in AD hebt gegeven of de User Profile Service niet hebt gestart, gaat alles stuk, en kan je meestal niet anders dan helemaal opnieuw beginnen. Deze integratie werkt wat mij betreft op het provisioning vlak nog niet goed. Zodra deze service gestart is, wat ZEER lang kan duren, is alles klaar voor de eerste import.
Om een profile synchronisatie te starten, selecteer je simpelweg Start Profile Synchronization vanuit Application Management > Manage Service Applications > User Profile Service.
Het synchronisatie proces zal starten. De voortgang kan je in hetzelfde venster monitoren. Synchroniseren gaat meestal zonder problemen. Als je het eenmaal allemaal werkend hebt, werkt het ook goed. De verschillende fasen en management/control activiteiten maken het, in vergelijking met Sharepoint 2007, erg traag voor kleinere omgevingen. Dit wordt echter goed gemaakt door een veel snellere doorvoer in grote omgevingen.
Als je met deze status niet uit de voeten kunt, kun je altijd nog de FIM configuratie client gebruiken, welke te vinden is onder 'C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\miisclient.exe'. Hier is een uitgebreidere status te volgen:
Wat nu nog rest is de synchonisatie van de profiel informatie in de Profile Database naar de Sharepoint Foundation profielen (WSSv4 profielen). Dit proces is nagenoeg ongewijzigd ten opzichte van 2007. Wat namen van stored procedures e.d. zijn veranderd, maar verder is het redelijk hetzelfde proces. Voor een beschrijving hiervan, check mijn blog post over Profiel Synchronisatie in Sharepoint 2007: http://blogs.microsoft.nl/blogs/mpriem/archive/2010/01/11/ssp-profile-synchronisatie-in-sharepoint.aspx
De volledige blog serie bestaat uit:http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-import.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-export.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/08/sharepoint-2010-social-tags-notes-en-user-ratings.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/sharepoint-2010-my-sites.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/sharepoint-2010-user-profile-service-timerjobs-en-cmdlets
Deze laatste post in de blog serie over de User Profile Service toont een overzicht van Timer Jobs en CMDLets die gebruikt (kunnen) worden bij beheer van de User Profile Service. Eerdere blog posts in deze series zijn:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-import.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-export.aspxhttp://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/08/sharepoint-2010-social-tags-notes-en-user-ratings.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/sharepoint-2010-my-sites.aspx
De User Profile Service leunt op een groot scala aan timerjobs. De volgende lijst geeft daarvan een overzicht.
Voor diegene die liever met Powershell werkt, is de User Profile Service, zoals nagenoeg elke Service Application, prima te beheren via Powershell. De volgende Powershell CmdLets zijn te gebruiken:
Cmdlet name
Syntax
Add-SPSiteSubscriptionProfileConfig
Voegt in multi-tenant scenarios een nieuwe site subscription toe aan de Service Application.
Add-SPSiteSubscriptionProfileConfig [-Identity] <SPSiteSubscriptionPipeBind> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-MySiteHostLocation <SPSitePipeBind>] [-SynchronizationOU <String>] [-WhatIf [<SwitchParameter>]]
Get-SPProfileServiceApplicationSecurity
Laat security informatie zien over de Service Application.
Get-SPProfileServiceApplicationSecurity -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-SiteSubscription <SPSiteSubscriptionPipeBind>] [-Type <String>]
Move-SPProfileManagedMetadataProperty
Verplaatst Profile Property naar een managed termset in de Managed Metadata Service. Wanneer je geen termset opgeeft komt deze in de Keywords term set te staan.
Move-SPProfileManagedMetadataProperty -Identity <String> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-AvailableForTagging <SwitchParameter>] [-Confirm [<SwitchParameter>]] [-TermSetName <String>] [-WhatIf [<SwitchParameter>]]
New-SPProfileServiceApplication
Maakt een nieuwe User Profile Service Application aan
New-SPProfileServiceApplication -ApplicationPool <SPIisWebServiceApplicationPoolPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-MySiteHostLocation <SPSitePipeBind>] [-Name <String>] [-PartitionMode <SwitchParameter>] [-ProfileDBCredentials <PSCredential>] [-ProfileDBFailoverServer <String>] [-ProfileDBName <String>] [-ProfileDBServer <String>] [-ProfileSyncDBCredentials <PSCredential>] [-ProfileSyncDBFailoverServer <String>] [-ProfileSyncDBName <String>] [-ProfileSyncDBServer <String>] [-SocialDBCredentials <PSCredential>] [-SocialDBFailoverServer <String>] [-SocialDBName <String>] [-SocialDBServer <String>] [-WhatIf [<SwitchParameter>]]
New-SPProfileServiceApplicationProxy
Maakt een nieuwe User Profile Service Application Proxy aan
New-SPProfileServiceApplicationProxy -Uri <Uri> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-DefaultProxyGroup <SwitchParameter>] [-Name <String>] [-PartitionMode <SwitchParameter>] [-WhatIf [<SwitchParameter>]]
Remove-SPSiteSubscriptionProfileConfig
Verwijdert in multi-tenant scenarios een site subscription van de Service Application.
Remove-SPSiteSubscriptionProfileConfig [-Identity] <SPSiteSubscriptionPipeBind> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-WhatIf [<SwitchParameter>]]
Remove-SPSocialItemByDate
Verwijdert Tags, notes, of ratings uit de Social Databases.
Remove-SPSocialItemByDate -EndDate <DateTime> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-RemoveComments <$true | $false>] [-RemoveRatings <$true | $false>] [-RemoveTags <$true | $false>] [-SiteSubscription <SPSiteSubscriptionPipeBind>] [-WhatIf [<SwitchParameter>]]
Set-SPProfileServiceApplication
Wijzigt eigenschappen van de User Profile Service Application.
Set-SPProfileServiceApplication [-Identity] <SPServiceApplicationPipeBind> [-ApplicationPool <SPIisWebServiceApplicationPoolPipeBind>] [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-GetNonImportedObjects <$true | $false>] [-MySiteHostLocation <SPSitePipeBind>] [-Name <String>] [-ProfileDBCredentials <PSCredential>] [-ProfileDBFailoverServer <String>] [-ProfileSyncDBCredentials <PSCredential>] [-ProfileSyncDBFailoverServer <String>] [-PurgeNonImportedObjects <$true | $false>] [-SocialDBCredentials <PSCredential>] [-SocialDBFailoverServer <String>] [-UseOnlyPreferredDomainControllers <$true | $false>] [-WhatIf [<SwitchParameter>]]
Set-SPProfileServiceApplicationProxy
Wijzigt de eigenschappen van een User Profile Service Application Proxy.
Set-SPProfileServiceApplicationProxy [-Identity] <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-DefaultProxyGroup <SwitchParameter>] [-MySiteHostLocation <SPSitePipeBind>] [-MySiteManagedPath <SPPrefixPipeBind>] [-Name <String>] [-SiteNamingConflictResolution <String>] [-WhatIf [<SwitchParameter>]]
Set-SPProfileServiceApplicationSecurity
Wijzigt security informatie van een Service Application.
Set-SPProfileServiceApplicationSecurity -Identity <SPObjectSecurity> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-SiteSubscription <SPSiteSubscriptionPipeBind>] [-Type <String>] [-WhatIf [<SwitchParameter>]]
Set-SPSiteSubscriptionProfileConfig
Wijzigt de eigenschappen van een site subscription in een multitenant scenario.
Set-SPSiteSubscriptionProfileConfig [-Identity] <SPSiteSubscriptionPipeBind> -ProfileServiceApplicationProxy <SPServiceApplicationProxyPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-Confirm [<SwitchParameter>]] [-MySiteHostLocation <SPSitePipeBind>] [-SynchronizationOU <String>] [-WhatIf [<SwitchParameter>]]
Update-SPProfilePhotoStore
Update een profile photo store om te kunnen werken met Microsoft SharePoint Server 2010.Alleen te gebruiken na een upgrade van Sharepoint 2007 naar 2010.
Update-SPProfilePhotoStore -MySiteHostLocation <SPSitePipeBind> [-AssignmentCollection <SPAssignmentCollection>]
Deze serie van posts gaat over de User Profile Service, een van de vele nieuwe Service Applications die SharePoint 2010 rijk is. In deze post ga ik proberen duidelijk te maken waar deze set aan functionaliteiten uit bestaat en wat je moet doen om het draaiende te krijgen, want simpel is dat allerminst.
De User Profile Service is een Shared Service Application* welke een centrale locatie biedt om instellingen te managen voor de volgende features:
Om het volledige spectrum aan features te kunnen leveren maakt de User Profile Service gebruik van een aantal andere Shared Services, waarvan de belangrijkste zijn:
*Het is belangrijk op te merken, dat ondanks in technische documentatie wordt gerefereerd aan een Shared Service of Shared Service Application, dat de term Service en Service Application niet staan voor een fysieke service of applicatie. Het is een benaming voor onderdelen binnen het Shared Services architectuur model van SharePoint 2010. Zo is een Shared Service niet altijd een fysieke Windows Service, noch Web Service. Het is een beschrijving van een stuk functionaliteit dat aangeboden wordt. Het bestaat uit de code en datastores die uiteindelijk de functionaliteit bieden. De logische en fysieke structuur wijzigt. Zo kan het slechts een set .NET binaries zijn, maar ook een combinatie van verschillende windows en web services, met meerdere databases als back-end datastores.Veel verwarrender is de term Service Application. Een Service Application is geen applicatie. Het is een logische configuratiecontainer die SharePoint hanteert om configuratie rondom Services bij te houden, bijvoorbeeld over de rollen die een bepaalde service 'hosten'. Het is verder een logische interface om een service te kunnen managen. Een Service Application is dus verder niets, alle fysieke componenten worden geleverd door de Service zelf.
Wanneer we naar de componenten kijken van de User Profile service dat zouden we dat schematisch als volgt kunnen tekenen:
De User Profile Service bestaat eigenlijk uit drie hoofdcomponenten, namelijk:
De Service databases zijn:
De eigenlijke code die de functionaliteit biedt (User Profile Service) is aanwezig op elk systeem na installatie. Dit is gewoon een set binaries op het filesysteem. De User Profile Service binaries zijn te vinden in de GAC (Microsoft.Office.Server.UserProfiles en Microsoft.Office.Server.UserProfiles.Synchronization). Deze draaien gewoon in de context van de verschillende web applicaties en de timerservice.
De Synchronization service is gebaseerd op Forefront Identity Manager. In een nutshell is dit een stripped-down installatie van FIM, welke zeer solide synchronisatie beidt tussen verschillende Identity stores. Variërend van AD, tot BCS, tot LDAP tot flat files. Meer hierover heb ik beschreven in deze blogpost: http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/forefront-identity-manager-basics-voor-sharepoint-2010-admins.aspx
De integratie met FIM biedt de volgende voordelen:
Dit is in een nutshell een overzicht van de componenten van de User Profile Service. De volgende blogposts bevatten een overzicht over het toepassen en gebruiken van de functionaliteit.
Social Tags, Notes en User Ratings is functionaliteit van de User Profile Service die de mogelijk maakt om content van tags en notities te voorzien, en te waarderen. Deze social features zijn out-of-the-box redelijk basic, maar bieden erg gave mogelijkheden als je een ontwikkelaar hiermee aan de slag laat gaan. Het basis framework voor het verzamelen van deze informatie en wat out-of-the-box voorbeelden zal ik laten zien in deze vierde post in de User Profile Service serie. Eerdere posts:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/SharePoint-2010-user-profile-service.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/SharePoint-2010-profiel-synchronisatie-import.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/SharePoint-2010-profiel-synchronisatie-export.aspx
Ik begin met wat voorbeelden. Het gros van de Social Features zijn meteen beschikbaar als de User Profile Service configureert. Om te beginnen met de Social Tags en Notes; Het is mogelijk om op content te voorzien van Tags en Notes. De meest opvallende plek waar je dit kunt doen is de 'I Like it' en 'Tags & Notes' die aanwezig zijn op elke pagina:
'I Like It' voegt een simpele 'I Like It' tag toe aan de Social Database. De 'Tags & Notes' stelt je in staat om andere tags toe te voegen dan het saaie 'I Like It' ('I Hate It' bijvoorbeeld J). Verder stelt het je in staat om Notities toe te voegen aan de site. Een erg simpele maar leuke functionaliteit:
Het houdt echter niet op bij tags en notes op pagina's. Elke lijst kan voorzien worden van een tags kolom. Dit kan in de vorm van 'Managed Metadata' of 'Enterprise Keywords' kolommen. 'Managed Metadata' kolommen koppel je aan term sets, waardoor de keuzes beperkt worden. 'Enterprise Keywords' zijn kolommen die je vrij kunt invullen. Terwijl je typt worden er suggesties gedaan op basis van term sets, en 'Enterprise Keywords' die reeds gebruikt zijn. In het voorbeeld hieronder is te zien dat er 2 suggesties worden gedaan, waarvan 1 uit de term set 'CallOuts' en 1 uit 'Keywords'.
Keywords worden altijd terugggeschreven naar de Managed Metadata Service, zodat ze door anderen gebruikt kunnen worden. 'Enterprise Keywords' moet geactiveerd worden in de settings van de lijst, onder 'Enterprise Metadata and Keywords Settings'. Hier geef je aan dat de lijst voorzien moet worden van een 'Enterprise Keyword' kolom en dat de Keywords teruggeschreven moet worden naar de Managed Metadata Service. Verder kan je hier aangeven dat het taggen van content in de lijst wordt doorgegeven aan de User Profile Service, zodat deze als activiteiten in News Feeds gebruikt kunnen worden. Meer over News Feeds in de post over My Sites.
Ratings aanbrengen op content is iets wat je op een lijst kunt configureren. Je krijgt dan een Rating kolom, welke je kunt gebruiken om content van een rating te voorzien. Dit zijn gemiddelde ratings, dus deze stijgen en dalen naar gelang er meer mensen content waarderen
Om te begrijpen hoe het transportmechanisme werkt, hieronder een schematisch overzicht van de verschillende componenten die meespelen:
Tags, Notes en Ratings lijken totaal verschillende dingen, maar zijn gebaseerd op dezelfde mechanismen. Een gebruiker kan content taggen, raten en van notities voorzien, waarna de code in de User Profile Service ervoor zorgt dat dit weggeschreven wordt naar de Social Database. Dezelfde calls worden gebruikt voor Ratings, Notes en Tags, waarbij een type veld aangeeft om wat voor type bericht het gaat. Om te bepalen bij welke gebruiker dit bericht hoort, wordt er een relatie gelegd tussen de Social Database en de Profiles Database, zodat gebruikers informatie niet meerdere malen wordt opgeslagen.
Tags kunnen gebaseerd worden op Terms uit de Term Store. Wanneer een term uit de termstore gebruikt wordt als Tag, wordt de Term ID en de waarde opgeslagen in de Social Database. De reden dat de waarde daar ook in wordt opgeslagen – dubbele data dus – is om ervoor te zorgen dat tags behouden blijven ook als de Managed MetaData service er niet meer is.
De Search Service Application wordt gebruikt om Social data te crawlen, zodat er ook op Tags gezocht kan worden. Dit gebeurt gedurende de normale crawls. Hiervoor hoeft niets speciaals te gebeuren. Search wordt verder gebruikt tijdens het tonen van Social Data (bijvoorbeeld Notes). Dit omdat Social Data moet security trimmed zijn. Er wordt een request gedaan naar de User Profile Service, en tegelijkertijd wordt er gecontroleerd of de User voor het specifieke stukje content, waarop de Note van toepassing is, ook rechten heeft. Dit gebeurt middels Search. Dit kan ervoor zorgen dat, wanneer je net rechten hebt gekregen, het enige tijd kan duren voordat je de Social Data van anderen ziet.
Tenslotte zijn er verschillende timer jobs die Social Data verwerken. Wanneer een gebruiker een Notitie of Tag maakt, wordt dat eerst weggeschreven in een ChangeLog. Dit zorgt voor een snelle inserts, met minimale impact op SQL resources. Timerjobs zorgen in een later stadium dat deze batchgewijs worden verwerkt naar tabellen waar de uiteindelijke user requests op terecht komen. Standaard draaien deze elk uur. Dit is puur vanuit performance oogpunt gedaan. Anders had voor elke Insert er een call gedaan moeten worden naar de Profile Store om de actuele profiel informatie op te halen. Social Data is dus niet altijd actueel. Een ander belangrijke taak van de timerjobs is het opschonen van oude Social Data en Changelogs en het sychroniseren van Ratings naar de content database.
Wanneer je content van een Rating voorziet, zal dit opgeslagen worden in de Social Database. Op de site zie je vervolgens nog niets, behalve als je over de Rating kolom 'hovert'. Er wordt dan een call naar de backend gedaan om jouw rating op te halen:Pas nadat de 'User Profile Service - Social Rating Synchronization Job' heeft gedraaid, wordt de gemiddelde Rating voor dat stukje content zichtbaar in de content database.
Om de eerdere genoemde functionaliteit te gebruiken moet er een en ander geconfigureerd worden:
Om Social Data te managen zijn er drie niveaus:
Dit is het derde deel in de serie over de User Profile Service. Deze post behandelt profiel synchronisatie. Het behandelt het exporteren van profieldata naar AD. Voordat je deze post leest, lees eerst de volgende blog posts:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspx http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-import.aspx
In de vorige post hebben we het alleen gehad over het importeren van profiel informatie, maar zoals gezegd kunnen we nu ook informatie terugschrijven naar AD. Onderstaand voorbeeld laat zien hoe je eigenschappen terug kunt schrijven naar AD.
Voordat we kunnen beginnen met de configuratie aan de Sharepoint-kant, moeten er rechten gezet worden in AD:
Wanneer deze rechten goed staan kunnen we properties gaan configureren die we willen exporteren. Als voorbeeld neem ik Department.
Verifieer nu of de export werkt. Wijzig een profiel:
Mocht je nu geen wijziging zien, dan is dat meestal te wijten aan onvoldoende rechten in AD. In de Sharepoint UI zie je echter geen foutmeldingen, maar als je de FIM tooling opent, zie je het wel:
Dubbel- en tripplecheck dus die rechten.