09 juli 2014

SharePoint 2013 - Access Denied voor users met volledig beheer rechten

Dit keer geen blog over design of development, maar een probleem dat ik laatst ben tegen gekomen bij een key user van mijn klant. De betreffende klant maakt sinds kort gebruik van Office365 met SharePoint (2013) Online.

Probleem

De key user zit in de site owners groep in een SharePoint (2013) Online site collection, maar had plotseling geen toegang meer tot zijn sites.

Het was al snel duidelijk dat het probleem zat in het feit dat de key user de rechten op de site collection heeft gebroken, waarbij hij de standaard (EN) [sitenaam] Owners/(NL) Eigenaren van [sitenaam] groep alle rechten heeft ontnomen en in plaats daarvan een nieuwe groep heeft aangemaakt met een andere naam (ivm richtlijnen van het bedrijf).

Je zou dus zeggen dat de stap om dit te herstellen, het herstellen van de rechten van de (EN) [sitenaam] Owners/(NL) Eigenaren van [sitenaam] groep is. Dit bleek echter niet alles op te lossen. De key user kon nu wel weer bij de site, maar bleef op bepaalde items in de site settings een 'Acces Denied' krijgen. Hij kon onder andere geen rechten meer instellen, wat een blocking issue was.

Na een tijdje zoeken en proberen (browser cache weg gooien, appdata cache weggooien, andere browser proberen, andere computer proberen) kwam ik dit artikel van Microsoft Support tegen.

Oorzaak

Het blijkt dat, als de rechten van de standaard (EN) [sitenaam] Owners/(NL) Eigenaren van [sitenaam] groep worden ontnomen en daarna weer worden teruggezet, de rechten niet overal worden hersteld. Op bepaalde lijsten is er nu geen enkele groep meer die nog rechten heeft. Hieronder valt bijvoorbeeld ook de (EN) Access requests/(NL) Toegangsaanvragen lijst (Dit is dus het geval wanneer bij het aanmaken van de site collection is gekozen om de (EN) Allow access requests/(NL) Sta toegangsaanvragen toe setting in te schakelen). De lijsten waarop de rechten nog ontbreken, veroorzaken tevens dat een aantal andere functionaliteiten niet meer werken. In het geval van de 'Pending requests' lijst, wordt behalve de lijst zelf, ook de (EN) Site permissions/(NL) Site machtigingen geblokkeerd.

Oplossing

Nu kan je natuurlijk de hele webapplicatie weg gooien en opnieuw beginnen, maar het kan ook wat minder drastisch. De oplossing voor dit probleem is dat je alle rechten op de getroffen lijsten handmatig moet gaan herstellen. Omdat SharePoint wil voorkomen dat gebruikers (die niet weten waar ze mee bezig zijn) onherstelbare schade aanrichten aan deze onmisbare lijsten, is het niet makkelijk om bij de instellingen van deze lijsten te komen. Hieronder leg ik uit hoe je dat toch voor elkaar krijgt. We gaan beginnen met de (EN) Access Requests/(NL) Toegangsaanvragen lijst. Deze vind je hier:

  • (EN) https://URL-van-de-betreffende-site-collection/Access%20Requests/pendingreq.aspx
  • (NL) https://URL-van-de-betreffende-site-collection/Toegangsaanvragen/pendingreq.aspx
  1. Log in op de getroffen site collectie met een user die administrator rechten (op SharePoint dus, niet op je computer) heeft, en navigeer naar de (EN) Access Requests/(NL) Toegangsaanvragen lijst. Gebruik hiervoor Internet Explorer.
  2. Druk op F12 om de Developer Tools in IE te openen.
  3. Klik op de Network-tab en druk op F5 of klik op het groene pijltje links bovenin de Developer tools (IE10+) om het netwerk verkeer te volgen.
  4. Ververs de pagina in de browser. Als de pagina weer geladen is, stop dan het volgen van het netwerk verkeer door op SHIFT+F5 te drukken of op het rode blokje te klikken.
  5. In het venster van de Developer tools staat een url lijst. Dubbelklik op het bovenste resultaat (dat moet eindigen op pendingreq.aspx).
  6. Klik in het venster van de Developer tools op Request body.
  7. Wederom in de Developer tools, vul 'pageListId:' in het zoekvenster en druk op ENTER.
  8. Het zoekresultaat zal geel gemarkeerd worden weergegeven. Kopieer de GUID die bij het pageListId: staat. De GUID is de combinatie van letters en cijfers die tussen de {} staat. Kopieer de {} ook mee. De GUID is het identificatiemiddel van de lijst. Iedere lijst heeft een unieke GUID.
  9. Open een nieuwe tab in IE en voer de volgende url in de adres balk:
    https://URL-van-de-betreffende-site-collection/_layouts/15/ListEdit.aspx?List={GUID}
    (Vul bij {GUID} het nummer in dat je in de vorige stap hebt gekopieerd, voorbeeld:
    https://voorbeeld.sharepoint.com/sites/voorbeeld1/_layouts/15/ListEdit.aspx?List={3536637D-E28A-4F12-9749-0B789E0A2448}
  10. Je bent nu op de pagina voor de (EN) List settings/(NL) Lijst instellingen. Klik nu op (EN)Permissions for this list/(NL)Machtigingen voor dit lijstitem.
  11. Er is nu niets te zien, wat betekend dat niemand rechten heeft op deze lijst. Voeg nu de groep (EN) [sitenaam] owners/(NL) Eigenaren van [sitenaam] toe en geef deze groep volledig beheer.

Dit was het herstelproces voor de 'Pending requests' lijst. Als je nu met een user uit de (EN) [sitenaam] Owners/(NL) Eigenaren van [sitenaam] groep inlogt en naar de (EN) Site permissions/(NL) Sitemachtigingen navigeert, zal je zien dat alles nu weer goed gaat. Je bent echter nog niet helemaal klaar. Het probleem doet zich ook nog voor op 2 andere lijsten:

  • (EN) Device Channels/(NL) Apparaat kanalen lijst: (EN/NL) https://URL-van-de-betreffende-site-collection/DeviceChannels/AllItems.aspx
  • (EN) Translation Status/(NL) Vertaalstatus lijst: (EN/NL) https://URL-van-de-betreffende-site-collection/Translation%20Status/Alle%20gebruikers.aspx

Om deze lijsten ook te herstellen doe je hetzelfde als wat je zojuist voor de 'Pending requests' lijst hebt gedaan.

Tip

Loop je nou vaak tegen dit probleem aan, dan kan het ophalen van de GUID's ook wat eenvoudiger. Je kunt hier een tool downloaden welke na het invoeren van de url van je site, de site kan uitlezen. Deze tool leest bijvoorbeeld ook de schema.mxl uit, waarin de GUID is vermeld. Onderstaande stappenplan geldt in dit geval als vervanging voor de stappen 1 t/m 8 van de handleiding eerder in dit artikel.

  1. Open de 'SharePoint 2013 Client Browser' tool.
  2. Geef de url van de getroffen site op.
  3. Klik in het linker venster op de + bij 'Lists' en selecteer (EN) Access Requests/(NL) Toegangsaanvragen.
  4. Klik in het rechter venster op de tab Schema XML.
  5. In de code die je nu ziet, staat een <List> tag met een property genaamd 'ID', dat is de GUID. Voorbeeld: ID="{AE3ED198-0E26-47F2-B611-27E89FE00831}" Kopieer de GUID (Inc {}) en ga verder met stap 9 van de handleiding eerder in dit artikel.

Geen opmerkingen:

Een reactie posten