Monday, March 5, 2018
Users need 'Use Client Integration Features' permission to launch OneDrive Sync from SharePoint Online library
Wednesday, February 21, 2018
Migrated SharePoint 2010 workflow cannot be opened Online in SharePoint Designer 2013
- Disable usage of 'cache' capability in SharePoint Designer 2013: it will then no longer try to load + reuse the cached files that were initially created on your workstation by opening the workflow via SharePoint Designer 2010
- Cleanup the local cache to remove the SharePoint 2010 versions of the cached workflow files: delete all cached files from these local locations (Resource: SharePoint Designer cannot display the item (SharePoint 2013))
- C:\Users\<UserName>\AppData\Roaming\Microsoft\SharePoint Designer\ProxyAssembleCache
- C:\Users\<UserName>\AppData\Roaming\Microsoft\Web Server Extensions\Cache
- C:\Users\<UserName>\AppData\Local\Microsoft\WebsiteCache
- (Get yourself a new / other laptop:) Open the workflow in SharePoint Designer on another workstation, on which the workflow was not managed previously via SharePoint Designer 2010 when still on SharePoint 2010
Monday, February 12, 2018
PowerShell to assess the external access authorization per site
<# .SYNOPSIS Access Review of guest users into the SharePoint tenant #> #Connection to SharePoint Online $SPOAdminSiteUrl="https://<tenant>-admin.sharepoint.com/" try { Connect-SPOService -Url $SPOAdminSiteUrl -ErrorAction Stop } catch { exit } $externalUsersInfoDictionary= @{} $externalSharedSites = Get-SPOSite | Where-Object {$_.SharingCapability -eq "ExistingExternalUserSharingOnly"} foreach ($site in $externalSharedSites) { $externalUsersInfoCollection= @() $position = 0 $page = 0 $pageSize = 50 while ($position -eq $page * $pageSize) { foreach ($externalUser in Get-SPOExternalUser -Position ($page * $pageSize) -PageSize $pageSize -SiteUrl $site.Url | Select DisplayName,Email,WhenCreated) { if (!$externalUsersInfoDictionary.ContainsKey($externalUser.Email)) { $externalUsersInfoDictionary[$externalUser.Email] = @() } $externalUsersInfoDictionary[$externalUser.Email]+=$site.Url $externalUsersInfo = new-object psobject $externalUsersInfo | add-member noteproperty -name "Site Url" -value $site.Url $externalUsersInfo | add-member noteproperty -name "Email" -value $externalUser.Email $externalUsersInfo | add-member noteproperty -name "DisplayName" -value $externalUser.DisplayName $externalUsersInfo | add-member noteproperty -name "WhenCreated" -value $externalUser.WhenCreated $externalUsersInfo | add-member noteproperty -name "Preserve Access?" -value "Yes" $externalUsersInfoCollection+=$externalUsersInfo $position++ } $page++ } if ($externalUsersInfoCollection.Count -ne 0) { $exportFile = "External Access Review (" + $site.Url.SubString($site.Url.LastIndexOf("/")+ 1) + ")- " + $(get-date -f yyyy-MM-dd) + ".csv" $externalUsersInfoCollection | Export-Csv $exportFile -NoTypeInformation } } # Export matrix overview: per user, in which of the external sites granted access $externalUsersInfoCollection= @() $externalUsersInfoDictionary.Keys | ForEach-Object { $externalUsersInfo = new-object psobject $externalUsersInfo | add-member noteproperty -name "User Email" -value $_ foreach ($site in $externalSharedSites) { if ($externalUsersInfoDictionary[$_].Contains($site.Url)) { $externalUsersInfo | add-member noteproperty -name $site.Url -value "X" } else { $externalUsersInfo | add-member noteproperty -name $site.Url -value "" } } $externalUsersInfoCollection+=$externalUsersInfo } $exportFile = "External Access Review user X site - " + $(get-date -f yyyy-MM-dd) + ".csv" $externalUsersInfoCollection | Export-Csv $exportFile -NoTypeInformation Disconnect-SPOService
Friday, February 9, 2018
Azure AD Access Review yet useless for SharePoint External Sharing
- Assess on Azure AD Group Membership
- Assess on access to an Office 365 application
- In the review mode on 'O365 SharePoint Online as application'; I get no results at all.
- In the review mode on 'Group Membership' I selected the dynamic group that includes all guest accounts. With this review mode I do get results to review their access. But the value is limited to gain insight on last logon per guest account. You can then as reviewer make a decision to Approve or Deny the continued group membership. But in reality this review decision cannot be effectuated: the group membership is dynamic, based on condition; not on concrete addition to the group.
I reported my 'negative' evaluation as feedback to a contact in the Azure AD productgroup: "I question how it would be applied: removing the 'refused' accounts from the Dynamic Group does not make sense; they should be blocked or removed from Azure AD to block access. Also, as a site owner only wants to take responsibility for access to his/her site, the access decision application should be applied there. Not on tenant level."
His response: "I think you have some interesting use cases. As the product is still in preview, documentation is limited. I will discuss your use cases with my colleagues in Redmond responsible for Access Reviews."
In addition, I also submitted a SharePoint uservoice idea: Azure AD access review on level of single (shared) site collection
Saturday, February 3, 2018
(Risky) Approach to invoke SharePoint Online API on whatever site from external automation client
Friday, January 26, 2018
AADConnect can block Azure AD B2B invitation
- Externals of business partner are added as full accounts to your on-prem Active Directory
- Administrate in AD their own external company email as primary email address; as that is the mailbox they will typically use and monitor
- Utilize AADConnect to sync on-prem AD accounts to Office 365 / Azure AD
- Invite externals of same business partner as guest for Azure AD B2B; with their own external company email as identifier...
Saturday, January 13, 2018
Approach to a more trusted Azure AD B2B invite handling
- It comes from the invites@microsoft.com mail origin instead of the inviting company
- It is sent on behalf of the account of Azure AD Admin (or other admin account that possesses the 'Guest inviter role'), iso an account of the actual business user at the inviting company
- The mail is in a standard format, without branded to the inviting company
- The mail includes a suspicious looking "Get Started" button
- The mail includes a "Click here to unsubscribe" link, which again looks suspicious as the receiver never subscribed to invites from Microsoft.com.










