Przejdź do głównej zawartości

SharePoint

LMS Datafisher to platforma służąca do udostępniania szkoleń i zarządzania nimi.

W niektórych przypadkach potrzebne może być pobieranie lub aktualizowanie dokumentów z SharePoint.

Wymagania wstępne (zapewniane przez Datafisher):

  1. Adres URL SharePoint, do którego trzeba przyznać dostęp

Wyniki (do przekazania Datafisher):

  1. (none)

W tej sekcji

  1. Konfiguracja początkowa – wymagania wstępne
  2. Przyznawanie uprawnień – przyznanie uprawnień do odpowiedniej witryny SharePoint

Konfiguracja początkowa

Najpierw trzeba skonfigurować aplikację korporacyjną, co prawdopodobnie zostało już wykonane podczas konfiguracji SSO.

Następnie trzeba przypisać uprawnienia zgodnie z instrukcjami konfiguracji importu danych użytkowników, z tą różnicą, że zamiast User.Read.All trzeba przypisać jedno z poniższych uprawnień:

  1. uprawnienie Sites.Selected, które przyznaje dostęp tylko do określonego zestawu witryn,
  2. uprawnienie Sites.ReadWrite.All, które przyznaje dostęp do całego SharePoint (niezalecane).

W przypadku drugiej opcji nie trzeba robić nic więcej.

Przyznawanie uprawnień

W przypadku przypisania uprawnienia Sites.Selected trzeba teraz przyznać rzeczywiste uprawnienia do witryny SharePoint.

Niestety nie ma do tego graficznego interfejsu użytkownika.

Najłatwiej użyć CLI for Microsoft 365 albo PowerShell.

Używanie CLI for Microsoft 365

Najpierw zainstaluj CLI, jeśli nie zostało to jeszcze zrobione. Jest oparte na JavaScript, więc potrzebujesz zainstalowanego Node.js oraz menedżera pakietów, takiego jak pnpm, npm (instalowany z Node.js) albo yarn.

Dodatkowo w systemie Windows wygodne może być użycie WSL.

Aby zainstalować CLI, uruchom odpowiednie polecenie dla swojego menedżera pakietów:

pnpm i -g @pnp/cli-microsoft365
npm i -g @pnp/cli-microsoft365
yarn global add @pnp/cli-microsoft365

Na przykład:

$ pnpm i -g @pnp/cli-microsoft365

Downloading registry.npmjs.org/typescript/4.9.5: 11.6 MB/11.6 MB, done
Packages: +231
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 279, reused 73, downloaded 206, added 231, done
.pnpm/swiper@8.4.7/node_modules/swiper: Running postinstall script, done in 56ms

/home/user/.local/share/pnpm/global/5:
+ @pnp/cli-microsoft365 6.10.0

Done in 9.4s

Następnie trzeba się uwierzytelnić, aby przyznać CLI odpowiednie uprawnienia:

m365 login

Polecenie zwróci kod:

$ m365 login

"To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code CA5FMKCXR to authenticate."

Przejdź do https://microsoft.com/devicelogin, wpisz wyświetlony kod, wybierz odpowiedniego użytkownika i przyznaj uprawnienia.

Następnie CLI wyświetli pomyślny wynik:

{
connectedAs: 'user@example.com',
authType: 'DeviceCode',
appId: '31359c7f-bd7e-475c-86db-fdb8c937548e',
appTenant: 'common',
cloudType: 'Public'
}

Na końcu możesz przyznać uprawnienia, uruchamiając:

m365 spo site apppermission add --appId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --permission fullcontrol --siteUrl "https://company.sharepoint.com/sites/site"

gdzie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx to identyfikator aplikacji znaleziony na stronie przeglądu rejestracji aplikacji, a https://company.sharepoint.com/sites/site to adres URL witryny SharePoint.

Wynik będzie wyglądać tak:

$ m365 spo site apppermission add --appId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --permission fullcontrol --siteUrl "https://company.sharepoint.com/sites/site"

{
"id": "aTowaS90fG3zLnNwLmV4dHxlN3NmZTBhNC3lZDM3LTQ9ODktOTA9Ni0yYmQzNGFkMGMzYjZAOGY9NWZhY3ItOWMzMi00ZGViLWE4MGMtZGM9MzIzNzg3OTMx",
"roles": [
"fullcontrol"
],
"grantedToIdentitiesV2": [
{
"application": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
],
"grantedToIdentities": [
{
"application": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
]
}

Używanie PowerShell

Alternatywnie można użyć PowerShell.

Najpierw trzeba zainstalować moduł PnP PowerShell, uruchamiając:

Install-Module PnP.PowerShell -Scope CurrentUser

Następnie przyznaj rzeczywiste uprawnienia:

Connect-PnPOnline -Url "https://company.sharepoint.com/sites/site" -Interactive

$permission = Grant-PnPAzureADAppSitePermission -AppId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -DisplayName "Datafisher LMS" -Permissions Write

Set-PnPAzureADAppSitePermission -PermissionId $permission.Id -Permissions FullControl

gdzie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx to identyfikator aplikacji znaleziony na stronie przeglądu rejestracji aplikacji, a https://company.sharepoint.com/sites/site to adres URL witryny SharePoint.